游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5443|回复: 20

DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效果?

[复制链接]

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
发表于 2009-10-8 21:40:00 | 显示全部楼层 |阅读模式
DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效果?
我知道要?置什??苏I什?的,具?是哪些?苏I?透明混合的?苏I我倒知道。
?有除了?些特效外,?有哪些特效?

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

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

Re:DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效

lpDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
这行执行后,图像都变全白了?

14

主题

127

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2009-10-9 15:42:00 | 显示全部楼层

Re:DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效

这些去看SDK文档啊
而且,建议你用可编程渲染管线来弄,更方便

1

主题

24

帖子

31

积分

注册会员

Rank: 2

积分
31
发表于 2009-10-9 16:26:00 | 显示全部楼层

Re: DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效

相加颜色变白是因为加法操作是将源图像和目标图像的像素颜色相加,其相加结果可能会大于或等于1,即全白色.
因此加法混合会使最终图像更亮.
而相减混合会使图像变暗.
相乘操作可以产生正片叠底的效果.
至于其他的效果可以任意的使用各种混合操作模式来看效果.

可以参看下面链接:
http://www.pegtop.net/delphi/articles/blendmodes/

<<OpenGL着色语言>>,里面有详细的使用shader产生各种混合效果的介绍.

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

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

Re: Re: DX9怎???理?生加法混合、减法混合、色?、?和、灰度

yfplane: Re: DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效果?

相加颜色变白是因为加法操作是将源图像和目标图像的像素颜色相加,其相加结果可能会大于或等于1,即全白色.
...

具??置什??苏I?

?有SHADER的?,我的??不支持,只能用REF模式??而已。
?榱思嫒莞?嘟K端,所以?是?Q定不使用SHADER。

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

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

Re:DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效

D3DTOP_ADD:将两上混合参数相加后输出.
D3DTOP_SUBTRACT:将两个混合参数相减后输出.

?????苏I可以加法和?p法混合吧?
但?槭颤N我??,理?上???????理相交的地方做混合,但?槭颤N?]有相交也那??了?就是?如果D3DTOP_ADD的?,我??就算?]有相交,?D像也?成全白,如果D3DTOP_SUBTRACT,就算不相交,也全黑。?槭颤N?

?有色??些呢?

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-10-9 22:23:00 | 显示全部楼层

Re:DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效

Hue: rotation alone vector(1,1,1) will change color hue, so use Matrix.CreateFromAxisAngle( (0.5773503, 0.5773503, 0.5773503), angle) . The rotation angle is between [-180, 180] degree, 120 degree will turn red to green completely, -120 will turn red to blue.

float4 PS(float2 texCoord:TEXCOORD0):COLOR
{
        float4 color = tex2D(sourceSpl,texCoord);
        return mul(color,colorMatrix);
}

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-9 22:43:00 | 显示全部楼层

Re: Re:DX9怎???理?生加法混合、减法混合、色?、?和、灰度

clayman: ReX9怎???理?生加法混合、减法混合、色?、?和、灰度等效果?

Hue: rotation alone vector(1,1,1) will change color hue, so use Matrix.CreateFromAxisAngle( (0.57735...

?????到DX?用不了?。。。?

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-10-9 23:13:00 | 显示全部楼层

Re: Re: Re:DX9怎???理?生加法混合、减法混合、色?、?和、灰

流川枫: Re: ReX9怎???理?生加法混合、减法混合、色?、?和、灰度等效果?


?????到DX?用不了?。。。?

能不能?我一??直接??粘?到DX?就可以用的代??
加法?p法的原理我都知道的。

原?砦抑辉O置Device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD),?]有?置D3DTSS_COLORARG1和D3DTSS_COLORARG2所以才全白的。

我??
                // 将参数1设置为纹理颜色

                Device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);




                Device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
?置後,可以可以看到?D?亮了,但是???是 ?理自己和自己相加,我想要?理和目?讼袼剡M行混合,怎?添?

1

主题

24

帖子

31

积分

注册会员

Rank: 2

积分
31
发表于 2009-10-10 08:21:00 | 显示全部楼层

Re:DX9怎???理?生加法混合、减法混合、色?、?和、灰度等效

Device->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_CURRENT); 表示与前一个纹理阶段相混合,对于纹理阶段0,它相当于D3DTA_DIFFUSE.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-6 23:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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