LibGdx GLES2.0 cube texel растяжение
Я программирую OpenGL на Windows/SDL в течение нескольких лет и могу сделать довольно много сложных вещей с ним.
Я переключился на Android и libgdx и в последние несколько дней пытался собрать простую демонстрацию, просто вращающийся куб.
Использование libgdx ObjLoader
а также Mesh
классы, я загрузил сетку куба, экспортированную из blender(с нормалями и координатами uv), и попытался применить текстуру, и он рисует куб, но, кажется, использует только один тексель из текстуры, чтобы покрыть всю модель.
Я дважды проверил координаты текстуры и даже вручную закодировал плоскость с определенными координатами для тестирования, и происходит то же самое.
Это вершинный шейдер:
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);
}
Но я не думаю, что в этом проблема. Или, может быть, я не уверен.
Я не хотел засорять этот вопрос слишком сильно, поэтому основной источник здесь (pastebin): Основной источник
Если это плохой вопрос, пожалуйста, дайте мне знать, это мой первый вопрос.
1 ответ
Играя с изображениями, я нашел ответ.
Использовал 32-битный.png RGBA8888, но не сказал libgdx об этом.
Переключился на изображение как RGBA8888:
t = new Texture(Gdx.files.internal("Image/r3.png"),Format.RGBA8888,true);
Я чувствую себя немного застенчивым, извините всех.
РЕДАКТИРОВАТЬ: Странно, но нет прозрачности...