我正在尝试在不平坦的地形上渲染几何形状(从高度图加载/形状几何也基于高度图上的平均高度生成,但它们并不完全适合)。我有以下问题-地形通过图片中显示的形状显示出某种东西。
Open Image
我需要在启用深度测试的同时绘制地形和形状,以免它们遮挡场景中的其他对象。有人可以提出解决方案以确保形状始终显示在顶部吗?提升它们并不是真正可行的...我需要替换地形上实际像素的颜色,并且在像素着色器中执行此操作似乎过于昂贵。
提前致谢
最佳答案
我有一个类似的问题,这就是我解决的方法:
首先渲染地形并保留深度缓冲区。不渲染
任何物体
渲染要放置在地形上的形状的实心边界框。
您需要确保边界框覆盖所有
形状覆盖的高度范围
过度保守的估计是使用整个区域的全局最小和最大海拔
地形
在像素着色器中,您可以读取深度缓冲区并重建世界空间位置
您检查此位置是否在形状内
在您的情况下,您可以检查其xy(xz)投影是否在距
给定圆的中心
将此位置转换为形状的局部坐标系并计算所需的颜色
Alpha混合渲染目标
这种方法可以使形状与地形表面完全对齐。它也不会产生任何伪像,并且可以在任何地形上使用。
可能的缺点是,它需要使用延迟样式着色,并且我不知道您是否可以这样做。不过,我希望这可能对您有所帮助。
关于windows-runtime - 通过深度测试绘制地形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22556663/