关闭深度写入,开启深度测试,按从远到近的顺序渲染所有透明物体的深入分析


1. 深度测试和深度写入是什么?

  • 深度测试:就像你在画画时,先画远处的山,再画近处的树,画树的时候会判断“这块地方是不是已经被山挡住了?如果挡住了,就不画树的那部分”。
  • 深度写入:每画一笔,就把“这块地方的远近信息”记下来,方便后面判断新画的东西是不是被挡住。

2. 为什么要关闭深度写入?

想象你在一张透明玻璃上画画:

  • 如果你画一层玻璃(比如窗户),再画第二层玻璃(比如玻璃杯),你希望两层都能看到,颜色能叠加。
  • 如果你每画一层都把“远近信息”盖住了,后面的玻璃就画不上去了(被挡住了)。
  • 所以,画透明物体时,不要更新“远近信息”,否则后面的透明层就没法正确叠加了。

3. 为什么要开启深度测试?

  • 你还是要知道“这块地方是不是被不透明的东西挡住了”。
  • 比如你画玻璃杯,杯子后面有一堵墙,墙挡住的地方就不该画玻璃杯。
  • 所以,要用深度测试来判断:如果被不透明物体挡住了,就不画透明物体的那部分

4. 为什么要从远到近排序?

  • 画透明物体时,颜色是“叠加”出来的,先画远处的,再画近处的,才能让近处的透明物体正确地覆盖远处的。
  • 如果顺序反了,近处的透明物体会被远处的盖住,效果就错了。

5. 形象小故事

想象你在贴彩色玻璃贴纸:

  1. 你先把不透明的背景贴好(比如一面墙)。
  2. 你有三张透明贴纸:最远的A,中间的B,最近的C。
  3. 你要先贴A,再贴B,再贴C,这样C的颜色会叠加在B和A之上,B会叠加在A之上,最终你能看到所有透明层的混合效果。
  4. 贴每一张透明贴纸时,你只贴在“没有被墙挡住”的地方(深度测试),但你不会把“这块地方已经贴过了”的信息记下来(关闭深度写入),这样后面的贴纸还能继续贴上去。

6. 总结口诀

  • 深度测试开:只画没被挡住的地方。
  • 深度写入关:不记“谁在最前面”,让后面的透明层还能画。
  • 从远到近画:让近的透明层正确覆盖远的,颜色叠加才对。

我们再用几个更生动、贴近生活的例子来说明“关闭深度写入,开启深度测试,按从远到近的顺序渲染所有透明物体”这个过程。


案例一:叠加彩色玻璃窗

想象你在教堂里,面对一扇由多块彩色玻璃拼成的大窗户。你手里有三块透明的彩色玻璃片,分别代表不同的图案和颜色。

  • 第一步:你先把最远的那块玻璃片(A)贴在窗户上。
  • 第二步:然后你把中间距离的那块玻璃片(B)贴上去,B会和A的颜色叠加,形成新的颜色。
  • 第三步:最后你把最近的那块玻璃片(C)贴上去,C的颜色会和下面两层混合,最终你看到的就是三层颜色的叠加效果。

注意:

  • 你每贴一块玻璃片时,只贴在“没有被窗框或者墙挡住”的地方(这就是深度测试)。
  • 你不会因为贴了B就把A完全盖住(这就是关闭深度写入),这样C还能继续叠加在B和A之上。
  • 如果你顺序贴反了,比如先贴C再贴A,A就会把C盖住,效果就错了。

案例二:画水彩画

你在画一幅水彩画,想表现湖面上漂浮的三片透明的彩色树叶。

  • 你先画最远的那片叶子(A),颜色很淡。
  • 然后画中间的那片叶子(B),B的颜色会和A的颜色混合。
  • 最后画最近的那片叶子(C),C的颜色会和下面两层混合,最终你看到的就是三片叶子的叠加效果。

注意:

  • 你不会因为画了B就把A完全盖住(关闭深度写入),这样C还能继续画上去。
  • 你画每一片叶子时,都会避开已经被石头或者岸边挡住的地方(深度测试)。
  • 你必须从远到近画,才能让近的叶子正确地覆盖远的叶子。

案例三:手机贴膜

你给手机贴膜,有三层不同功能的透明膜:防蓝光膜(A)、防指纹膜(B)、防爆膜(C)。

  • 你先贴最靠近屏幕的那层(A),再贴中间的(B),最后贴最外面的(C)。
  • 每一层都能看到下面的膜的效果,最终你看到的是三层膜的综合效果。
  • 如果你贴膜时,某个地方已经被手机壳挡住了(深度测试),那你就不贴那一块。
  • 你不会因为贴了B就把A的信息抹掉(关闭深度写入),这样C还能继续贴上去。

案例四:舞台上的透明幕布

舞台上有三层透明幕布,演员在后面表演。

  • 观众看到的效果,是三层幕布的颜色和图案叠加在一起。
  • 幕布必须从后往前一层层挂(从远到近),否则前面的幕布会挡住后面的,叠加效果就错了。
  • 如果某个地方有道具挡住了舞台(深度测试),那一块幕布就不会挂上去。
  • 挂每一层幕布时,不会把之前的幕布拿下来(关闭深度写入),这样所有幕布都能一起起作用。

总结

  • 深度测试:像检查“这块地方是不是被什么挡住了”,如果被挡住就不画/不贴/不挂。
  • 关闭深度写入:每贴一层/画一层/挂一层,都不把“谁在最前面”的信息覆盖掉,这样后面的透明层还能继续叠加。
  • 从远到近排序:只有先画远的再画近的,叠加出来的透明效果才对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你一身傲骨怎能输

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值