查看: 2847|回复: 3

混合与深度测试的关系

[复制链接]

该用户从未签到

发表于 2012-11-26 12:25:18 | 显示全部楼层 |阅读模式
本帖最后由 xn1924 于 2012-11-26 13:23 编辑

画粒子云,开启混合,需要关闭深度测试或改成只读模式,我理解为若开启深度测试会剔除不符合条件的像素,如在blend的write为true,规则为Less的情况下,将会用深度值低的像素不断的更新缓存里的源像素值,最终只保留离眼最近的像素,实现遮挡作用,从而不能进行层层src,des混合实现透明效果。
可我使用牛做测试开启混合,深度测试开与否都能透明呢?

该用户从未签到

发表于 2012-11-27 11:23:05 | 显示全部楼层
我没有看懂您要表述的内容。。。

该用户从未签到

 楼主| 发表于 2012-11-27 19:11:01 | 显示全部楼层
本帖最后由 xn1924 于 2012-11-27 19:13 编辑
array 发表于 2012-11-27 11:23
我没有看懂您要表述的内容。。。

不知您还记得cookbook charpter6 create a piece of cloud一节中,通过很低效的排序算法给图元排序后,在主函数依然加了一句setAttributeAndModes( new osg :: Depth(osg :: Depth:: LESS, 0.0, 1.0, false) );即disable writing 。
我的问题是,实时排序好的图元粒子云为何会在第一帧中显示有误,要通过disable writing或关闭深度测试来克服?

该用户从未签到

发表于 2012-11-29 15:44:35 | 显示全部楼层
这不是关闭深度测试只是不写入depth buffer而已,其作用简单来说是因为随机生成的云粒子有可能重叠在一起产生不好的斑驳效果,所以用这种方法来改善。不用的话我记得也不会有非常明显的错误出现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表