2

私のコードからシェーダーに 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);
}

どんな反応でも嬉しいです。ありがとう!

4

1 に答える 1