使用Optix 5显示X粒子

时间:2018-06-03 18:19:55

标签: c++ optix

我正在尝试使用Nvidia Optix Ray-Tracing显示动画的250帧。 我有这个基本的粒子类:

struct Particle{
   float[3] location;
   float size;
   float[4] color;
   string State;

}

我正在从blender中生成的.txt文件中检索每个粒子的每个粒子的所有信息(位置,大小,颜色和状态)。 txt文件看起来像这样:

frame 001:
particle1 = {loc = (0,0,0), size = 0.1, color =(255, 255, 255, 255), state = "BORN"}

frame 002: 
...

我也在迭代框架x中的所有粒子,将它们转换为 particle 类型的对象(在上面查看结构。)并将它们放在一个看起来像这样的数组中: / p>

Particles = {{part1, part2, part3}, {...}, {...}}

其中主数组内的每个数组代表动画的帧。

所以我不需要使用c ++或Optix进行任何计算,我只需要在该颜色的那个位置渲染该大小的粒子。

我认为代码看起来像这样:

for(int frame = 0; frame <250; frame++){ //Iterate trought all the frames
   for(int i; i <= Particles[frame].size(), i++){ //Iterate trought all the particles in that frame
       //render them.
     }

} 

我只是错过了渲染它们的步骤。我尝试在网上寻找参考资料,但在Optix的粒子上没有发现任何东西。我查看了optixParticles Sample的源代码,发现在这种情况下,optix将粒子渲染为球体,使用&#34; Flat&#34;阴影,所以&#34;搅拌机的工作方式&#34;带有发射着色器的球体。但我找不到比该样本更多的东西,我也无法理解该样本本身的部分内容。

我想以一种相对简单的方式做到这一点吗? 如果这个问题太多或者不清楚,是否有一个StackOverflow系列的网站要求对特定代码进行解释?

0 个答案:

没有答案