局部形状颜色混合

时间:2013-08-14 07:29:52

标签: opengl directx glsl shader hlsl

我正在尝试在Unity 4 Pro中实现this

但我被困在混合部分。我不明白你如何使用对象上的多个体积来混合多个纹理/颜色。如何在着色器中访问这些卷并检查“碰撞”?

它似乎与顶点/像素照明非常相似。但也许我错了。

这是我想要创建的简单效果。 enter image description here

1 个答案:

答案 0 :(得分:0)

看起来这个方法是关于在不同环境贴图之间插值的方法(以立方体贴图的形式给出)。发布的图像看起来像插值策略的可视化。也就是说,当一个点在世界中移动时,使用具有不同加权的各种环境地图(例如,一个的10%,另一个的70%和三分之一的20%)以提供平滑过渡。不是一个点,而是一个以片段形式实现的表面,它使用许多环境贴图来近似该片段位置的环境贴图。

要回答你的问题,“检查碰撞”可能应该在CPU端进行,并且传入一个卷(真正的3D形状)列表。例如,如果你绘制的东西可以与环境贴图的贡献区域相交将地图映射到列表并将它们全部传递给绘制对象的着色器。使用统一的物理触发器可能是开始使用它的最简单方法。

获得权重列表后,对每个环境地图进行采样(按方向和mip级别),按结果的权重和总和来缩放样本。

相关问题