我正在尝试使用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系列的网站要求对特定代码进行解释?