我们有MRI扫描,我们想要执行 在iOS上的OpenGL中进行实时光线投射,以便从不同角度渲染曲面而不对其进行多边形化。实际上,我们只对渲染生成的深度图感兴趣。
我已经在appstore中看到过这方面的一些例子,所以我确定它可能(例如ImageVis3d)。 我们可以使用glTexImage3D来执行渲染吗?在iOS中使用此功能是否有良好的在线资源?更好的是有一个GitHub项目或类似的东西,演示了如何在iOS中使用glTexImage3D?
现在假设OpenGL ES内存中存在2d或3d纹理,是否可以使用片段着色器写入相同的内存然后重新渲染它而不将其复制回CPU?我想象一个可以使用片段着色器变形音量的雕刻场景。
答案 0 :(得分:1)
我不确定你的意思是“我们可以使用glTexImage3D来执行渲染吗?” glTexImage3D用于将3D纹理数据加载到纹理缓冲区对象。 您无法在着色器中读取和写入相同的内存(这会产生锁定问题)。但是你可以做的是加倍缓冲:
从texture1读取并写入texture2,然后在下一帧之前交换纹理的绑定,以便从texture2读取并写入texture1。
只是为了澄清:如果你想在片段着色器中预先形成你的写作操作(意味着你想为你的投影基元的每个片段写一个值),那么你将使用FBO渲染到纹理(听起来像这样是你在寻找的。)
但是,如果您只想为每个顶点写入值,即捕获顶点着色器的输出值,那么您将使用变换反馈。