首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Optix 5显示X粒子

使用Optix 5显示X粒子
EN

Stack Overflow用户
提问于 2018-06-03 18:19:54
回答 1查看 83关注 0票数 2

我试图显示250帧的动画使用Nvidia Optix射线追踪.我有一个基本的粒子类:

代码语言:javascript
复制
struct Particle{
   float[3] location;
   float size;
   float[4] color;
   string State;

}

我是检索所有的信息(位置,大小,颜色和状态)每个粒子为每个帧从.txt文件生成在搅拌器。txt文件看起来如下所示:

代码语言:javascript
复制
frame 001:
particle1 = {loc = (0,0,0), size = 0.1, color =(255, 255, 255, 255), state = "BORN"}

frame 002: 
...

我还在迭代x帧中的所有粒子,将它们转换为粒子类型的对象(请看上面的结构)。并将它们放入一个类似于以下内容的数组中:

代码语言:javascript
复制
Particles = {{part1, part2, part3}, {...}, {...}}

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

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

我认为代码应该是这样的:

代码语言:javascript
复制
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示例的源代码,发现在这种情况下,optix将粒子呈现为带有“平面”阴影的球体,因此在“混合器工作方式”中使用了发射着色器。但我找不到比这个样本更多的东西,我也无法理解样本本身的部分内容。

我试图用一种相对简单的方式做些什么?如果这是太多的要求或它不清楚,是否有一个网站的StackOverflow的家人要求解释特定的一段代码?

EN

回答 1

Stack Overflow用户

发布于 2018-09-14 19:25:19

将所有粒子数据添加到CUDA设备内存中,方法是将粒子添加到optix的屏幕上。然后分配一个default material,它应该只呈现屏幕空间中与generated ray点击有关的粒子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50669588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档