具有来自json导出网格的png alpha透明度的平面材质不起作用

时间:2013-07-02 09:51:58

标签: javascript 3d three.js webgl

我在three.js做了类似地下停车场的东西 我在搅拌器中制作它并且渲染是可以的。 问题出在楼层=)

我有两种不同的纹理:

  • 没有透明度的漫反射纹理jpg(沥青)
  • 使用alpha漫射纹理png(只有停车标记,如箭头,停车线等出口)

所以我从搅拌机中导出网格物体并且我有这些材料设置:

{
    "DbgColor" : 15658734,
    "DbgIndex" : 0,
    "DbgName" : "wire_006135006.002",
    "blending" : "AdditiveBlending",
    "depthTest" : true,
    "depthWrite" : false,
    "colorAmbient" : [1.0, 1.0, 1.0],
    "colorDiffuse" : [1.0, 1.0, 1.0],
    "colorSpecular" : [0.5, 0.5, 0.5],
    "mapDiffuse" : "test.png",
    "mapDiffuseWrap" : ["repeat", "repeat"],
    "shading" : "Phong",
    "alphaTest" : 0.5,
    "opacity" : 0.5,
    "transparency" : 0.5,
    "transparent" : true,
    "vertexColors" : false
},

{
        "DbgColor" : 15597568,
    "DbgIndex" : 1,
    "DbgName" : "wire_006135006.001",
    "blending" : "NormalBlending",
    "colorAmbient" : [0.6839832884666812, 0.6807164770471523, 0.6709177117186442],
    "colorDiffuse" : [0.6839832884666812, 0.6807164770471523, 0.6709177117186442],
    "colorSpecular" : [0.0, 0.0, 0.0],
    "depthTest" : true,
    "depthWrite" : true,
    "mapBump" : "asfalt_specular.jpg",
    "mapBumpWrap" : ["repeat", "repeat"],
    "mapDiffuse" : "floor_2.jpg",
    "mapDiffuseWrap" : ["repeat", "repeat"],
    "shading" : "Phong",
    "specularCoef" : 1,
    "transparency" : 1.0,
    "transparent" : false,
        "vertexColors" : false
},

这里的第一个材料我已经改变了下一个属性:

  1. “transparet”:是的,
  2. “alphaTest”:0.5,
  3. “transparency”:0.5,
  4. “depthWrite”:false,
  5. 所以我没有得到,wtf是我的png alpha没有显示......

    只有黑色纹理或透明,但我看不到白色斑纹。

    请帮帮我,如何设置我的png alpha透明度?我已经尝试了很多exaples并没有运气(

1 个答案:

答案 0 :(得分:0)

问题在于我用作纹理的图像。原始图像具有以下尺寸:1999×7141。显然,由于某些未知原因,three.js不能使用如此大的纹理。我把尺寸减小到1000×3572,现在还可以。