图形学-绘制

for(int i = 0; i < 6; i++)
{
  m_pD3DDevice->DrawIndexedPrimitive(D3DPT_TRIANGLEFAN, i * 4, 0, 4, 0, 2);
}
上面那行绘制语句的意思是:从顶点缓冲区中的第i*4个顶点开始,获取4个顶点数据。最小顶点索引是0,所以获取的4个顶点的索引依次是0,1,2,3。然后从索引缓冲区的第0个索引开始,获取4个索引。然后根据这4个索引值,根据三角形扇,绘制2个三角形,组成一个面。最终绘制6个面。

 SetVertexShader 设置vs

SetPixelShader 设置ps

前向渲染:将灯光动态渲染

延迟渲染:将所有灯光渲染到一张图上;相当于需要两遍渲染

IDirect3DDevice9::LightEnable

IDirect3DDevice9::SetClipPlane

IDirect3DDevice9::SetCurrentTexturePalette

IDirect3DDevice9::SetFVF

IDirect3DDevice9::SetIndices

IDirect3DDevice9::SetLight

IDirect3DDevice9::SetMaterial

IDirect3DDevice9::SetNPatchMode

IDirect3DDevice9::SetPixelShader

IDirect3DDevice9::SetPixelShaderConstantB

IDirect3DDevice9::SetPixelShaderConstantF

IDirect3DDevice9::SetPixelShaderConstantI

IDirect3DDevice9::SetRenderState

IDirect3DDevice9::SetSamplerState

IDirect3DDevice9::SetScissorRect

IDirect3DDevice9::SetStreamSource

IDirect3DDevice9::SetStreamSourceFreq

IDirect3DDevice9::SetTexture

IDirect3DDevice9::SetTextureStageState

IDirect3DDevice9::SetTransform

IDirect3DDevice9::SetViewport

IDirect3DDevice9::SetVertexDeclaration

IDirect3DDevice9::SetVertexShader

IDirect3DDevice9::SetVertexShaderConstantB

IDirect3DDevice9::SetVertexShaderConstantF

IDirect3DDevice9::SetVertexShaderConstantI

原文地址:https://www.cnblogs.com/bornfish/p/4670078.html