2010年3月13日星期六

Photobucket



延迟渲染不等于全部都用相同的材质,即便是延迟渲染,也有很多不同情况,比如有无边缘光、是否有Detail贴图、是否有Parallax Occlusion Mapping之类的。
然后改变数后,
Photobucket
变得更不自然了。
Material中应该有两类参数,Shared的参数和Mutable的参数。对Shared参数进行赋值的时候,会影响到这个Material所有的实例。如果不想产生这种影响,则需要Break Instance,即克隆一个参数相同的材质,这么做会让材质失去与资源的联系。对于Mutable的参数,则是与每个Instance关联的,不会产生全局影响。大部分参数都是Shared的,比如普通的材质参数如高光强度、Diffuse贴图之类的。而通常一些由程序自动赋值的参数则应该是 Mutable的,如LightMap相关参数、Shadow Map相关参数等等。

Shader模板概念挺好。可以通过一组宏参数来裁剪Shader,使Shader尽可能高效。不过Shader模板的宏参数应该和其他Material 参数处于并列的地位,而不是更高。一个Shader应该对应一种材质,而不是多种材质。宏参数和值参数的区别应该被埋在底层。

在使用Shader模板的情况下,宏参数通常很多,要将所有的宏参数对应的Shader预编译出来是不可能的。因此Shader在其被使用到的时候才编译。然而,这样在运行时因为编译Shader而产生剧烈的“卡”的现象。因此引入ShaderCache机制,即将运行时编译的Shader储存下来,再以后启动的时候读入。另外,编译Shader的时候使用外部程序进行编译,然后适当使用代理模式,应该能解决“卡”的问题。


Mip Mapping 一般用于中低档显卡,也就是我家那架脑非常适合使用。当物体移近使用者时,程序会在物体表面贴上较精细、清晰度较高的材质图案,于是让物体呈现出更高层、更加真实的效果;而当物体远离使用者时,程序就会贴上较单纯、清晰度较低的材质图样,进而提升图形处理的整体效率。LOD(细节水平)是协调纹理像素和实际像素之间关系的一个标准。


1。Light Tracer(很基本占用cpu极少,快
2。hdr(可以画面柔化
3.Mip Mapping(效果最好
-----------------
Photobucket
我知道很雷人,但还是这样继续好了

2010年3月11日星期四

马勒戈壁之草泥马

Photobucket
大概是像电脑里的迷你游戏一样,按到炸弹就结束的无聊游戏。代码就下次才post....
现在已经决定好药使用下面的两种引擎来继续开发游戏。
Unreal Development Kit(udk)+/playground sdk
左边比较适合制作动作派的,右边是解密派的。
真苦恼