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);

Я чувствую себя немного застенчивым, извините всех.

РЕДАКТИРОВАТЬ: Странно, но нет прозрачности...

Другие вопросы по тегам