我试图在不平坦的地形上渲染几何形状(从highightmap/shapes几何体加载也是基于highightmap的平均高度生成的,但它们并不完全适合它)。我有以下的问题-有时地形显示通过形状,就像在图片上显示。
打开图片
我需要绘制地形和形状与深度测试启用,所以他们不会妨碍场景中的其他对象。有人可以建议一个解决方案,以确保形状总是呈现在顶部?把他们抬起来是不可行的……我需要替换地形上实际像素的颜色,在像素着色器中这样做似乎太昂贵了。
thanks in advance
我有一个类似的问题,我是这样解决的:
- 你首先渲染地形并保持深度缓冲。不要渲染
- 渲染你想要放在地形上的形状的实体边界框。
- 你需要确保你的边界框覆盖所有形状覆盖的高度范围
- 一种过度保守的估计是使用整个的全球最小和最大海拔地形
- 在像素着色器中,读取深度缓冲区并重建世界空间位置
- 检查这个位置是否在你的形状内
- 在你的情况下,你可以检查它的xy (xz)投影是否在给定的距离内给定圆的圆心
- 将此位置转换为形状的本地坐标系统并计算所需的颜色
- Alpha-blend over渲染目标
这种方法产生的形状与地形表面完美对齐。它也不产生任何文物和工作与任何地形。可能的缺点是它需要使用延迟样式的阴影,我不知道你是否可以这样做。尽管如此,我还是希望这对你有帮助。