问题描述
- d3d编程中关于颜色的问题
-
D3DXLoadMeshFromX(L"WYJ.X".......),我用这个函数加载了一个.x文件,然后渲染的时候用g_pd3dDevice->SetTexture(0, g_pTextures[i]);设置了纹理,但我并未用DrawSubset(i)函数将他画出,然后渲染出用D3DXCreateBox,D3DXCreateCylinder创造的正方形和柱子时,显示出合理的图像但我把WYJ.X换成lighting.x文件时,出现了而且我发现此时如果添加pd3dDevice->SetRenderState(D3DRS_SPECULARENABLE,true),则又会有颜色,该颜色只跟材质镜面反射颜色分量有关。这是为什么呢
解决方案
pd3dDevice->SetRenderState(D3DRS_LIGHTING,false);
应该是没有开启光照的原因
确保系统中有最少一个光源被激活,再开启光照
pd3dDevice->SetRenderState(D3DRS_SPECULARENABLE,true)
这个选项只是开启了高光
时间: 2025-01-30 17:50:15