使用没有纹理的three.js进行体积光线跟踪

时间:2017-08-22 20:21:12

标签: javascript three.js webgl

我试图想象氢波功能,并希望使用体积光线追踪/投射来做到这一点。所有在线创建体积渲染的指南都基于来自某些医学成像的2D纹理。在我的情况下,我没有任何数据作为图像,而是3D数据已经在内存中(I'm using them to generate particles right now)。

我是否真的需要将我的所有3D数据转换为2D纹理,只是再次加载它们并伪造3D纹理?如果没有,如何在没有纹理的情况下完成它?

1 个答案:

答案 0 :(得分:1)

是的,从您的链接中我了解到您有一个采用3D坐标并返回0到1之间的可用性的函数。您可以在评估每条光线时直接使用它。

For each ray, 
    for each distance ∆ along the ray
        calculate the coordinates at distance ∆ from the camera
        calculate the propability at those coordinates using your function
        add the probability to the ray's accumulated color

使用此方法,您可以跳过已在链接示例中呈现的粒子位置,并直接使用该函数。