所以,我有一个冒充者(真正的几何体是一个立方体,可能被剪裁了,而冒充者的几何形状是一个门格海绵),我需要计算它的深度。
我可以相当容易地计算在世界空间中的偏移量。不幸的是,我已经花了数小时尝试用它来扰动深度,但没有成功。
唯一可以得到正确结果的情况是当我执行以下操作时:
gl_FragDepth = gl_FragCoord.z
我需要知道如何计算gl_FragCoord.z,以便我可以:
- 从gl_FragCoord.z逆变换到眼空间
- 添加深度扰动
- 将这个扰动的深度转换回与原始gl_FragCoord.z相同的空间。
如果这看起来像是一个重复的问题,我很抱歉;这里有一些其他帖子涉及类似的事情。然而,在实现所有这些方法之后,没有一个能正常工作。现在,我请求提供完整的代码以解决这个问题。它应该只是几行代码。
clip_near
和clip_far
是什么?因为这些听起来非常像用于计算透视投影矩阵的近裁剪面和远裁剪面距离。 - Nicol Bolas