如何将3D树叶的颜色与其下方的纹理合并?

时间:2015-12-26 12:32:51

标签: java opengl glsl lwjgl multitexturing

我有一个2D纹理,比如这个,我现在只是直接掉到地形上。 enter image description here

然后我在那个纹理上渲染树叶。 enter image description here

我想(使用片段着色器)获取草下纹理的颜色,并将草设置为其下面纹理的颜色。

为此,我需要获取相对于纹理的地形上每个草顶点的位置。 enter image description here

然后我需要获得与对象位置相对应的纹理颜色,并将其与当前的草色混合(假设我有红草用于演示目的)。 enter image description here

我目前不确定如何开始。我知道我需要得到草和#39;通过着色器在世界中的X和Z位置(我目前没有),但我需要计算出相应的纹理像素,我目前不知道该怎么做。

任何有助于解决此问题的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

主要思想是将位置坐标作为纹理坐标传递。

希望我的计算正确

你有一个高度图放置的矩形,让位置坐标相对于那个。在这种情况下,如果你的高度图是NxM,纹理坐标是1x1,你可以将位置标准化为0..1,然后你就有了一个纹理坐标。

现在使用此纹理坐标,您可以获得将纹理作为一个整体传递的颜色。

我希望它很清楚并且满足你的问题,但我也愿意看到澄清。