在JavaFX中模拟gouraud着色

在JavaFX中模拟gouraud着色,java,javafx,3d,Java,Javafx,3d,我目前正试图在JavaFX中模拟古劳德着色。 具体来说,我希望能够将顶点颜色应用于纹理多边形 问题是,由于资源限制,我不希望为所有使用的顶点颜色/纹理组合生成唯一的纹理 我的解决方案是在不使用顶点着色的情况下设置模型,然后在顶部覆盖面,使用(相对)较小的透明纹理覆盖在顶部,以创建预期的外观 然而,我的问题是,我似乎找不到任何信息或技术来按程序制作纹理,当叠加纹理时将产生预期效果 生成“彩色纹理”使用原始纹理,并将rgb值乘以每个像素唯一的亮度值。我的问题是,我需要弄清楚如何通过将一张脸叠加在另一

我目前正试图在JavaFX中模拟古劳德着色。 具体来说,我希望能够将顶点颜色应用于纹理多边形

问题是,由于资源限制,我不希望为所有使用的顶点颜色/纹理组合生成唯一的纹理

我的解决方案是在不使用顶点着色的情况下设置模型,然后在顶部覆盖面,使用(相对)较小的透明纹理覆盖在顶部,以创建预期的外观

然而,我的问题是,我似乎找不到任何信息或技术来按程序制作纹理,当叠加纹理时将产生预期效果

生成“彩色纹理”使用原始纹理,并将rgb值乘以每个像素唯一的亮度值。我的问题是,我需要弄清楚如何通过将一张脸叠加在另一张脸上来模拟这个过程


我尝试过更改BlendMode,但是无论我将其设置为什么,当我这样做时,网格视图都会完全消失。我不知道为什么会发生这种情况。

如果每个顶点的颜色都有某种数学表达式,那么可以通过动态创建一个纹理图像轻松实现。该库有一个
TexturedMesh
,它将此概念应用于创建密度贴图,如下所示。这对你有用吗?@JoséPereda我刚看了一下,说实话,我不太清楚它是怎么用这种颜色的。这也许可以解释。我明白了。是的,所以问题在于这种技术。问题是我想在同一个面上结合顶点着色和纹理。这需要为顶点颜色和纹理的每个组合复制纹理贴图上的纹理。这个比例非常糟糕。所以,我想在顶部做一个额外的半透明面,它应用着色,而不需要创建这么多独特的纹理。如果每个顶点的颜色都有某种数学表达式,那么只需动态创建一个纹理图像就可以轻松完成。该库有一个
TexturedMesh
,它将此概念应用于创建密度贴图,如下所示。这对你有用吗?@JoséPereda我刚看了一下,说实话,我不太清楚它是怎么用这种颜色的。这也许可以解释。我明白了。是的,所以问题在于这种技术。问题是我想在同一个面上结合顶点着色和纹理。这需要为顶点颜色和纹理的每个组合复制纹理贴图上的纹理。这个比例非常糟糕。所以,我想在顶部做一个额外的半透明面,它可以应用阴影,而不需要创建这么多独特的纹理。