当前位置: 首页 > 知识库问答 >
问题:

如何确定glTexImage3D的维度参数?

锺离慈
2023-03-14

我正在做一个图形项目,涉及使用3D纹理对以直线网格形式存储的数据进行一些体绘制,我对glTexImage3D的宽度、高度和深度参数有点困惑。对于一维纹理,我知道你可以使用这样的东西:

GLTEXAGE1D(GL_纹理_1D,0,GL_RGB,256,0,GL_RGB,GL_无符号_字节,数据);

其中宽度是每个颜色流的256个可能值。在这里,我仍然使用无符号字节形式的颜色(这里纹理的主要目的仍然是插值网格中点的颜色以及透明度),所以其中一个参数仍然是256对我来说是有意义的。这是一个64 X 64 X 64网格,所以其中一个参数(可能是深度?)将是64是有意义的,但我不确定第三个,或者即使我在那里的轨道是正确的。有人能告诉我如何正确使用这三个参数吗?我看了这两个讨论,但还是困惑地离开了:

关于glTexImage3D

OPENGL如何使用glTexImage3D函数

共有1个答案

杜俊逸
2023-03-14

看来你误解了1D的情况。在您的示例中,256是1D纹理的大小,即纹理的数量。

每个颜色组件的可能值的数量由内部格式给出,这是第三个参数GL_RGB实际上,颜色深度应由实现决定。它支持与旧代码向后兼容。如果您为内部格式指定一种大小合适的格式,比如GL_RGB8,它要求每个颜色分量有8位,对应于R、G和B的256个可能值,则会更清晰。

对于三维情况,如果需要64 x 64 x 64网格,只需为3个维度(宽度、高度和深度)中的每个维度指定64即可。对于这种大小,使用RGBA和8位的颜色深度,调用是:

glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA8, 64, 64, 64, 0,
             GL_RGBA, GL_UNSIGNED_BYTE, data);
 类似资料:
  • 如果我有一个图像是WxHx3(RGB),我该如何决定制作多大的过滤器遮罩?它是尺寸(W和H)的函数还是其他函数?第二个、第三个……的维度是怎样的。。。过滤器是否与第一个过滤器的尺寸进行比较?(如有任何具体指示,将不胜感激。) 我看到了以下内容,但它们没有回答这个问题。 卷积神经网络的维数 卷积神经网络:每个过滤器将覆盖多少像素? 如何确定用于图像分类的卷积神经网络的参数?

  • 问题内容: 可以固定桌子上一行的高度(tr)吗? 当我缩小浏览器窗口时,会出现问题,一些行开始播放,而我无法确定行的高度。 我尝试了几种方法: 我正在使用IE7 样式 HTML代码。 问题答案: 当涉及固定高度和不换行文本时,表格很难(至少在IE中如此)。我认为您会发现唯一的解决方案是将文本放入元素中,如下所示: 这样,的高度就是包含单元格的高度,并且文本无法增长,无论窗口大小如何,单元格/行都必

  • 我看到了带有各种参数的Spring MVC控制器处理程序方法。例如: null 所以, 什么决定参数列表? 为什么Spring controller处理程序方法没有固定签名? Spring如何处理这些变化的参数列表? 是否可以输入任意类型的参数?

  • 问题内容: 我试图确定双精度的最大精度是多少。在此链接的可接受答案的注释中,Java中的double保持精度 @PeterLawrey将max precision设置为15。 您如何确定呢? 问题答案: @PeterLawrey表示最大精度为15。 实际上,这根本不是他所说的。他说的是: 双精度有15个小数位 他错了。它们的精度为15个十进制 数字 。 任何数字中的小数位数由其对数10的对数给出。

  • 我试图确定double的最大精度是多少。在这个链接中接受的答案的注释中,Java中的Retain precision with double@PeterLawrey声明max precision In 15。 你如何确定这一点?

  • 我如何才能使它的应用程序是优化的所有屏幕?