为体素引擎着色环境遮挡

时间:2014-06-15 02:45:33

标签: directx shader hlsl monogame

我试图通过Monogame的VertexPositionColorTexture在我的游戏中实现环境遮挡。我提出的当前环境遮挡的图像就是这个,但它并不完全完整: Screenshot

我没有使用着色器来实现这种效果,并且一直在努力寻找如何在环境遮挡中使用它们。使用Color代替法线是不对的?我应该使用法线而不是颜色参数吗?我知道BasicEffect类是一个着色器,但我只是好奇。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

我不知道monogame,但是如果你想做环境遮挡,通常它会起到后期效果的作用。这样每个像素都可以保证被渲染。因为对于每个像素,您需要在其周围的多个位置查找它周围的圆(半径取决于深度)。渲染必须有多个缓冲区,不仅是颜色,还有深度和法线。 (这就是感谢延迟渲染的原因) 然后,遮挡因子来自样本估计的遮挡的总和,其被评估为前面的多少"它是当前的像素。这是通过比较世界位置与中心像素假设表面(从其法线外推),并假设它周围无限平面来完成的。