繁体   English   中英

如何使用 OpenGL 将体积数据渲染成 3D 纹理?

[英]How to render volume data into a 3D texture using OpenGL?

我正在尝试使用 GPU 将一些 3D 形状渲染成 3D 纹理。 我正在使用 Framebuffer 对象来完成此操作。 到目前为止,我发现唯一可行的方法是一次渲染 3D 纹理的一个切片(或层)。

例如,如果我想在 3D 纹理上绘制一个球体,我会在纹理的每一层上绘制适当的球体横截面。

这在小分辨率或少量形状时效果很好,但随着分辨率或复杂性的增加而迅速变慢。

有没有更正确或更快的方法? 我的目标是适度旧的硬件,所以我仅限于 OpenGL 3.x。 具体来说,我不能使用这里描述的一些技术

虽然我没有亲自这样做过,但我知道有一个针对 directX 的解决方案的示例。 它可以移植到 OpenGL: 使用 GPU 生成复杂的程序地形,请参阅第 1.3.2 节:生成密度值。

简而言之,进行实例绘制,并将每个实例指向不同的纹理层。

您还可以复制所有三角形,并使用几何着色器将它们发送到所有相关切片。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM