首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GLSL -对3d纹理的体积进行采样

GLSL -对3d纹理的体积进行采样
EN

Stack Overflow用户
提问于 2012-09-27 13:58:53
回答 1查看 1.5K关注 0票数 0

我最近正在使用OpenGL中的3d纹理。我意识到当你使用3d纹理时,你必须经常使用texture3d()。这几乎是一个gpu杀手。glsl中有没有什么函数可以让我对3d纹理的体积进行采样?因此,我可以这样做,而不是调用texture3D() 32768次:

代码语言:javascript
复制
texture3DVolume(3dtexture, vec3(0.5, 0.5, 0.5), vec3(0.2, 0.2, 0.2));

其取样率为0.5,0.5,体积为0.2,0.2,0.2。

EN

回答 1

Stack Overflow用户

发布于 2012-09-27 16:09:47

否:正如您自己注意到的,这将涉及到对所有音量进行采样。

在2D中,您可以使用求和面积表。它使你能够计算一个只有4个样本的“盒子”中矩阵的所有值的总和;我猜这个概念很容易扩展到3D。

请注意,您将有一个相当昂贵的预处理步骤;并且您只能得到平均值和和,而不能有其他花哨的东西,如几何平均值或中值。

以下是AMD对不同用例的一些解释:http://developer.amd.com/media/gpu_assets/GDC2005_SATEnvironmentReflections.pdf

我猜您也可以使用mipmap:要采样2x2x2卷,请采样第一个mipmap...但是,对于任意的样本位置,这不会开箱即用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12614961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档