【发布时间】:2017-10-30 10:17:22
【问题描述】:
我已经搜索了多个论坛,但仍然找不到。这是图像: Sample
我添加了BlendingAttribute,但一些(不是全部)纹理仍然渲染不正确。那些尖头的脸应该是透明的。这是我的sn-p:
private void doneLoading() {
terrain = assets.get("xx.g3db", Model.class);
terrainInstance = new ModelInstance(terrain);
for(n = 2; n < terrainInstance.materials.size; n++){
terrainInstance.materials.get(n).set(new BlendingAttribute(GL30.GL_SRC_ALPHA, GL30.GL_ONE_MINUS_SRC_ALPHA)); // this should working for all faces
}
instances.add(terrainInstance);
loading = false;
}
@Override
public void render() {
if (loading && assets.update()) {
doneLoading();
}
personcam.update(Gdx.graphics.getDeltaTime());
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glTexParameteri(GL30.GL_TEXTURE_2D, GL30.GL_TEXTURE_MAG_FILTER, GL30.GL_NEAREST);
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT | GL30.GL_DEPTH_BUFFER_BIT);
modelBatch.begin(cam);
modelBatch.render(instances, environment);
modelBatch.end();
}
我检查了我的纹理文件,它们都很好。我的 FBX 文件(我正在使用 SketchUp 8)也很好。为什么有些面不能正确渲染透明度?这是bug吗?
【问题讨论】:
-
Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT | GL30.GL_DEPTH_BUFFER_BIT);行是否正确?一个常见的错误是省略了第二个管道符号。除此之外,我不确定问题是什么。 -
是的,没错