游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2060|回复: 6

帮忙看看,光照后为什么是全黑的?

[复制链接]

15

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2007-2-3 11:55:00 | 显示全部楼层 |阅读模式
           //材质
           D3DMATERIAL9 mtrl;
        ZeroMemory(&mtrl,sizeof(D3DMATERIAL9));
        mtrl.Diffuse=D3DXCOLOR(1.0f,0.0f,0.0f,1.0f); //反射红光
        g_pd3dDevice->SetMaterial(&mtrl);


        D3DXVECTOR3 vecDir;
        D3DLIGHT9 light;
        ZeroMemory(&light,sizeof(D3DLIGHT9));
        light.Type=D3DLIGHT_DIRECTIONAL;
        light.Diffuse=D3DXCOLOR(1.0f,1.0f,1.0f,1.0f);
        vecDir=D3DXVECTOR3(10,10,-10);
        D3DXVec3Normalize((D3DXVECTOR3*)&light.Direction,&vecDir);

        light.Range=1000.0f;

        g_pd3dDevice->SetLight(0,&light);
        g_pd3dDevice->LightEnable(0,true);
        g_pd3dDevice->SetRenderState(D3DRS_LIGHTING,TRUE);

理论不是应该反射红光的么。。可结果怎么是黑的,没颜色啊。。。

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2007-2-3 13:01:00 | 显示全部楼层

Re:帮忙看看,光照后为什么是全黑的?

没看出什么问题.你把这段代码放在哪执行的?

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2007-2-3 15:41:00 | 显示全部楼层

Re:帮忙看看,光照后为什么是全黑的?

顶点法线呢?

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-2-3 16:09:00 | 显示全部楼层

Re:帮忙看看,光照后为什么是全黑的?

渲染管线的顶点格式FVF设置了吗?以及法线?

10

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2007-2-3 16:19:00 | 显示全部楼层

Re:帮忙看看,光照后为什么是全黑的?

DX9 默认情况下的Material颜色只对环境光起作用,对于漫射光例如Directional Light是不起作用的
漫射光默认是以顶点颜色和法线作为运算参数的,如果想用Material可以设置一下Diffuse Source:

g_pd3dDevice->SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL );

15

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
 楼主| 发表于 2007-2-3 16:36:00 | 显示全部楼层

Re:帮忙看看,光照后为什么是全黑的?

嘿嘿。真不好意思
法线的问题。。

15

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
 楼主| 发表于 2007-2-3 16:39:00 | 显示全部楼层

Re:帮忙看看,光照后为什么是全黑的?

谢谢大家啦
thanks all the same~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 09:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表