-1

我目前正在尝试使用类似glTexImage3D. 我从一开始就关注本教程。我的最终目标是制作一个可以像这样工作的程序:

这个

我的理解是这是使用光线投射方法渲染的,并且模型是作为 3d 纹理导入的。光线投射和纹理采样任务在片段着色器中执行。我希望我可以复制这个程序作为练习。你能回答我的问题吗?

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

1 回答 1

2

1. 导入 3D 贴图应该使用什么文件格式?

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

2. 我应该使用哪些 glsl 函数来检测我的光线和纹理之间的距离?

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

3. 3D纹理采样和体渲染有什么区别?

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

4. 是否有任何可用的在线教程供我学习?

http://www.real-time-volume-graphics.org/?page_id=28

5. 如何制作自己的 3D 纹理?(可以用搅拌机做一个吗?)

您当然可以使用 Blender,例如通过烘焙诸如雾密度之类的体积数据。但整个主题过于宽泛,无法在此充分涵盖。

于 2017-06-03T07:57:06.343 回答