OpenGL总结16——深度测试下融混显示黑色

以下问题均发生在GL_MODELVIEW模式下。

首先,在GL_MODELVIEW模式下要使用深度测试,否则图像会产生一种前后不分的效果。
在编写三维图像的显示的过程中用到了透明度和融混的操作,但是在使用后发现显示有问题,图像使用融混后不能使用深度测试,否则图像的背面是黑色
如果不使用深度测试就没办法判断前后顺序,混合就会按照输入的顺序进行,所以背面的图像会像是翻到前面来,但是如何使用深度测试,就会出现图像变为黑色,如果同时还是用了透明度测试,则图像会变暗,背面的透明度像是失效了一样。举个例子,正常的绘图顺序是先绘制地再绘制草,正常不使用深度测试的情况下可以正常显示(这里不管旋转),如果调换绘制顺序那么地会压在草的上面,开启深度测试会将顺序按照距离我们的远近进行调整,那么在这个时候使用融混会产生黑色区域,原因在于草先绘制它没有可以混合的颜色(颜色缓冲中没有颜色),此时它变成了黑色,深度测试的时候已经确定草离我们更近所以草被放到了上面并且是黑色的。加了透明度虽然可以看到图像但是图像一面偏暗一面偏亮
管线的绘制顺序是:
裁剪->alpha->模板->深度->混合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值