透明物体荫试图渲染使用OpenGL的一些3D对象。要求是我需要隐藏所有透明对象,它们是在另一个透明对象后面的z。所有三角形都在单个三角形缓冲区中,并且会立即绘制。请抛出一些光。呈现在OpenGL
回答
您可以通过排序场景,这是你必须做的反正拿到透明度正常工作是什么做到这一点。
这里就是你需要做的:
- 启用Z缓冲区写入并测试
- 渲染所有不透明的物体
- 渲染的所有透明物体从前向后。 z缓冲区将防止透明对象显示在其他透明对象后面。 ()
感谢您的回复。是的,我可以通过排序透明三角形(从前到后)来实现此目的。但透明物体的所有三角形都是一次绘制的。当我旋转场景时,效果应该保留。不幸的是,我的任务中不允许排序,因为我正在处理场景中的三十万个三角形。你认为我可以使用一些混合函数的combimation来达到这个目的。 – user942502
我不确定这是可能的,至少在OpenGL 1.1的功能。你可以分成2个缓冲区吗? – geofftnz
不,我不能分裂,2个缓冲区,因为我没有分类,其中三角形形状的花瓶和三角形形态门在我的三角缓冲。 – user942502
尝试使用glDepthMask:
//Render all opaque objects
glDepthMask(false); //disable z-testing
//Render all transparent objects*
glDepthMask(true); //enable z-testing (for the next frame)
*技术上讲,你应该渲染从后到前的透明物体,但如果你不这样做很少是明显的。
- 1. 呈现在OpenGL
- 2. OpenGL上的图标呈现
- 3. 呈现在OpenGL中使用CAOpenGLLayer
- 4. 在Qt中使用OpenGL呈现QGraphicsScene
- 5. OpenGL相当于DirectX呈现器
- 6. OpenGL中的快速文本呈现
- 7. 使用GLKit的按需OpenGL ES呈现
- 8. OpenGL不呈现用户点击的点
- 9. OpenGL函数来呈现RGBA值
- 10. DDS纹理透明呈现黑色Opengl
- 11. OpenGL Framebuffer呈现纹理不工作
- 12. VTK - 使用OpenGL ES 2.0呈现工件
- 13. openGL/GLSL:开花/模糊,呈现给FBO
- 14. OpenGL/OpenTK:显示FBO在OpenGL控件中的后台线程上呈现
- 15. 我怎么能呈现在用户的OpenGL ES文本得分
- 16. 的Android的OpenGL只呈现在屏幕的一半
- 17. 安卓OpenGL ES 3D立方体在横向模式下呈现
- 18. 呈现在OpenGL obj文件结束了丢失的顶点
- 19. 如何在Android NDK上使用OpenGL ES 2.0呈现OpenCV Mat?
- 20. 呈现在Java中的OpenGL彩虹魔影并没有融入
- 21. 可怜的图像质量呈现UIImage与opengl在ipad上
- 22. Opengl 3D立方体将无法在Windows上正确呈现
- 23. 在OpenGL上下文中呈现Win32小部件
- 24. 呈现在Xamarin.Forms
- 25. 呈现未在JSF
- 26. gridview呈现在div
- 27. 呈现JavaScript在XSL
- 28. 呈现在部分
- 29. Python的OpenGL模块 - 无法呈现基本的三角形
- 30. 呈现Tesselated对象(OpenGL)的最佳方式
你能对你的对象是如何透明意见和OpenGL的是什么版本的()你正在处理? – masebase
我正在处理opengl 1.1 ..例如有一个玻璃花瓶里面有玻璃门的房间。用户应该只能通过玻璃门看到房间内的不透明物体,如木制家具,而不能看到房间内的玻璃花瓶。 – user942502