【问题标题】:Textures on 3d models appear very dark in libgdx3d 模型上的纹理在 libgdx 中显得很暗
【发布时间】:2022-11-05 22:58:10
【问题描述】:

我有一个简单的模型,打算在 Libgdx 应用程序中使用。不幸的是,正如标题所示,当我这样做时,该模型上的纹理看起来很暗。

Model within Blender

我在模型下方渲染简单的地形,它以适当的亮度显示,这意味着问题在于导入模型的属性而不是 Libgdx 环境。尽管如此,我还是尝试使用环境光来照亮模型,定向灯直接指向导入的模型,并在模型的正上方放置一个点光源,所有这些都对渲染纹理的亮度没有影响。

Model within Libgdx

虽然问题似乎出在模型上的纹理上,但相同的模型在 3D 查看器中正确渲染,这意味着情况可能并非如此。然而,与在 Libgdx 中一样,该模型在 Fbx-conv 应用程序的预览工具中也几乎完全显示为黑色。

Model within Fbx-Conv application

因此,问题很可能是在转换过程中出现的,所以我从转换工具中附上了 G3DJ 输出文件(虽然我省略了顶点和索引信息以减少这篇文章的长度)。我确实检查了文件,但在将 Fbx 文件转换为 G3DB 文件的过程中,我没有看到任何明显的色调来源。

{
"version": [  0,   1], 
"id": "", 
"meshes": [
            {
        "attributes": ["POSITION", "NORMAL", "TEXCOORD0"], 
            }
        ]
    }
], 
"materials": [
    {
        "id": "MI_MH_02_Atlas_01", 
        "ambient": [ 0.050876,  0.050876,  0.050876], 
        "diffuse": [ 0.215861,  0.215861,  0.215861], 
        "emissive": [ 0.000000,  0.000000,  0.000000], 
        "opacity":  1.000000, 
        "specular": [ 0.215861,  0.215861,  0.215861], 
        "shininess":  20.000000, 
        "textures": [
            {
                "id": "base_color_texture", 
                "filename": "MI_MH_02_Atlas_01_BaseColor.png", 
                "type": "DIFFUSE"
            }
        ]
    }, 
    {
        "id": "MI_MH_02_Atlas_02", 
        "ambient": [ 0.050876,  0.050876,  0.050876], 
        "diffuse": [ 0.215861,  0.215861,  0.215861], 
        "emissive": [ 0.000000,  0.000000,  0.000000], 
        "opacity":  1.000000, 
        "specular": [ 0.215861,  0.215861,  0.215861], 
        "shininess":  20.000000, 
        "textures": [
            {
                "id": "base_color_texture", 
                "filename": "MI_MH_02_Atlas_02_BaseColor.png", 
                "type": "DIFFUSE"
            }
        ]
    }, 
    {
        "id": "MI_MH_02_Atlas_03", 
        "ambient": [ 0.050876,  0.050876,  0.050876], 
        "diffuse": [ 0.215861,  0.215861,  0.215861], 
        "emissive": [ 0.000000,  0.000000,  0.000000], 
        "opacity":  1.000000, 
        "specular": [ 0.215861,  0.215861,  0.215861], 
        "shininess":  20.000000, 
        "textures": [
            {
                "id": "base_color_texture", 
                "filename": "MI_MH_02_Atlas_03_BaseColor.png", 
                "type": "DIFFUSE"
            }
        ]
    }
], 
"nodes": [
    {
        "id": "Quarry", 
        "rotation": [-0.707107,  0.000000,  0.000000,  0.707107], 
        "scale": [ 100.000000,  100.000000,  100.000000], 
        "parts": [
            {
                "meshpartid": "Feature.002_part3", 
                "materialid": "MI_MH_02_Atlas_01", 
                "uvMapping": [[]]
            }, 
            {
                "meshpartid": "Feature.002_part2", 
                "materialid": "MI_MH_02_Atlas_02", 
                "uvMapping": [[]]
            }, 
            {
                "meshpartid": "Feature.002_part1", 
                "materialid": "MI_MH_02_Atlas_03", 
                "uvMapping": [[]]
            }
        ]
    }
], 
"animations": []

}

我在网上看到过一些类似的问题;然而,这些与缺失的纹理有关,而不是存在的纹理——由于某种原因——颜色很深,因此对我没有帮助。有没有人有任何纹理看起来比他们应该更暗的经验?如果是这样,任何解决方案将不胜感激。

【问题讨论】:

    标签: libgdx


    【解决方案1】:

    我遇到了同样的问题,在我的情况下,纹理没有渲染,因为纹理文件的尺寸不是 2 的幂(如LibGDX's documentation 中所述,奇怪的是他们选择记录这个问题而不是修复它)。

    我使用Python 控制台像这样查看 (Shift+F4):bpy.data.images["ImageName"].scale(x, y)。 也有调整大小的选项图像编辑器查看,但由于某种原因它不起作用。

    希望有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 2016-05-10
      • 2013-10-07
      • 1970-01-01
      • 2014-01-27
      相关资源
      最近更新 更多