Litchi:同时渲染半透明和不透明模型

今天写Litchi的时候遇到了一个bug,简单来说就是半透明模型把另外一个半透明模型给遮蔽了。然后上网查了一下,找到了原因,是因为开启了深度测试。

深度测试时直接将把遮挡的半透明模型的片段给丢弃了,然后在混合阶段就没有目标片段了;

然后找到了一个解决方案即:在渲染半透明模型时,开启深度测试,但不开启深度写入,渲染不透明模型时同时开启深度测试和深度写入;

但这里还有一个问题,有的模型既有透明片段也有不透明片段,这该如何解决?可能是控制深度写入和深度测试的步骤要放到FragmentShader里了;

然后接受一下这样做的原因:

先看不同步骤之间的顺序:

先化简模型:渲染模型但是半透明和都是不透明:

这两者在深度测试上是两个极端,前者中,深度测试没有意义,后者中深度测试是具体意义的;

因为前者中每一个片段都能对一个像素产生影响,后者中只有距离相机最近的片段能产生影响。

然后仔细想想就行了,哎,人大脑中的想法真的很难全部写出来,是我水平问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值