从卷中获取体素的值

时间:2012-07-27 21:35:38

标签: xtk

我需要一个函数来从X.volume对象中获取体素(3d像素)的值,给定x,y,z坐标作为输入。这是使用lablemap作为atlas函数的参考。有没有办法做到这一点?

非常感谢,

爱德华

2 个答案:

答案 0 :(得分:3)

目前没有,虽然XTK开发人员正在创建类似于Finding world coordinates from screen coordinates中所解释的东西,但我相信最新的是有一个Unproject函数和Ray / Triangle交叉测试。 Ray / Triangle交点测试只是将一个Ray从你的屏幕投射到3d世界并返回第一个相交的三角形坐标,但当然你需要找到体素。你可以尝试创建一个Unproject函数和类似于Ray / Triangle交点的东西,而是找到最近的相交的体素而不是三角形。有关Unproject功能的帮助在这里http://myweb.lmu.edu/dondi/share/cg/unproject-explained.pdf,但记得该链接解释了来自OpenGL的GluUnproject,但仍然解释了我们需要做什么,我们只是为WebGL制作GluUnproject的替代版本。如果您对XTK做出贡献,您会发现任何解决方案都会非常感激。或者您可以等待Unproject功能,该功能可能来自查找3d坐标的相关问题。

答案 1 :(得分:0)

你的(x,y,z)是什么?它们是世界基础或数量基础上的坐标吗?在这两种情况下都可以计算出一个解决方案(在第一种情况下会有点复杂),但我认为这需要对源进行一些修改。

您想在源代码中编码并参与吗?对像我们这样的xtk用户来说会很棒!你只需要完成卷的层次结构并进行一些操作:

  • 如果(x,y,z)是世界基础上的坐标:复杂。必须做一些测试: - )
  • 选择要使用的方向(1个卷可以在3个方向上有切片),对于第1个方向的ex slicesX
  • 使用体积的中心X坐标,体积X间距和拾取点的X坐标在slicesX中找到好切片
  • 使用体积的中心(y,z),体积Y和Z间距以及拾取点的Y和Z坐标获得选择切片纹理贴图上的(x',y')坐标
  • 选择切片的纹理大小得到(x'',y'')切片纹理图像上的坐标
  • 读取纹理的(x'',y'')点

对不起,我本周没有时间进一步观察,但可能更晚。