2012-06-11 22 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);

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

編輯: 奇怪的是,沒有透明度,但...