Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL中的三维纹理采样_Opengl_3d_Glsl_Rendering_Volume Rendering - Fatal编程技术网

OpenGL中的三维纹理采样

OpenGL中的三维纹理采样,opengl,3d,glsl,rendering,volume-rendering,Opengl,3d,Glsl,Rendering,Volume Rendering,我目前正在尝试使用类似于glTexImage3D的东西学习3D纹理上的光线投射。我从一开始就跟在后面。我的最终目标是制作一个可以像这样工作的程序: 我的理解是,这是使用光线投射方法渲染的,模型作为3d纹理导入。光线投射和纹理采样任务在片段着色器中执行。我希望我能把这个计划作为一种实践来复制。你能回答我的问题吗 导入3D纹理时应使用什么文件格式 我应该使用哪些glsl函数来检测光线和纹理之间的距离 3D纹理采样和体渲染的区别是什么 有什么在线教程可供我学习吗 如何生成自己的3D纹理?(是否可以使

我目前正在尝试使用类似于
glTexImage3D
的东西学习3D纹理上的光线投射。我从一开始就跟在后面。我的最终目标是制作一个可以像这样工作的程序:

我的理解是,这是使用光线投射方法渲染的,模型作为3d纹理导入。光线投射和纹理采样任务在片段着色器中执行。我希望我能把这个计划作为一种实践来复制。你能回答我的问题吗

  • 导入3D纹理时应使用什么文件格式
  • 我应该使用哪些glsl函数来检测光线和纹理之间的距离
  • 3D纹理采样和体渲染的区别是什么
  • 有什么在线教程可供我学习吗
  • 如何生成自己的3D纹理?(是否可以使用搅拌器制作一个?)
  • 一,。导入3D纹理时应使用什么文件格式

    没关系,OpenGL不处理文件格式

    二,。我应该使用哪些glsl函数来检测光线和纹理之间的距离

    没有“随时可用”的光线投射功能。你必须自己实现一个光线投射器。即,在起点和终点之间沿直线(光线)对纹理进行采样,并将采样整合到最终颜色值

    三,。3D纹理采样和体渲染的区别是什么

    采样3D纹理与采样2D、1D、立方体贴图或纹理拓扑的任何其他内容没有太大区别。对于给定向量a,返回某个向量B,即最接近a(最近的样本)所指位置的样本值或插值

    四,。有什么在线教程可供我学习吗

    五,。如何生成自己的3D纹理?(是否可以使用搅拌器制作一个?)


    您当然可以使用Blender,例如通过烘焙体积数据(如雾密度)。但整个主题太宽泛,此处无法充分涵盖

    谢谢!。对于问题1,数据的格式是什么?有可能将obj文件转换成这种格式吗?@funnyfunkybugy:基本上是一个3D图像。将其想象为由切片组成的二维图像堆栈。将“网格”或几何体“转换”为体积数据当然可能是通过实际将几何体渲染为体积图像。但这也带来了一些问题,比如如何定义什么是“内在的”。典型的网格由无限薄的三角形组成,如果网格不防水或不可定向,则无法“填充”体积。然而,如果你问这个问题,你似乎有一个XY问题。