问题标签 [volume-rendering]

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 投票
0 回答
106 浏览

three.js - 从简单的射线投射转换为 X 射线渲染

我指的是Lebarba的体积渲染代码。我想做的是 X 射线渲染而不是射线投射。

这是使用代码进行 Ray 投射的结果

光线投射

在此处输入图像描述

这是我对 X 射线模式渲染以及生成的图像进行更改的代码。 在此处输入图像描述

X 射线模式

我不确定我在做什么是对还是错,因为我是这个领域的新手。如果有人可以指出错误(如果有),那将是非常有帮助的。

0 投票
0 回答
288 浏览

python - 使用网格的低数据在 vtk(python) 中进行体积渲染

我想使用网格和标量值的低数据在 vtk(python) 中进行体积渲染。

我拥有的数据如下

数据被构建为 5 列。1,2,3 列是网格的 x,y,z 坐标。

4 列是复数的实部,5 列是复数的虚部。我使用 2 列(4,5 列)作为标量值来制作绝对值。

因此,我尝试像下面那样进行体积渲染。没有错误,但是在vtk窗口中什么也没有出现
在我看来,UnStructuredGrid中似乎有问题,vtkDataSetTriangleFilter

所以,如果你让我知道这个问题的解决方案,我真的很感激 :) 我想要做什么,,

在此处输入图像描述

0 投票
1 回答
291 浏览

javascript - 如何使用 Papaya 在 JavaScript 中使用多个 DICOM 文件创建表面文件?

我正在尝试使用其中一个开源项目进行体积渲染。我想从我的 DICOM 图像创建一个表面文件。我知道这可以通过使用 mango viewer exe 来实现;但我想用javascript来做。请帮我。

0 投票
0 回答
123 浏览

matlab - Matlab中3D图像梯度的体积重建

对于 2D 图像,Gx 和 Gy 分别给出了垂直和水平边缘信息。梯度方向向量的角度可以通过tan(Gy/Gx)的倒数计算,边缘方向将垂直于梯度方向向量。

我有 3D Z 堆叠图像数据集,因此每个像素都将由 (x,y,z) 坐标和相应的强度值表示。我已使用3D 图像渐变链接作为初始参考。

(1) 如果我想仅使用 3D 图像梯度大小和方向信息导出整个体积/线框模型怎么办?

(2) 我是否需要单独的 X、Y 和 Z 堆叠图像数据才能从中生成整个体积/线框模型?

在 matlab 中,我还可以使用isosurface 命令仅使用 2D z 堆叠蒙版开发整个体积。在这里,我正在探索生成线框体积/3D 模型的其他可能性。

感谢你在期待。

0 投票
0 回答
390 浏览

opengl - 何时在体数据中应用 phong 着色?

我有一个可以渲染的体积数据集(这是作业的一部分)我已经使用从前到后的合成实现了光线投射,我想集成 phong-shading。为了计算梯度,我使用前向差分法。

我知道我可以用前向差分法估计体素纹理坐标的梯度。

我的问题是,由于 phong-shading 返回一种颜色,而从前到后的光线投射也返回一种颜色,我什么时候将阴影应用于光线函数的颜色?在我为特定光线完成新颜色之后,或者在计算光线命中的颜色时?也许这段代码有助于理解我的问题。我已经添加了关于我认为应该在哪里实现 phong 着色的评论。

0 投票
1 回答
251 浏览

matlab - 如何可视化 3D 体积?

我曾在 Matlab 中尝试过以下演示代码。我正在使用 Matlab 2018b

但我得到一个黑屏。imshow() 工作正常。它与opengl有关吗?我试过opengl软件和opengl硬件

这是matlab 2018b中的错误吗?还是和我的系统配置有关

0 投票
1 回答
696 浏览

opengl - OpenGL如何从平截头体对齐向量计算世界空间坐标?

我是一名图形编程初学者,在自己的引擎上工作,并尝试实现平截头体对齐的体积渲染。

这个想法是将多个平面渲染为横跨视锥的垂直切片,然后将这些平面的世界坐标用于程序体积。

将切片渲染为 3d 模型并使用顶点位置作为世界空间坐标可以正常工作:

结果:

然而,在截锥空间中渲染切片并尝试对世界空间坐标进行逆向工程并没有给出预期的结果。我得到的最接近的是:

结果:

我的猜测是,标准投影矩阵以某种方式摆脱了一些关键的深度信息,但除此之外,我不知道我做错了什么以及如何解决它。

0 投票
0 回答
106 浏览

opentk - 为什么基于 OpenTK(C#) 的纹理渲染什么也没显示

我的项目旨在基于 OpenTK(版本 3.0.1.0,C#)渲染到纹理。大多数代码都是从使用 C++的本教程翻译而来的。

我只想在默认渲染帧(pass#1)中使用纹理(int backfaceTex)。纹理 backfaceTex 将渲染结果存储在离线帧缓冲区中。但是当调用渲染缓冲区(pass#2)时,我现在只能看到一个黑色窗口。backfaceTex 的所有元素似乎都为零。为什么?屏幕上应该有一个彩色立方体。 正确的图像

代码简短而简单,所有相关的数据/着色器也附上了重现这个问题。私有函数 Display() 是真正的渲染部分。(2-pass渲染) 渲染管道

我想知道我的实现的哪一部分是错误的?欢迎任何想法。

0 投票
1 回答
1175 浏览

opengl - GPU 射线投射(单程),在球坐标中具有 3d 纹理

我正在实现一种体积渲染算法“GPU 光线投射单通道”。为此,我使用了强度值的浮点数组作为 3d 纹理(这个 3d 纹理描述了球坐标中的常规 3d 网格)。

这里有数组值的例子:

(这里完整的数据:[链接](https://drive.google.com/file/d/1lbXzRucUseF-ITzFgxqeLTd0WglJJOoz/view?usp=sharing))

球形网格的尺寸为 (r,theta,phi)=(384,15,768),这是加载纹理的输入格式:

这是我的可视化图像:

图片

问题是可视化应该是一个磁盘,或者至少是一个类似的形式。

我认为问题是我没有正确指定纹理的坐标(在球坐标中)。

这是顶点着色器代码:

这是片段着色器代码:

我如何指定坐标,以便将 3d 纹理中的信息以球形坐标可视化?

更新:

顶点着色器:

和片段着色器:

这些是生成边界立方体的点:

这是它生成的可视化:

伊姆古尔 图像1

0 投票
1 回答
692 浏览

c# - 如何使用 Helix.SharpDX 体积渲染可视化 3D 标量场?

我的任务是使用 Helix Toolkit 可视化 3D 标量场。输入数组包含没有限制的双精度值,但通常介于 [-50000, +50000] 之间。标量值影响立方体的颜色:最小值为蓝色,0 - 白色,最大值 - 红色。所有其他颜色值都对应于该值进行插值。

现在我正在尝试了解颜色传输图在 HelixToolkit.Wpf.SharpDX 中的工作原理。为此,我创建了一个简单的 2x2x1 标量字段。

主窗口.xaml

MainWindowViewModel.cs

我期待有 4 个不同颜色的不同立方体,例如(由于插值和采样,立方体之间可能有渐变): 期望的

但我不断得到这种奇怪的三角形混色: 实际的

颜色转移图阵列究竟是如何工作的?如何使用 HelixToolkit.SharpDX 的体积渲染来获得所需的立方体效果?