Directx 体素引擎的着色器环境光遮挡

Directx 体素引擎的着色器环境光遮挡,directx,shader,hlsl,monogame,Directx,Shader,Hlsl,Monogame,我试图通过Monogame的VertexositionColorTexture在游戏中实现环境光遮挡。我提出的当前环境光遮挡的图像是这样的,但它并不完全完整: 我没有使用着色器来实现此效果,一直在努力找出如何在环境光遮挡中使用着色器。使用颜色而不是法线是错误的吗?我应该使用法线而不是颜色参数吗?我知道BasicFect类是一个着色器,但我只是好奇 谢谢大家。我不知道monogame,但是如果你想做环境遮挡,通常它会作为后期效果。这样,每个像素都保证被渲染。因为对于每一个像素,你需要在它的附近,

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

我没有使用着色器来实现此效果,一直在努力找出如何在环境光遮挡中使用着色器。使用颜色而不是法线是错误的吗?我应该使用法线而不是颜色参数吗?我知道BasicFect类是一个着色器,但我只是好奇


谢谢大家。

我不知道monogame,但是如果你想做环境遮挡,通常它会作为后期效果。这样,每个像素都保证被渲染。因为对于每一个像素,你需要在它的附近,在一个圆圈的多个地方查找,半径取决于深度。渲染必须具有多个缓冲区,不仅包括颜色,还包括深度和法线。这就是为什么延迟渲染受到赞赏的原因 然后,遮挡因子来自估计遮挡的样本的总和,其评估为当前像素前面的距离。这是通过比较世界位置和中心像素的假设表面来完成的,假设表面是从其法线外推的,并且假设其周围是无限平面