问题标签 [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 投票
1 回答
9434 浏览

unity3d - 编写一个简单的光线投射着色器

我想做一个简单的单通道光线投射着色器。也就是说,我在vertexshader中传递顶点的世界位置,并在片段着色器中开始光线行进到Z轴(我使用正交投影)以获得世界坐标中的样本位置,然后我需要计算世界坐标到模型坐标以获得样本(纹理)在 3d 纹理中的位置,我现在被困在那里。我用opengl在cpp中做了同样的事情,我想在unity3d中尝试它并使用gui的好处。代码在这里,但它不能正常工作。感谢任何人的帮助,并为我糟糕的英语感到抱歉。

psone 更多的问题是#program target 3.0 似乎不允许 for 循环超过 300 次,而在 opengl 中我使用 500 没有问题与同一个视频卡。并且不支持#program target 4.0,unity3d有什么办法改进吗?

0 投票
1 回答
1789 浏览

c# - 如何在 C# 中使用 VTK 进行 3D 体积渲染

我是 C# 领域的新手,使用它通过 VTK TKit 渲染 DICOM 图像。我已经在 Visual Studio 中安装了 vtk,并且正在尝试创建 DICOM 图像的 3D 体积渲染。我想我必须研究如何实现 vtk TKit 的 dll 文件,以便继续创建 3D 体积渲染。所以,问题是:从什么开始?

0 投票
1 回答
1558 浏览

vtk - 使用 VTK 的 3D 形状:

我有一个 3 维数组(名为 V)。它包含体素信息。只要存在体素,V[i][j][k] 的值为 1。只要不存在体素,V[i][j][k] 的值为 0 我想使用 VTK 可视化这个形状。

我写了这段代码:

MyVTKPointPlotter 点绘图仪;

注意:MyVTKPointPlotter 函数均来自此链接:http ://nawigacjarobota.googlecode.com/svn-history/r10/trunk/wykObMAT/myVTKPointPlotter.cpp

这段代码的问题是所有的点都被绘制了,但是渲染速度非常慢。这些点也是二维点,因此它们没有厚度。所以当我旋转我的对象时,我可以看到没有厚度的点(这些点被视为磁盘)。

谁能告诉我如何可视化这个 3D 形状?

0 投票
3 回答
1395 浏览

algorithm - 计算体积射线投射中的梯度

请帮我解决这个关于体积射线投射算法的问题:

在维基百科文章(链接)中,它说“对于每个采样点,计算照明值的梯度。这些表示体积内局部表面的方向。

我的问题是:为什么是照明值的渐变?为什么不透明度值?当然,从“有东西”到“没有东西”的转变更准确地描述为不透明度的变化。

例如,考虑两个体素:[1][2]. 1 为明亮透明,2 为暗且不透明。在我看来,这对应于面向左侧的表面。我错过了什么吗?

0 投票
1 回答
256 浏览

xtk - 当切片 X 法线改变时,音量消失

我想融合第 10 课和第 17 课来可视化音量、规范切片(如第 10 课中所示)和 sliceX 的重新切片(第 17 课)。为此,我修改了第 10 课的代码。

检测到的问题有:

  1. 启用体积渲染时会出现切片 X。
  2. 音量消失了!!!!
  3. 启用体积渲染时,仅在屏幕上显示 X 切片。

在以下情况下会出现问题:

问题出现在体积可视化上。当我们在体积可视化和切片可视化之间切换时,当我们在体积可视化时,我们需要移动体积,然后就会出现错误。

具体错误在volume.js的第1385行(昨天下载的master分支,commit 318986e6b1d4a195a78b87f81a082ca249cbd866)...截图: https ://mega.co.nz/#!d8hVCIhY!TWegqY2pRPcvl09CyMocJYeZu55sDOc_xRCiAed2Jhg

错误:未捕获的类型错误:无法设置未定义 volume.js:1385 的属性“_visible”

我做什么....我用以下方式修改了第 10 课:

1.添加X Slice法线控件。要修改 xNormX、xNormY 和 xNormZ,我们使用第 17 课中的代码:

2. 将 Listen() 添加到 sliceXController 以在我们修改法线时允许自动更新:

3.添加代码用于存储和恢复法线和sliceX索引当用户更改volumeRendering时。


我希望你能帮助我。提前致谢!!!


我在显示错误时分享了一个视频(mp4和webm),第10课的完整源代码已修改(需要存储在“X-master\testing\visualization”中)和错误的屏幕截图

https://mega.co.nz/#F!I8pxgBqa!M0ZCBUTWXlcIDtYqvboo3w


编辑 1,已解决的问题:对于未编译的 XTK,我使用以下代码:

功能代码在这里(demo_ok.js):mega.co.nz/#!R1p0lKAC!C806T7tLTpQTdBN7mJBRS0_ANWa4fqv3wvJtZR_kMg4

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 个切片,我想逐个浏览每个切片。我怎样才能像视频中一样逐个移动切片?

0 投票
1 回答
1457 浏览

google-chrome - Chrome 中的 3JS glTexImage2D 和 glFrameBufferTexture2D 错误

我正在尝试运行我在笔记本电脑上编写的体积渲染程序。我在 Intel i7-3517U 上使用集成图形处理器,我的笔记本电脑运行的是 Kubuntu 12.04。我正在使用 Chrome 浏览器。

打开显示页面后,没有任何输出。相反,我在控制台中有以下错误。我不明白如何修复它们。


三.WebGLRenderer 56

[.WebGLRenderingContext]GL ERROR :GL_INVALID_OPERATION : glTexImage2D: <- 来自上一个 GL 命令的错误--------------------------three.min.js: 385

[.WebGLRenderingContext]GL ERROR :GL_INVALID_OPERATION : glFramebufferTexture2D: <- 来自上一个 GL 命令的错误-------VolumeRenderer.html:1

[.WebGLRenderingContext]GL ERROR :GL_INVALID_OPERATION : glTexImage2D: <- 来自上一个 GL 命令的错误-------------------------VolumeRenderer.html:1

[.WebGLRenderingContext]GL ERROR :GL_INVALID_OPERATION : glFramebufferTexture2D: <- 来自上一个 GL 命令的错误--------VolumeRenderer.html:1


该代码在 Macbook 和朋友的 Ubuntu PC 等设备上产生了正确的结果(没有错误),所以问题肯定是我的机器、Chrome 或两者的配置。我已经在 chrome://flags 中启用了“覆盖软件渲染列表”。我还在http://get.webgl.org/获得了旋转立方体,这表明 WebGL 正在我的浏览器中工作。如果这是显卡(或缺少显卡)问题,有什么方法可以启用必要的功能?

这是包含我的着色器的 HTML 文件,以防万一。还有一个简短的 JavaScript 文件(下方),其中包含一些基本的 3JS 代码。

以下是为我的程序进行设置和后端处理的 JavaScript 文件。

任何帮助将不胜感激!

0 投票
0 回答
299 浏览

matlab - 从 SolidWorks .STL 文件生成视频

我收到了一个 .stl 文件,我想从中生成一个视频。

它是源自 SolidWorks 的对象,并且是一个立方体。

我想制作一个视频,显示这个立方体正在做平移、旋转。

我的具体问题是如何使用 MATLAB 直接从 .stl 文件制作没有图像的视频。

0 投票
1 回答
276 浏览

c++ - 在mac中读取文件

我是 openGL 的新手,正在做一个体积渲染项目。所以项目首先需要从文件中读取帧,然后构建 2D 纹理。在示例代码中,程序员使用该CFile.read()函数来执行此操作。但是,我正在使用我的 MacPro,似乎我们只能在 Windows 下使用 CFile。所以请告诉我如何才能成功读取图像数据。

PS:示例代码是基于 3D 纹理的,而我的代码是基于 2D 纹理的。所以可能会有一些差异。但是,您应该只关注读取图像数据的函数,而不是生成纹理的语句。

示例代码:

我尝试在这里使用 fstream,但它不起作用。我的代码:

0 投票
1 回答
589 浏览

c++ - 基于 2D 纹理的体绘制

我在网上找到了一个很棒的体绘制教程: 体绘制教程 。示例代码是用 Windows 编写的,由于我在 Mac 上工作,因此我尝试根据自己的理解编写自己的代码。现在,我的程序只是在 Z 轴上从 -1 到 1 排列 2D 帧,而不应用 alpha 和混合。所以如果一切顺利,我应该可以看到第一片。但是,当我运行程序时,我得到了一些奇怪的东西。

我的代码:

这是我奇怪的结果: 奇怪的结果

我是 OpenGL 和体渲染的新手,在我看来,我对着色器管理器的使用应该有问题。但我不太确定。谁能告诉我问题出在哪里?非常感谢。