direct3D 可以设置自定义混合因子吗?

xiaoxiami002 2011-10-08 10:14:42
源混合因子D3DRS_SRCBLEND
目标融合因子D3DRS_DESTBLEND

这两个可以设置自定义的值吗?
...全文
212 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevin_qing 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xiaoxiami002 的回复:]

我的意思是:比如说D3DBLEND_SRCCOLOR的值为:(rs, gs, bs, as)
那么我可不可以自己设置个值,比如XXX的值为(0.568,0.257,0.486,0.778);

不好意思,语文没学好,误导大家了
[/Quote]

你这个只能用ps实现
xiaoxiami002 2011-10-14
  • 打赏
  • 举报
回复
我的意思是:比如说D3DBLEND_SRCCOLOR的值为:(rs, gs, bs, as)
那么我可不可以自己设置个值,比如XXX的值为(0.568,0.257,0.486,0.778);

不好意思,语文没学好,误导大家了
shupo 2011-10-13
  • 打赏
  • 举报
回复
帮你顶起来.
mcewu 2011-10-13
  • 打赏
  • 举报
回复
不明白
youou004 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 freeman040921 的回复:]
输出像素值=源像素值*源混合因子+后台缓存像素值*后台缓存混合因子;
* 表示分量乘
源混合因子和后台混合因子通过D3DRS_SRCBLEND和D3DRS_DESTBLEND设置,默认值源混合因子=源的alpha通道值,后台混合因子=1-源的alpha通道值。
alpha通道值可以指定为顶点颜色alpha通道或纹理alpha通道值。
详见DirectX文档
[/Quote]
你可以告诉我可以自己定义D3DRS_SRCBLEND和D3DRS_DESTBLEND的值吗?
csdn网速很慢 2011-10-10
  • 打赏
  • 举报
回复
dx文档上有描述
texture stages blend two arguments by using a specified operator. Common operations include simple modulation or addition of the color or alpha components of the arguments, but more than two dozen operations are supported. The arguments for a stage can be an associated texture, the iterated color or alpha (iterated during Gouraud shading), arbitrary color and alpha, or the result from the previous texture stage
freeman040921 2011-10-10
  • 打赏
  • 举报
回复
D3DRS_SRCBLEND和D3DRS_DESTBLEND是混合方法,具体值来源于指定的alpha通道,下面是D3DRS_SRCBLEND和D3DRS_DESTBLEND部分可指定的值,详细论述见DirectX文档

D3DBLEND_ZERO (0, 0, 0, 0)
D3DBLEND_ONE (1, 1, 1, 1)
D3DBLEND_SRCCOLOR (Rs, Gs, Bs, As)
D3DBLEND_INVSRCCOLOR (1-Rs, 1-Gs, 1-Bs, 1-As)
D3DBLEND_SRCALPHA (As, As, As, As)
D3DBLEND_INVSRCALPHA (1-As, 1-As, 1-As, 1-As)
D3DBLEND_DESTALPHA (Ad, Ad, Ad, Ad)
D3DBLEND_INVDESTALPHA (1-Ad, 1-Ad, 1-Ad, 1-Ad)
D3DBLEND_DESTCOLOR (Rd, Gd, Bd, Ad)
D3DBLEND_INVDESTCOLOR (1-Rd, 1-Gd, 1-Bd, 1-Ad)
D3DBLEND_SRCALPHASAT (f, f, f, 1); f = min(As, 1-Ad)

例如:
Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);

Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);
freeman040921 2011-10-09
  • 打赏
  • 举报
回复
输出像素值=源像素值*源混合因子+后台缓存像素值*后台缓存混合因子;
* 表示分量乘
源混合因子和后台混合因子通过D3DRS_SRCBLEND和D3DRS_DESTBLEND设置,默认值源混合因子=源的alpha通道值,后台混合因子=1-源的alpha通道值。
alpha通道值可以指定为顶点颜色alpha通道或纹理alpha通道值。
详见DirectX文档
glacier3d 2011-10-09
  • 打赏
  • 举报
回复
设置来源,具体忘了
设置D3DRS_BLENDFACTOR 可以指定常量混合因子
xiaoxiami002 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 freeman040921 的回复:]
不可以直接设定alpha值,但你可以指定alpha来源,这个值可以指定是顶点颜色中的alpha值,也可以是纹理中alpha值,如果你的alpha来源于顶点颜色,你就可以手动修改顶点颜色中的alpha值。如果你的alpha值来源于纹理,那你就需要第三方软件来编辑你纹理中的alpha值。(alpha值默认是来源于顶点颜色)
PS:龙书中第七章 混合 有详细的论述。
[/Quote]
alpha值时混合中的一个因素,
但混合不是还有颜色吗,
我想问的是混合因子是不是就是那么几个固定的值,还是有上面函数可以设置
freeman040921 2011-10-08
  • 打赏
  • 举报
回复
不可以直接设定alpha值,但你可以指定alpha来源,这个值可以指定是顶点颜色中的alpha值,也可以是纹理中alpha值,如果你的alpha来源于顶点颜色,你就可以手动修改顶点颜色中的alpha值。如果你的alpha值来源于纹理,那你就需要第三方软件来编辑你纹理中的alpha值。(alpha值默认是来源于顶点颜色)
PS:龙书中第七章 混合 有详细的论述。

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧