需要用另一个模型掩盖或裁剪Libgdx中3D模型的一部分。假设附加的图片,有两个箱子,我需要裁剪绿盒与即时红色(如果摄像机视图改变特定部分也应该被裁剪),结果应该像其他image.Any帮助或建议,将不胜感激。用Libgdx中的另一个模型掩盖模型的一部分
0
A
回答
0
我应用了深度缓冲区来掩盖我的3D模型,它工作正常。这是我的代码片段。
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearDepthf(1f);
Gdx.gl.glClear(GL20.GL_DEPTH_BUFFER_BIT);
Gdx.gl.glDepthFunc(GL20.GL_LESS);
Gdx.gl.glEnable(GL20.GL_DEPTH_TEST);
Gdx.gl.glDepthMask(true);
Gdx.gl.glColorMask(false, false, false, false);
//the mask model
modelBatch.begin(cam);
modelBatch.render(redBox);
modelBatch.end();
// the model which is masked
modelBatch.begin(cam);
Gdx.gl.glColorMask(true, true, true, true);
Gdx.gl.glEnable(GL20.GL_DEPTH_TEST);
Gdx.gl.glDepthFunc(GL20.GL_EQUAL);
modelBatch.render(greenBox);
modelBatch.end();
特别感谢Matt DesLauriers。
0
我不知道libgdx但使用模板缓存(如果支持的话)可能是一个帮助。它是允许您用整数值标记特定像素的附加缓冲区,然后在主渲染过程中,您可以设置一些模板测试以决定丢弃哪些像素。
简而言之:
- 清洁模板缓冲区0
- 只在模板缓冲区绘制红色对象,具有值例如1
- 设置模板测试,以“零”
- 绘制绿色物体正常
这样你画绿箱子像往常一样,但忽略它的模板像素!= 0,这意味着由所有遮挡红色框。
+0
谢谢科伦达!我查库,但它似乎模板缓存和可用于二维空间的深度缓冲。 –
相关问题
- 1. 调用另一个模型调用的部分模型方法
- 2. Django,设计与另一个模型部分链接的模型
- 3. 将模型放在另一个模型中时缺少部分
- 4. Rails 4 - 从一个模型调用另一个模型的值
- 5. Django调用模型中的另一个模型的upload_to
- 6. 连接一个模型与另一个模型的ForeignKey的
- 7. Rails模型属于任一模型或另一个模型
- 8. 模型中的一列到另一个模型
- 9. Backbone.js - 与另一个视图共享模型的一部分
- 10. RDBMS模型'包',也可以是另一个'包'的一部分
- 11. 从另一个模型导出模型
- 12. 只有当它是另一个模型的一部分时,才将模型字段指定给模型
- 13. 使用模型中的named_scopes与另一个模型
- 14. 用另一个模型值替换模型中的字符串
- 15. Ractive:从另一个模型执行一个模型的方法
- 16. 如何在另一个模型中有一个模型列表?
- 17. 在Django的另一个模型中对同一模型的多个引用
- 18. 将创建的值从一个模型分配给另一个模型
- 19. Rails 3 - 在另一个模型中的多个模型形式
- 20. 将两个相同类型的模型分配给另一个模型导轨
- 21. Django模型 - 引用更多的另一个模型的实例
- 22. 从extjs中的另一个模型文件中加载模型
- 23. 如何在另一个模型类中调用一个模型类的功能?
- 24. 在django模型中使用类作为另一个类的一部分
- 25. 路由的模型,该模型具有从另一个模块
- 26. 如何编写引用另一个模型的模型方法?
- 27. 使用另一个模型填充模型数据的功能
- 28. 用另一个模型的ID更新模型
- 29. MVC - 另一个模型视图中的模型视图
- 30. Django如何获取模型中的值从另一个模型
你忘了问一个问题,并提供你已经尝试过的东西。看看:http://stackoverflow.com/help/how-to-ask。看看你的图片,如果你改变红色框的颜色为黑色,它应该工作得很好。 – Xoppa
谢谢Xoppa,但我已经问过如何使用另一个模型来裁剪模型的一部分。将红框改为黑色是个好主意,但我的问题并不那么简单!我将使增强现实应用的背景色变得透明;所以红色的盒子也应该是透明的。 –