我无法将 sampler2d 制服从我的代码传递到着色器。我的着色器中有这一行:
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();
我的代码中有着色器类,其中有一个渲染方法:
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);
}
我会很高兴得到任何回应。谢谢!