游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2205|回复: 8

?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

[复制链接]

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
发表于 2009-10-9 22:48:00 | 显示全部楼层 |阅读模式
        // use alpha in material's diffuse component for alpha
        Device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
        Device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);

        // set blending factors so that alpha component determines transparency
        Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
        Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

如果?光照的?,可以透明合成。不?的?,就不能透明混合了。
?有一?方法是根??y理每??像素?的A值?行混合,但是我?在只要根????值?行混合,?K且又不能?光照,要怎?透明混合?

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-17 21:03:00 | 显示全部楼层

Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

sdgsdgf

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2009-10-19 01:16:00 | 显示全部楼层

Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

Device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
Device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
Device->SetTextureStageState(0, D3DTSS_ALPHAAR21, D3DTA_TEXTURE);

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-19 02:10:00 | 显示全部楼层

Re: Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合

King_jinjing: Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

Device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
Device->SetTextureStageStat...

不知道?楹危?媚愕拇?a??光照?r都不能根??IFFUSE的A值?行的透明合成了?
你那?可以的?幔

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2009-10-19 14:42:00 | 显示全部楼层

Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

在FVF里光照并不能影响alpha值,能影响alpha值信息一个是材质,一个是纹理。

我这样做只是把alphaop调成默认状态。

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-19 15:59:00 | 显示全部楼层

Re: Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合

King_jinjing: Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

在FVF里光照并不能影响alpha值,能影响alpha值信息一个是材质,一个是纹理。

我这样做只是把alphaop调成默认状态。

理解不能。
用你的方法就可以根????值控制?理的透明度?幔
我在不?光照的情?r下,不可能?每??像素??置A值吧?

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2009-10-19 16:34:00 | 显示全部楼层

Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

你可以在渲染状态里指定一个类似于全局alpha值,从而实现“每个像素点设置alpha值”。

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-20 16:10:00 | 显示全部楼层

Re: Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合

King_jinjing: Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

你可以在渲染状态里指定一个类似于全局alpha值,从而实现“每个像素点设置alpha值”。

怎??定?

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2009-10-21 01:46:00 | 显示全部楼层

Re:?槭颤N?掉光照後就不能用根??IFFUSE的A值?行的透明合成?

e.g.

SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TFACTOR );
SetRenderState( D3DRS_TEXTUREFACTOR, D3DCOLOR_RGBA(0,0,0,125) );
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-19 21:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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