【问题标题】:libgdx texture from code on mesh of model来自模型网格代码的 libgdx 纹理
【发布时间】:2013-06-16 18:17:36
【问题描述】:

我想渲染几个 3D 模型,作为正面具有不同值的具体卡片(但应该有 3 个维度)。

为了实现这一点,我认为创建一个表示卡片尺寸和形式的模型是一个好主意,如果可能的话,已经为卡片提供了默认纹理并添加特定于卡片的值,例如不同的数字每个渲染模型。

我已经能够使用默认纹理加载模型并渲染到屏幕,但我不知道如何将动态纹理添加到模型的正面

【问题讨论】:

    标签: android opengl-es 3d libgdx


    【解决方案1】:

    为每种卡片类型创建一个 TextureAttribute,然后将其设置到每个模型实例的材质中:

    TextureAttribute textureAttribute1 = new TextureAttribute(TextureAttribute.Diffuse, yourtexture);
    
    //
    
    material = modelinstance.materials.get(0);
    material.set(textureAttribute1);`
    

    【讨论】:

    • 这样我可以设置一个完全不同的纹理...我可以使用这个,但我最初的目标是只改变模型的一侧...你有什么线索吗?我怎么能做到这一点?我认为可以拆分材料...现在它只是一个...有没有代码方法或仅通过更改模型?
    • 好吧,换模型试过了,但是什么都没变……现在只有第二种材质了……可能现在不支持了……
    • 我不确定,3d api 相对较新,我还没有时间研究它 u.u
    • 嘿,您知道如何在模型上重复该纹理吗?我有类似的问题,你的答案有效,但我需要重复纹理。帮忙?
    【解决方案2】:

    您可能在很久以前就已经解决了这个问题,但是在模型的正面放置纹理取决于您在建模软件中创建的 uv。因此,如果您将正面 uvs 与侧面 uvs 分开在一个单独的岛上,那么这将是您的数字之一。例如,如果有 4 个 uv 岛,您的纹理将从 0 变为 3。所以您的正面将是这些数字之一。但是,必须正确解开模型才能使其正常工作。

    您还必须添加多/子纹理并为每个纹理编号。只有这样,您才会在每一侧看到不同的纹理。我唯一没能做的就是正确缩放纹理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      相关资源
      最近更新 更多