游戏开发论坛

 找回密码
 立即注册
搜索
楼主: instemast

D3D光照模型与色彩来源全分析

[复制链接]

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-5-1 00:52:00 | 显示全部楼层

Re: Re: Re: Re: D3D光照模型与色彩来源全分析

instemast: Re: Re: Re: D3D光照模型与色彩来源全分析



这不可能,我材质的所有alpha都是0xFF,
而且我全部设置了 MSC_MATERIAL 。

而且,就算找你所说,那么,MSC_COLOR1 这个有什么用?

MSC_COLOR1 。。。我也对此产生疑问,但是事实如此,启用 alpha blend,alphaop 是 selectArg1,alphablendArg1 = TA_SPECULAR。我是在 d3d sdk 的例子上做的,你可以试试。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-5-1 00:56:00 | 显示全部楼层

Re:D3D光照模型与色彩来源全分析

D3DMATERIAL9 mtrl;
ZeroMemory( &mtrl, sizeof(D3DMATERIAL9) );
mtrl.Diffuse.r = mtrl.Ambient.r = 1.0f;
mtrl.Diffuse.g = mtrl.Ambient.g = 1.0f;
mtrl.Diffuse.b = mtrl.Ambient.b = 0.0f;
mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f;

mtrl.Specular.r = 1.0f;
mtrl.Specular.g = 1.0f;
mtrl.Specular.b = 1.0f;
mtrl.Specular.a = 0.5f;

g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_SPECULAR );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1,   D3DTA_SPECULAR );

g_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
g_pd3dDevice->SetRenderState( D3DRS_SPECULARMATERIALSOURCE, D3DMCS_COLOR1  );

light 的 specular 我就不贴出来了,因为无论怎么设置它的 alpha 值都不起作用,但是 material specular 的 alpha 是有效的。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-3 18:38:00 | 显示全部楼层

Re:D3D光照模型与色彩来源全分析

这不可能,我材质的所有alpha都是0xFF。

我说了,我之前已经试验过了阿。而且试验了无数次。

还有,不要再d3d例子上面作。

4

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2008-5-4 14:20:00 | 显示全部楼层

Re:D3D光照模型与色彩来源全分析

我想问下,图中那个顶点颜色分别与diffuse、ambient等进行选择计算后,顶点颜色怎么给呢
例如你的code
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_SPECULAR );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1 );
这样选择了 D3DTA_SPECULAR,那 这个值还是最初给定的 顶点颜色吗?

4

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2008-5-4 15:15:00 | 显示全部楼层

Re:D3D光照模型与色彩来源全分析

我现在的一个问题就是:光照的影响不是很大。如果加大场景的亮度呢?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-4 22:38:00 | 显示全部楼层

Re:D3D光照模型与色彩来源全分析

什么意思?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-4 23:00:00 | 显示全部楼层

Re: Re:D3D光照模型与色彩来源全分析

huaner: Re3D光照模型与色彩来源全分析

我想问下,图中那个顶点颜色分别与diffuse、ambient等进行选择计算后,顶点颜色怎么给呢
例如你的code
g_...


请重新把图再仔细看一遍

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-5-5 00:26:00 | 显示全部楼层

Re: Re:D3D光照模型与色彩来源全分析

instemast: Re3D光照模型与色彩来源全分析

这不可能,我材质的所有alpha都是0xFF。

我说了,我之前已经试验过了阿。而且试验了无数次。

还有,不要再d3d例子上面作。

这没有什么不可能,我相信我的眼睛.
另外我用 d3d 做仅仅是为了方便而已。
如果你需要的话,我可以把整个程序发给你。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-5 01:09:00 | 显示全部楼层

Re:D3D光照模型与色彩来源全分析

但我也相信我的眼睛,我也可以把源代码发给你

8

主题

310

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
发表于 2008-5-5 09:52:00 | 显示全部楼层

Re:D3D光照模型与色彩来源全分析

我用nv7600和8400两款显卡运行,同一个光照参数,效果都不一样
有时候不能相信自己眼睛
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 23:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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