游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2932|回复: 4

directX里面光照阴影需要怎么设置?

[复制链接]

3

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2007-9-17 20:45:00 | 显示全部楼层 |阅读模式
急需。我也来不及试验了。只能问下过来人or高手。谢谢

1

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2007-9-17 21:16:00 | 显示全部楼层

Re:directX里面光照阴影需要怎么设置?

至于光照,你设置混合模式.用diffuse跟纹理混合.
DX本身没有阴影功能.需要自己去实现.因此,你不得不去设计和试验.

3

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2007-9-17 23:46:00 | 显示全部楼层

Re:directX里面光照阴影需要怎么设置?

时间太紧了。突然增加的一个任务啊。有sourcecode吗?

1

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2007-9-18 09:16:00 | 显示全部楼层

Re:directX里面光照阴影需要怎么设置?

如果你没做过,这种东西没办法在短时间内写完(如果要加到你的引擎或其他架构构里,更是如此).至于阴影,你可以去看看DXSDK的SHADOWMAP.,需要用SHADER.
而对于CPU的光照,则增加以下(里面的数据都是可变的):
        D3DXVECTOR3 vecDir;                                                       
        D3DLIGHT9 light;                                                       
        ZeroMemory( &light, sizeof(D3DLIGHT9) );               
        light.Type       = D3DLIGHT_DIRECTIONAL;//定义方向光               
        light.Diffuse.r  = 2.0f;
        light.Diffuse.g  = 1.8f;
        light.Diffuse.b  = 1.4f;
        vecDir =-m_pLight->GetLightView();                       
        D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDir );       
        light.Range       = 10000.0f;                                               
        m_pd3dDevice->SetLight( 0, &light );//设置主光源
        m_pd3dDevice->LightEnable( 0, TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0x80808080 );//环境光

          //设置混合模式
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );
但这办法无法做阴影.只有光照明暗效果.

16

主题

57

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2007-9-18 09:57:00 | 显示全部楼层

Re: directX里面光照阴影需要怎么设置?

本站中有一篇软阴影的文章,lz可以看看,作者写得很好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-15 02:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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