问题标签 [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 回答
1418 浏览

c++ - VTK - 从直线网格进行体积渲染

我正在开发一个使用VTK进行可视化的 C++ 应用程序。我需要读取一个 .vtr 文件(RectilinearGrid)并使用 VTK 体积渲染功能对其进行渲染。我尝试用Paraview
来做到这一点,这非常简单,我只需要应用一个“IsoVolume”过滤器,结果就是我需要的:

使用 Paraview 渲染的 vtkRectilinearGrid 体积

问题是......我如何在 C++ 中做到这一点?IsoVolume 过滤器属于ParaView 家伙制作的 VTK 扩展,所以它不在我的库中,我没有找到一种方法来导入这些类而不会出现链接错误。
有没有更简单的方法?VTK 中的 IsoVolume 过滤器是否有替代方法可以处理直线网格数据?

0 投票
2 回答
1285 浏览

python - 在 vtk python api 中绘制多个平面

我正在尝试使用 python 中的 vtk 渲染一个室内场景,其中包含地板和墙壁以及类似家具的盒子。我想出了如何在 vtk 中绘制一个平面(参见下面的代码)。但我不知道如何绘制多个平面。此外,有没有办法给这架飞机上色?

0 投票
0 回答
107 浏览

image - Matlab中的网格顶点旋转

我在 Matlab 中有一个使用体积 MRI 扫描创建的 3D 矩阵。然后我使用 matlab 工具箱iso2mesh (vol2surf)将此体积转换为表面网格,然后提取此网格的节点/顶点坐标和面。

但是我发现这个网格在错误的坐标系中。我尝试使用imrotate来旋转矩阵以及rot90旋转节点矩阵,但它仅围绕 y 轴旋转图像,而我需要围绕 x 轴和 y 轴旋转。

有人对我可以使用什么功能有任何建议吗?

谢谢!

0 投票
1 回答
2998 浏览

3d - Unity 3D 纹理 - 加载 2D 纹理数组

我在创建 3D 纹理并用图像填充它时遇到问题。我想要做的是用我的图像的 RGBA 值创建一个 Volumetric/3D 纹理,并将其按顺序排列在纹理中。为此,我创建了一个立方体,并应用此着色器和脚本:

脚本

着色器

它似乎加载了一些东西,但我不知道如何使立方体透明并且纹理看起来不正确。它显示了这样的东西。有任何想法吗?提前致谢。 结果

0 投票
2 回答
1160 浏览

c# - 使用光线投射的体积渲染 - 流经体积

我正在开发我的体积渲染应用程序(C# + OpenTK)。体积是使用光线投射渲染的,我在这个网站上找到了很多灵感:http: //graphicsrunner.blogspot.sk/2009/01/volume-rendering-101.html,即使我的应用程序使用 OpenGL,使用 3D 纹理和其他东西的主要思想是相同的。应用程序工作正常,但在我“流入体积”(意味着在边界框内)之后,一切都消失了,我想阻止这种情况。那么有一些简单的方法可以做到这一点吗?--> 我将能够在体积中流动或在体积中移动。

这是片段着色器的代码:

下面的代码基于 https://github.com/toolchainX/Volume_Rendering_Using_GLSL

显示()函数:

问题是(我认为)当我向音量移动时(我不移动相机,只是缩放音量),如果比例因子> 2.7,我在音量中,这意味着“之后渲染最终图片的飞机”,所以什么都看不到。我能想到的解决方案(也许)是这样的:如果我达到比例因子 = 2.7something:

1.) -> 不要缩放音量

2.) -> 以某种方式告诉片段着色器将 EntryPoint 向 RayDirection 移动一定长度(可能基于比例因子)。

现在,我尝试了这个“方法”,它似乎可以工作:

some_value 必须被限制在 [0,1[ 区间(或 [0,1]?) 之间,但也许这并不重要:

所以现在,也许(如果我的解决方案不是那么糟糕),我可以改变我的答案:如何计算 some_value(基于我发送到片段着色器的比例因子)?

(我不是英语母语者,所以如果文本中有一些大错误并且您不理解某些内容,请告诉我,我会尝试修复这些错误)

谢谢。

0 投票
0 回答
241 浏览

directx-11 - Directx11 体积渲染定位

所以我一直在研究使用光线投射的体积渲染,我在这里找到了一个教程博客http://graphicsrunner.blogspot.co.uk/2009/01/volume-rendering-101.html

现在我设法让这个工作我可以渲染图像,但问题是我只能在位置 0,0,0 和 1,1,1 的比例上渲染音量框

显然这是一个问题,因为我想将此方法用于在屏幕上移动的粒子

有没有人有这方面的经验并且能够以任何方式帮助我

谢谢

0 投票
2 回答
835 浏览

c# - 无法加载 vtkOpenGLExtensionManager 扩展 GL_VERSION_1_2

启动我的 C# 体积渲染程序时,我在运行时收到此错误。我看到我不是唯一的,但仍然没有找到任何解决方案。我读到这可能是与 NVidia 相关的错误。但起初,我用 C++ 编写了这个程序,并且在同一台计算机上一切正常(只是操作系统不同)

我什至不知道任何人可能需要什么细节来帮助我,所以如果需要,请询问精确度。

我看到对于某些人来说,这个错误不会阻止他们的程序工作。在我的情况下,渲染都是错误的,所以我真的需要修复它。

我正在使用 Kitware VTK Activiz.NET x86。GC:NVIDIA GeForce GTX 860M

0 投票
1 回答
515 浏览

opengl - TransferFunc 在使用 GLSL 的体积渲染中的作用是什么?

我在使用 GLSL 进行体积渲染时遇到问题。源代码可以在以下链接https://github.com/toolchainX/Volume_Rendering_Using_GLSL中找到。在名为 的片段着色器中raycasting.frag,出现了sampler1D TransferFunc,但我不知道 的实际功能(用法或含义)TransferFunc。以下是 raycasting.frag 的详细信息。

具体代码为:colorSample = texture(TransferFunc, intensity);

我希望你能帮助我解决问题。谢谢!

0 投票
1 回答
988 浏览

opengl - How to use the hardware's 3D texture sampling with a flipbook style volume texture?

A question sort of addressing the problem and another question asking a related question.

I have a 2D texture that has 12x12 slices of a volume layered in a grid like this: enter image description here

What I am doing now is to calculate the offset and sampling based of the 3D coordinate inside the volume using HLSL code myself. I have followed the descriptions found here and here, where the first link also talks about 3D sampling from a 2D sliced texture. I have also heard that modern hardware have the ability to sample 3D textures.

That being said, I have not found any description or example code that samples the 3D texture. What HLSL, or OpenGL, function can I use to sample this flipbook type of texture? If you can, please add a small example snippet with explanations. If you cant, pointing me to one or the documentation would be appreciated. I have found no sampler function where I can provide the number of layers in the U and V directions so I dont see how it can sample without knowing how many slices are per axis.

If I am misunderstanding this completely I would also appreciate being told so.

Thank you for your help.

0 投票
1 回答
665 浏览

c++ - 如何使用 GLSL 在体积渲染中进行混合?

这里介绍了使用 OpenGL 的过时 API 进行体积渲染的方法。但是现在,我想使用 GLSL 完成体积渲染,并且我已经完成了其中的一些部分。我的问题是如何进行混合。在上面的链接中,混合是通过以下代码完成的:

但是如何使用 GLSL 完成混合?

我尝试使用以下等式:

Cs 是源对象的颜色。Cd 是目标对象的颜色。源对象的 alpha 也是如此。我在片段着色器中的代码如下:

在我的项目中,我让 3D Texture 的 r,g,b,a 的值相同。但我无法获得上述链接之一的结果。你能帮我解决使用 GLSL 的混合问题吗?