首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

请问多纹理混合的一个有关问题

2012-03-24 
请教多纹理混合的一个问题!比如有两重纹理,如果我想这两重纹理融合的算法是这样的:取两个纹理颜色最大值作

请教多纹理混合的一个问题!
比如有两重纹理,如果我想这两重纹理融合的算法是这样的:取两个纹理颜色最大值作为输出纹理的颜色值。
c = max(a,b)a,b表示两重纹理颜色,c是输出纹理颜色。

比较常见的
m_pIDirect3DDevice->SetTextureStageState(1, D3DTSS_COLORARG2,D3DTA_CURRENT);
m_pIDirect3DDevice->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_TEXTURE);
m_pIDirect3DDevice->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_ADD);

D3DTOP_ADD表示两重纹理的颜色相加,但是如果是取两重纹理最大值应该做么做呢

说明,我不要一个一个像素处理,这样比较慢,占用CPU也很大。

[解决办法]
让GPU来比较,而不是CPU
[解决办法]

探讨
我主要是想实现这样的算法:
a是纹理1的颜色值。
b是纹理2的颜色值。
c = max(a,b)

c就是两重纹理混合后的颜色值。

请问是不是一定要使用到hlsl呢,我真的不会这个啊?
“将2个texture比较后,然后生成一个texture”,我也知道是比较,但是我不知道是怎么写啊,请教一下,希望给些代码看看,谢谢

[解决办法]
得到rendersuface,在shader中写算法。因为像素颜色最大值rgb3个分量你要逐个判断是否最大的。

热点排行