问题标签 [3d-texture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1227 浏览

opengl-es - GLSL:用 2D 纹理模拟 3D 纹理

我想出了一些代码,使用包含瓷砖的大 2D 纹理来模拟 3D 纹理查找。3D贴图为128x128x64,大2D贴图为1024x1024,分为64个128x128的贴图。

片段着色器中的查找代码如下所示:

平铺逻辑似乎工作正常,这段代码只有一个问题。它看起来像这样:

它看起来像什么

体素层之间有奇怪的 1 到 2 像素宽的条纹。d更改时,条纹仅出现在边界处。
我已经为此工作了 2 天,但仍然不知道这里发生了什么。

0 投票
2 回答
2525 浏览

opengl - 将 2d 图像堆栈转换为 3d 图像,体绘制

我想对 CT 数据进行基于纹理的体积渲染。我有一堆 2d CT 图像,我想在 opengl 中用作 3d 纹理(真的是 jogl)。我必须以在查看参数更改时发生变化的多边形代理几何体的方式进行操作。如何将 2d 图像转换为一个 3d 纹理?我还没有找到任何关于 opengl 如何期望 3d 图像被格式化的信息。我看到了这个:https ://stackoverflow.com/questions/13509191/how-to-convert-2d-image-into-3d-image ,但我不一样。

此外,我仍然对这种体积渲染技术感到困惑。是否可以在 3d 纹理中获取 3d 位置并将其映射到四边形的 2d 角?我找到了这个例子:http ://www.felixgers.de/teaching/jogl/texture3D.html但我不知道这是否意味着你必须使用 3d 顶点。有谁知道更多带有明确示例的来源?

0 投票
2 回答
1594 浏览

opengl - 立方体上的 OpenGL 3D 纹理

我有一个简单的 3d 立方体(所有边大小相同)和 OpenGL 中的 3D 纹理。我想将 3D 纹理映射到立方体。

结果应该是一个立方体,它一直被着色,这样立方体内的每个点都从纹理内的相应点获得颜色。这至少是我对 3D 纹理的解释。

这该怎么做?我想用GL_QUADS(6个四边形)制作一个立方体并为六个边中的每一边指定一个纹理坐标是行不通的?

我假设我必须制作一个立方体,同时以正确的方式制作指定 glTexCoord 的立方体。

0 投票
0 回答
291 浏览

opengl - 在 pyglet 中使用大型 3D 纹理

我正在尝试使用预先计算的速度矢量场来做一些 GLSL 粒子的东西。这些向量场存储为 ~13 个 1024x170 浮点纹理,每个纹理对应于 z 平面中的不同“切片”。理想情况下,我想将它们加载为尺寸为 1024x170x13 的 3D 纹理,以允许在我的着色器中自动插值,但我的本地实现给出 256 的 GL_MAX_3D_TEXTURE_SIZE,这意味着(如果我理解正确的话)我在每个维度中的最大尺寸是256,所以这行不通。

因此,我的下一步是尝试使用 GL_TEXTURE_2D_ARRAY,并在着色器中的平面之间进行插值。不幸的是,pyglet 似乎没有公开这个功能(??):

我的下一步是分别绑定所有纹理,将它们全部独立地传递给着色器,然后在那里进行计算。但是……我在这里叫错树了吗?当然,必须有更好的方法来做到这一点。

0 投票
2 回答
1421 浏览

python - 使用 pycollada 对 3d 块进行纹理处理

我正在开发一个 python 脚本,它将能够生成 .DAE (COLLADA) 文件以及相关的 KML 文件,用于开发建筑物的 3D 模型。我有建筑物的街道图像。我所说的街道图像是指每座建筑物的正面图像。我需要将这些图像作为纹理放在它们各自的建筑模型上。我找不到合适的方法来使用 python 做到这一点。到现在为止,我已经成功地生成了可以放置在代表建筑物的地图上的空白立方体或长方体。我需要将图像作为纹理放在这些模型的前平面上,并将图像作为输入。请帮忙。

0 投票
1 回答
3924 浏览

opengl - opengl中的完美(3D)纹理映射

我正在尝试在 opengl 中创建一个简单的 3D 数组可视化。3D 数组包含颜色值。为了实现这一点,我可以画很多立方体,给它们纹理坐标以指向正确的纹素。嗯,我试过了,它有效。但是我需要更多,实现我想要的唯一方法是,如果我只是在平面打开时在另一个轴方向上的每个网格上绘制完整的 2D 平面,并且这样做是 6 个方向。例如:我在 Z 坐标 -15 到 +15 上从 -15 到 +15 绘制 XY 平面,并且也为后 XY 平面、YZ 平面、后 YZ 平面,...这样,我可以在每个角落放置 3D 纹理坐标,其余的应该由插值完成。

我将数组坐标作为纹理坐标,介于 0 到 32 之间,原因是,在着色器中,我可以将纹理坐标设置为底,然后将其除以 32 以获得网格上每个像素的精确纹素.

但是唉......像素着色器一直在怀疑选择,一个像素映射到与下一个像素不同的纹素,而下一个像素再次正确映射。

我曾经通过向浮点数添加 0.5 或 0.35 来解决这类问题,以确保浮点数在所有硬件平台上都正确舍入,但对我来说这仍然是一个 hack。此外,它不适用于 3D 纹理。

谁能告诉我如何处理这个?

0 投票
1 回答
5103 浏览

opengl - OpenGL - 如何将对象渲染为 3D 纹理作为体积广告牌

我正在尝试按照此处和此处的 视频所述在OpenGL 3.3+中实现体积广告牌。我现在面临的问题(非常基本)是:如何有效地将 3D 对象渲染为 3D 纹理(如论文中所述) ?假设对象可以存储在创建帧缓冲区的 tex中(因为据说它应该在每个轴上渲染两次:)将是疯狂的,并且据我所知,纹理单元太少而无法处理那么多纹理(更不用说所需的时间)。256x256x128256*256*128*2+X,-X,+Y,-Y,+Z,-Z

有谁知道如何处理这样的事情?

0 投票
1 回答
3256 浏览

hlsl - 在顶点着色器中指定 3D 渲染目标的目标层?[HLSL]

在 HLSL/Directx11 中工作时,我看到有两种绑定 3D 渲染目标的方法:绑定整个目标或在指定图层时绑定它。

如果绑定整个目标,如何在 HLSL 代码中指定应用输出颜色的层?

我怀疑这需要几何着色器……对吗?

是否有任何其他方法可以在顶点着色器或其他地方完成此操作?

0 投票
1 回答
509 浏览

cuda - 3D 纹理对象

目前我有一个使用以下纹理参考的内核(类型为 3d 纹理unsigned char):

但是,我需要能够交换纹理的类型。我已经对内核进行了模板化,因此它能够处理不同的类型。但是我无法在保持旧状态的同时交换纹理的类型或纹理本身(即能够同时处理unsigned charunsigned short

这就是我想到使用纹理对象 API 的原因。但是,此 API 似乎不支持 3d 纹理。可用的资源类型是LinearArray和。它们似乎都不是为 3d 纹理设计的。纹理对象 API 真的根本不支持 3d 纹理吗?MipMappedArrayPitch2D

有什么解决方法吗?我可以使用 2d 纹理,其中切片只是堆叠在一起。但是,512³ 条目体积(=512*512=262,144)的必要高度超过了最大 texture2d 高度(我的设备上为 65,536)。因此,我必须将切片彼此相邻和彼此叠加,这将导致我想避免的非常脏的地址计算。

另一种方法是复制内核代码并交换纹理参考。但这不是一个非常干净的解决方案。可以以某种方式对引用本身进行模板化吗?

0 投票
1 回答
1105 浏览

opengl - OpenGL - 3D 纹理 - 概念问题

我有一些关于 OpenGL 中的 3D 纹理和纹理映射的概念性问题,我正试图解决这些问题。问题与代码的实现有关,尤其是本教程中的 3D 纹理:http: //www.codeproject.com/Articles/352270/Getting-started-with-Volume-Rendering? fid=1807805&df=90&mpp=25&noise=3&prof =False&sort=位置&view=正常&spc=放松&select=4729498&fr=1#xx4738025xx

教程中使用的数据集的维度是256 x 256 x 109 (109 2D slices)

1.

该代码提供了一种通过将所有 2D 切片加载到单个数据数组中来将 2D 图像映射到 3D 纹理的方法。然后,它继续将数据映射到 3D 纹理,方法是fIndx-1.0f到 以+1.0f为步长递增0.003f。为什么增量是0.003f? 大约有 666.667 个增量,大约是 2D 切片总数(109 个切片)的 6.11 倍。

2.

我试图弄清楚如何使用 3D 纹理在渲染体积中移动。我正在尝试做的是类似于这个网站上的视频:http: //cvlab.epfl.ch/research/medical/em/synapses

当然,该网站中的数据必须是映射到 2D 纹理的 2D 图像。所以,让卷中的每一层都消失显然很容易(但是,我不知道该怎么做!)。我的数据看起来像这样:http ://ctrlv.in/292069

编辑

我的数据集中有 256 个切片,我想逐个浏览每个切片。我怎样才能像视频中一样逐个移动切片?