无效的纹理渲染
我有一个模型,我加载AssetManager
,然后渲染它。这是一个g3dj
文件,带有png纹理。所有文件都存在于文件系统中。无效的纹理渲染
就我而言,我从服务器加载模型并将其添加到游戏中。 The texture
存在但未正确呈现。
当我在方法ApplicationListener
之后添加它时,ModelBatch会将我的模型完全呈现为黑色。如果我在create()方法中添加模型,它将正确渲染。
什么问题?我已经尝试重新创建RenderContext
。
一些代码:
@Override public void create() {
//setup camera, environment, create ModelBatch instance
assetManager = new AssetManager();
assetManager.load("models/f_base.g3dj", Model.class);
assetManager.finishLoading();
Model model = assetManager.get("models/f_base.g3dj");
modelInstance = new ModelInstance(model);
}
@Override
public void render() {
if (assetManager.update()) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
cameraController.update();
batch.begin(camera);
batch.render(modelInstance);
batch.end();
}
}
回答:
最后我找到了解决方案。问题是,AssetManager抛出异常带的messge:“打电话的OpenGL ES API没有当前上下文(每线程一旦登录)”如果你强迫AssetManager资源加载:
assetManager.finishLoading();
要asynchronyously使AssetManager加载资源,你需要只需添加资源排队:
assetManager.load(fileHandle.path(), Model.class);
,然后检查是否可以渲染update()方法的模型:
public void render() { if (assetManager.update()) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
cameraController.update();
batch.begin(camera);
//model loaded. you can render it.
batch.end();
}
}
以上是 无效的纹理渲染 的全部内容, 来源链接: utcz.com/qa/263180.html