我正在尝试从给定法线和原点的3D阵列生成2D纹理。
我的问题是我无法找出正确的分辨率,以确保我不会忘记纹理中的任何像素。
步骤:
我的方法的问题是我无法找出在2D空间中迭代的正确间距/步骤。如果步长太大,我可能会错过一些像素,如果步长太小,则会导致性能下降。
我的方法有意义吗?
非常感谢任何帮助。 最好
==编辑
通常,3D阵列为256x256x256,阵列的每个元素都是尺寸spacingX,spacingY,spacingZ的3D体素。
在某些时候我想使用3D纹理直接在WebGL中重新调整我的音量,但首先我想弄清楚javascript中的逻辑。
如果您查看那里的演示:http://lessons.goxtk.com/17/,您应该会看到问题。理想情况下,2D切片应该始终是清晰的,但有时候,图像上会出现一些伪影,因为纹理由于不正确的重复而丢失了一些体素。
我想在任何方向上重新调整此音量的问题(不仅与X / Y / Z轴良好对齐)。这意味着我们不仅从交叉平面提取正方形而且还提取三角形。我想生成一个包含所有信息的漂亮纹理。
我希望能够正确提取下面的纹理。
使用我当前(不正确)的方法,我尝试猜测最小的重复平面间距是什么,并迭代它以生成纹理。但我找不到正确的间距。因此,我用猜测的间距迭代飞机,我想念很多信息。
我目前的做法似乎不正确,欢迎任何有关如何实现这一目标的建议!
最佳
答案 0 :(得分:1)
整个方法并不正确。正确的方法是对屏幕上的每个像素,将其映射到平面的世界坐标,然后将其映射到IJK坐标以找到正确的颜色。
像素 - >平面坐标 - > IJK坐标 - >像素的颜色!