【发布时间】:2013-06-16 18:17:36
【问题描述】:
我想渲染几个 3D 模型,作为正面具有不同值的具体卡片(但应该有 3 个维度)。
为了实现这一点,我认为创建一个表示卡片尺寸和形式的模型是一个好主意,如果可能的话,已经为卡片提供了默认纹理并添加特定于卡片的值,例如不同的数字每个渲染模型。
我已经能够使用默认纹理加载模型并渲染到屏幕,但我不知道如何将动态纹理添加到模型的正面。
【问题讨论】:
标签: android opengl-es 3d libgdx
我想渲染几个 3D 模型,作为正面具有不同值的具体卡片(但应该有 3 个维度)。
为了实现这一点,我认为创建一个表示卡片尺寸和形式的模型是一个好主意,如果可能的话,已经为卡片提供了默认纹理并添加特定于卡片的值,例如不同的数字每个渲染模型。
我已经能够使用默认纹理加载模型并渲染到屏幕,但我不知道如何将动态纹理添加到模型的正面。
【问题讨论】:
标签: android opengl-es 3d libgdx
为每种卡片类型创建一个 TextureAttribute,然后将其设置到每个模型实例的材质中:
TextureAttribute textureAttribute1 = new TextureAttribute(TextureAttribute.Diffuse, yourtexture);
//
material = modelinstance.materials.get(0);
material.set(textureAttribute1);`
【讨论】:
您可能在很久以前就已经解决了这个问题,但是在模型的正面放置纹理取决于您在建模软件中创建的 uv。因此,如果您将正面 uvs 与侧面 uvs 分开在一个单独的岛上,那么这将是您的数字之一。例如,如果有 4 个 uv 岛,您的纹理将从 0 变为 3。所以您的正面将是这些数字之一。但是,必须正确解开模型才能使其正常工作。
您还必须添加多/子纹理并为每个纹理编号。只有这样,您才会在每一侧看到不同的纹理。我唯一没能做的就是正确缩放纹理。
【讨论】: