私は数年間、Windows/SDL で OpenGL をプログラミングしており、かなり多くの高度なことを行うことができます。
私は Android と libgdx に切り替え、ここ数日、回転する立方体だけの簡単なデモをまとめようとしました。
libgdxObjLoader
とMesh
クラスを使用して、ブレンダーからエクスポートされたキューブ メッシュ (法線と UV 座標を含む) をロードし、テクスチャを適用しようとしました。キューブを描画しますが、テクスチャから 1 つのテクセルのみを使用してモデル全体をカバーしているようです。
テクスチャ座標を再確認し、特定の座標を使用して平面を手動でコーディングしてテストしましたが、同じことが起こっています。
これが頂点シェーダーです。
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): Main Source
これが悪い質問である場合は、お知らせください。これは私の最初の質問です。