1.调用DrawPrimitive 和 DrawIndexedPrimitive 就相当于一次drawcall, 所以如果我们要减少drawcall的数量,那么就要尽量将数据塞到一个buffer中然后再一次性提交,但是塞得数据是有一些限制的.限制如下:
(1)是否数据的顶点声明格式是一样的?
(2)是否使用的texture是一样的? (有时为了能让texture一样,我们会把多个texture打成一个大的图集,这样就可以减少drawcall, 但是相应的加载这样的图集也会使用更多的内存,要做权衡)
(3)是否使用的shader是一样的?
2.D3DXCompileShaderFromFile 对于编译顶点和像素两种shader的时候,最后一个LPD3DXCONSTANTTABLE参数,保存的变量只有他们在对应shader文件的入口函数中有使用的变量,才会存在这个参数table中。