私のコードからシェーダーに sampler2d uniform を渡すのに問題があります。シェーダーに次の行があります。
uniform sampler2D u_texture;
コードでは、ブレンダーで作成された g3db モデルを使用しています (テクスチャ付き):
AssetManager assets = new AssetManager();
assets.load(data+"/earth.g3db", Model.class);
assets.finishLoading();
Model earthModel = assets.get(data+"/earth.g3db", Model.class);
earthPlanet = new ModelInstance(earthModel,0,-1,0);
これを modelBatch を使用してレンダリングします。
modelBatch.begin(cam);
modelBatch.render(earthPlanet, shader);
modelBatch.end();
コードにシェーダー クラスがあり、次の中に render メソッドがあります。
public void render(Renderable renderable) {
program.setUniformMatrix(u_worldTrans, renderable.worldTransform);
//how to pass texture??
//program.setUniformf(sampler2D, ????);
renderable.mesh.render(program,
renderable.primitiveType,
renderable.meshPartOffset,
renderable.meshPartSize);
}
どんな反応でも嬉しいです。ありがとう!