摘要: 原则1.以目前计算机的发展阶段而言, 游戏总是CPU Limited.2.渲染 Batch, Batch, Batch3.尽力减少图形API调用次数.4.Minimize data swithing, such as SetStreamSource and SetIndices. Maximize FVF sharing. 认识:1.DX API消耗Top5: SetPixelShaderConstant()SetPixeShader()SetVertexShaderConstant()SetVertexShader()SetTexture()经验:1. 过大过多的纹理造成带宽瓶颈,而顶点数据 阅读全文
posted @ 2011-04-19 17:36 oayx 阅读(2177) 评论(0) 推荐(0) 编辑
摘要: 另外给出一份dx sdk中关于常用dx api的performace性能参数,在文档中也有明确说明,这些api的调用开销会根据实际情况有不同。 API Call Average number of Cycles SetVertexDeclaration 6500 - 11250 SetFVF 6400 - 11200 SetVertexShader 3000 - 12100 SetPixelShader 6300 - 7000 SPECULARENABLE 1900 - 11200 SetRenderTarget 6000 - 6250 SetPixelShaderConstant (1 Co 阅读全文
posted @ 2011-04-19 17:28 oayx 阅读(1275) 评论(0) 推荐(0) 编辑
摘要: 1.树叶/动物嘴上的牙齿,胡须/身上的鬃毛,形状曲折复杂,若直接用三角形带构建会大大增加物体的三角形数,所以应使用少量的三角形加Alpha纹理来实现.过滤了Alpha的纹理可以描绘出曲折的形状边缘.2.怪物眼睛发光,那是用了额外附着的不透明的纹理三角片,很可能还是billboard.3.该GL_CULL_FACE的地方应该Cull Face,以提升效率.4.BLEND_MODULATE_2X使盔甲呈现高亮, BLEND_ADDITIVE_ALPHA增加加物体细节.5.WoW的登录界面就是个m2 + xml + lua,一个模型搞定一个界面. 6.在3D空间中画一个中间镂空的平面边形(由三角形M 阅读全文
posted @ 2011-04-19 16:01 oayx 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: 要带着引擎系统所共有的问题去阅读,不要被具体引擎的实现思路牵着走,要思考这个引擎如何实现或绕过(如不考虑低端机)这些必然要面临的问题.首先,最重要的必须,在Debug模式下调试起来一个主场景程序,然后沿着代码流走几遍,在代码里闲逛,生成第一印象,留意基础工具设施类(如字符串内存管理),大约3小时.然后带着如下每一个问题(不分先后)去走流程,走逻辑,弄清引擎的业务处理方法.1.SetStreamSource,SetIndices,DrawIndexedPrimitive的调用是在哪里(哪个cpp哪个类的哪个函数),整个工程有几个DrawIndexedPrimitve,DrawPrimitveUp 阅读全文
posted @ 2011-04-19 15:55 oayx 阅读(443) 评论(0) 推荐(0) 编辑