如何在Android应用程序中以3-D渲染DICOM图像?

时间:2011-08-10 18:01:16

标签: android opengl-es textures dicom

有没有人有在Android上以3D渲染DICOM图像的经验?我开始实现这一点,我不知道从哪里开始。

我听说OpenGL ES不支持3-D纹理。我需要使用二维纹理吗?

是否有任何书籍或其他资源可以指出用于渲染DICOM图像?

1 个答案:

答案 0 :(得分:1)

我在iOS上做过这方面的工作,而不是在Android上工作,但OpenGL ES的一面是有趣的部分,所以我认为不重要。

我最终使用片段着色器将3d坐标转换为2d坐标,然后相应地对纹理进行采样。结果我不得不放弃纹理过滤。所有支持ES 2的iOS设备目前仅限于2048x2048纹理,因此这意味着您在从纹理读取时具有22位地址空间。我最终允许每个(x,y,z)有7位,从z加载4位到x的顶部,3加到y的顶部。因此,对2048x1024源图像进行索引,得到128x128x128的3d纹理。

关于其他DICOM问题,我上传的纹理是亮度+ alpha,以保留每个像素最多16位的源信息。这与我拥有的所有样本数据相匹配。

虽然我的当前实现在合成时仅限于8位算术(根据输出缓冲区的大小),我打算通过使用加法混合来解决这个问题,将我在输出通道之间输出的值拆分然后使用第二个传递积累结果。

我不知道任何合适的参考链接,这些都是我为自己设计的解决方案。由于这项工作已经商业化,我合同无法提供源代码。