游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3586|回复: 6

如何自己写shader来替代默认管线的 颜色混合计算?

[复制链接]

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-5-28 11:57:00 | 显示全部楼层 |阅读模式
一般设置颜色混合计算是用SetRenderState, 而且只提供了少量的计算方式.

所以我想自己写代码来计算颜色混合(比如半透明混合)

请问该怎么做?

=================================================================
程序里取得当前BackBuffer表面, 再传入shader里计算? 这样感觉很慢..

shader里不能直接获得BackBuffer么?

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-5-28 12:30:00 | 显示全部楼层

Re:如何自己写shader来替代默认管线的 颜色混合计算?

透明用alpha blend就可以了

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
 楼主| 发表于 2009-5-28 16:26:00 | 显示全部楼层

Re:如何自己写shader来替代默认管线的 颜色混合计算?

如果我想要把即将画的图元跟当前BackBuffer做 其他颜色混合计算(非AlphaBlend) 该怎么办?

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-6-2 13:03:00 | 显示全部楼层

Re: 如何自己写shader来替代默认管线的 颜色混合计算?

通过 EnableAlphaBlend 设置

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
发表于 2009-6-5 20:26:00 | 显示全部楼层

Re:如何自己写shader来替代默认管线的 颜色混合计算?

跟背景表面混和目前可编程管线还不能控制。

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
 楼主| 发表于 2009-6-6 10:18:00 | 显示全部楼层

Re:如何自己写shader来替代默认管线的 颜色混合计算?

哎..可惜了.

我以为, 既然shader是运行在GPU上的, 应该可以直接访问显存里的数据啊

直接在shader里获得RenderTarget, 然后再和一个sampler自己计算颜色混合方式

14

主题

156

帖子

158

积分

注册会员

Rank: 2

积分
158
QQ
发表于 2009-6-9 18:00:00 | 显示全部楼层

Re: Re:如何自己写shader来替代默认管线的 颜色混合计算?

flyue: Re:如何自己写shader来替代默认管线的 颜色混合计算?

如果我想要把即将画的图元跟当前BackBuffer做 其他颜色混合计算(非AlphaBlend) 该怎么办?


先把BackBuffer拷贝出来到一张贴图A上,然后把A传进像素shader与即将画的图元进行操作。。。

我以前这么做过~呵呵~可行~但不知道拷贝与传输到显卡的代价如何
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 01:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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