2012-06-11 21 views
2

我一直在Windows/SDL上编程OpenGL几年,并能够用它做很多高级的事情。LibGdx GLES2.0立方体texel拉伸

我已经切换到Android和libgdx,并在过去几天试图把简单的演示放在一起,只是一个旋转的立方体。

使用libgdx的ObjLoaderMesh班,我装从搅拌机出口(与法线和UV coords)使用立方体网格,并试图申请一个纹理,并绘制一个立方体,但似乎只使用一个纹理像素从纹理涵盖整个模型。

我已经双重检查了纹理坐标,甚至用特定的坐标编码了一个平面来测试,同样的事情正在发生。

这是顶点着色器:

attribute vec4 a_position; 
attribute vec3 a_normal; 
attribute vec2 a_texCoord; 

uniform mat4 mvp; 

varying vec3 outNormal; 
varying vec2 outTexcd; 

void main(){ 
    outNormal = a_normal; 
    outTexcd = a_texCoord; 
    gl_Position = mvp * a_position; 
} 

而片段着色器:

precision highp float; 

varying vec3 outNormal; 
varying vec2 outTexcd; 
uniform sampler2D tex; 

void main(){ 
    vec3 norms = outNormal; 
    gl_FragColor = texture2D(tex,outTexcd); 
} 

但我不认为这是问题所在。或者它可以,我不确定。

本来不想堵塞这个问题太多这样的主要来源是在这里(引擎收录):Main Source

如果这是一个不好的问题,请让我知道,这是我的第一个。

回答

1

玩图像我找到了答案。

正在使用32位.png RGBA8888,但没有告诉libgdx。

交换采取图像中RGBA8888:

t = new Texture(Gdx.files.internal("Image/r3.png"),Format.RGBA8888,true);

我感到有些不好意思,对不起所有。

编辑: 奇怪的是,没有透明度,但...