D3D若有错

很多时候不知道程序为什么没有按预想的方式运行,

到底是哪里错了呢。。才发现原来是坐标错了,颜色错了,或者是填充的模式错了。。。

这些都是一些微不足道难以寻找的错误啊,

只能够靠细心还有经验堆积起来才能够避免。

附上光照图

 

4个物体坐标分别在 

D3DXMatrixTranslation(&MeshWorldMetrices[0],-2.0f,-2.0f,0.0f);  //血小板
 D3DXMatrixTranslation(&MeshWorldMetrices[1],2.0f,-2.0f,0.0f);  //黄茶壶
 D3DXMatrixTranslation(&MeshWorldMetrices[2],-2.0f,2.0f,0.0f);  //蓝盒子
 D3DXMatrixTranslation(&MeshWorldMetrices[3],2.0f,2.0f,0.0f);  //绿球体

 

1.方向光

从(0.0f,0.0f,8.0f)->到(0.0f,0.0f,0.0f)       2.点光源(0.0f,0.0f,0.0f)->(*,*,*)

 

 聚光灯,发射的位置在(0.0f,0.0f,8.0f)->

     3.->血小板               4.->黄茶壶              5.->蓝盒子           6.->绿球体

 

或是停停顿顿,或是懒懒散散的学习了两天,光照这一部分总算熟练了。

 

////////////////////

于2012/4/23:

上文才刚刚说完。。又犯了低级的错误了,

那四幅spotlight的图就是有一点怪怪的,我注意到照射的位置正确与否,可是没有注意到真正确切的效果,

上面我设定了

light.Phi = 0.0f;

light.Theta = 0.4f;

而实际上dx中规定的Phi是聚光灯锥体的大角,而Theta是较小的内角

不过也算另一种好处吧,就是我知道了当Phi小于Theta的情况,就是Theta的所照是黑暗的,然后Phi所照的范围是全景的,(话说这样好别扭。。)

所以,预期的效果应该是这样才对:

我设为

light.Phi = 0.4f;

light.Theta = 0.0f;

 

 

这里的图片会占用很多的带宽的,我想。

posted @ 2012-04-22 21:54  KelvinDesus  阅读(169)  评论(0编辑  收藏  举报