摘要:
材质,这个词有各行各业都有自己的解释。美工把物体贴图和物体颜色,高光等统称为材质。D3D和OPENGL这样的图形接口则把物体表面贴图单独叫做纹理,而把漫反射,高光等叫做材质。而在游戏引擎或图形引擎中提到的材质,则与此不同。 引擎中提到的材质不仅上面的的内容。 引擎中所谓的材质,是指物体在渲染时一系列的状态控制。 如,ALPHA混合开关以及ALPHA混合因子、纹理过虑方式,纹理通道状态、纹理矩阵、裁剪模式等,在D3D中,就是SetRenderState,SetTextureStageState,SetSamplerStateState等所控制的。在OPENGL中,则大多数由glEnable所控制 阅读全文
摘要:
我一向是不太喜欢给一些东西强加上个名字。但为了随波逐流,我还是这样做了。在我们的游戏开发中,通常会遇到两个模块之间的通信。 回调估计是最常用的方式了。 回调的设计思想很简单,就是两个对象相互注册,然后在需要的时候调用对方的函数。如下:class B;class A{public: void RegisterCallback(B* pB) { m_pB = pB; } void ActiveA() { m_pB-DoB(); } void DoA(){}protected: B* m_pB;};class B{public: void RegisterCallback(A* pA) { 阅读全文
摘要:
纹理内容常常是存在sRGB格式中的。关于这个格式的细节是可以被找到的。通常,像素管线假定颜色是线性的以便融合(blending)操作可以在线性空间中进行。因为sRGB中的内容是Gamma较正,所以融合操作在线性空间中处理会导致错误的结果。显卡在读到有关sRGB内容的时候便会取消Gamma较正以避免错误的发生。然后当输出像素的时候再将像素信息写回sRGB格式中。在这种情况下,所有像素管线中的操作就可以都在心线性空间中进行。Gamma校正在D3D9中。 可以指明一张纹理是不是Gamma 2.2(sRGB) 较正.驱动程序将会在SetTexture的时候将其转换到线性的Gamma以进行融合操作。或者 阅读全文
摘要:
关于D3DPOOL的翻译注:D3DPOOL在D3D资源管理中有着重要的意义,我们必须弄清楚自己创建的资源在什么地方,才能知道在设备丢失的时候,哪些需要重建;在优化渲染的时候,哪些是瓶颈。下在是DX SDK文档中对于D3DPOOL的介绍,我在看的时候顺便翻译了过来。 希望给不方便看英文文档的朋友一些帮助。 由于本人英语能力有限,故在翻译的时候,给出了原文。方便个别单词的对照。另外,D3DUSAGE也是和资源紧密相关的内容。朋友FancyBit对其作了翻译,也贴于下部。Defines the memory class that holds the buffers for a resource.这句 阅读全文
摘要:
“材质(material)”,材质是一个很基本的术语,表示你的物体对光的反射方式。但是对它的实现并不像其解释这样简单,我们会用这一章节进行详细地介绍Ogre中相关的技术。我们刚才提及过,材质定义了物体对光线反射的处理方法。这里暗示了材质的表现与光源的类型相关:聚光(Spotlights)、点光源(point lights)以及有向光(directional lights)对材质的表现有着完全不同的影响。简单来讲,它们都是对物理世界真实光源类型的模拟,所以材质对它们的反射也遵守着其在物理世界中的规则。注意:虽然在Ogre里面,材质定义了物体如何反射光线的方法,但实际上并没有真的把光反射到附近的物 阅读全文
摘要:
首先我要说明,我在博客里写文章并非说明我很厉害。比起从业游戏行业多年的前辈们来说,我是微不足道的。我之所以斗胆在博客里写出些想法和感受。主要目的就是为了吸引前辈们的围观,为我指正。为了大家的游戏事业一起交流,奋斗。 进入游戏开发行业快一年了,在这一年中,我和其它同事们感受颇多。大家在一起努力,一起解决着各总各样的问题。 当然这得感谢给与我机会的他们,让我早早地踏上了自己梦想的道路。 在以后的文章中,我会尽力写出自己的感受,以及在开发中的想法。我并不是说所写出来的东西就是我在工作中所做的东西;相反,二者是截然不同的。另外,为了保证工作与私人生活的不冲突,我也会尽力避免出现将工作中重要的信息泄 阅读全文