问题标签 [particles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
6047 浏览

graphics - 将 3d 球体投影到屏幕上的 2d 圆中

有哪些光栅化算法可以将 3d 球体投影到像素网格中?我想避免光线投射。本质上,给定一个 3d 坐标和一个半径,有没有一种快速的方法可以在像素网格上创建一个 2d 圆/椭圆?

例如:半径为 4 的 (2,2,2) 处的圆被投影到五个像素: p1(2,0)p2(0,1) p3(1,1) p4(2,1)p5(1,2 )

我遇到过诸如粒子系统的像素飞溅之类的技术,但我还没有找到关于如何做到这一点的明确答案。

谢谢

0 投票
1 回答
1162 浏览

xml - XML Schema - 绕过唯一标签约束

我必须为已经使用的 XML 格式创建一个模式。现有的 XML 已经由不同的程序生成,听起来很难找到所有需要更改的地方才能使用更常规的 XML 格式。

这是一个类似于我们的 XML 结构的示例:

请注意,错误标签在同一级别重复使用,并且出现在某些项目之后而不是其他项目之后,所以我不能只设置 maxOccurs="unbounded"。我已经尝试将相关的错误/其他标签对包装在 xsd:sequence 中,但这并不能解决问题,因为我仍然有效地破坏了唯一粒子归属规则。

这甚至可以完成,还是我需要让其他开发人员知道这个模式不会验证?

0 投票
2 回答
740 浏览

random - 如何创建随机模拟?

我一直在玩这个 Flash 游戏,在我克服了最初的(“哈哈,开火”)反应后,我开始想知道如何在编程中复制这种接触变异行为。我想这有点像蜜罐 xkcd

我正在考虑从粒子相互偏转和包含壁的场景开始。该序列将从一定数量的“突变体”粒子开始,当这些突变体与常规粒子碰撞时,它们本身就会变成突变体。我以后可以做一些更有趣的事情。

我的问题是如何开始。我计划使用 .NET 的绘图元素在 C# 中执行此操作(尽管我对 C# 相当陌生 - 如果 .NET 有不同的部分,我应该使用让我知道)但是如果有任何关于它的一般论文我有兴趣阅读它们(当然,如果它们可以在线获得)。

谢谢,罗斯

0 投票
8 回答
2162 浏览

c - 在 C 和 OpenGL 中移动粒子

我希望能够在 3D 环境中沿直线移动粒子,但我想不出如何根据 3D 空间中的两个点计算出下一个位置?

我创建了一个结构,它代表一个具有位置和下一个位置的粒子?这也适合计算下一个移动位置吗?我知道如何使用以下方法初始设置下一个位置:

我使用的结构是:

我会以完全错误的方式解决这个问题吗?

这是我所有的代码http://pastebin.com/m469f73c2

0 投票
2 回答
4516 浏览

opengl - OpenGL中带有粒子效果的Alpha透明度

我使用 GL_POINTS 在 OpenGL 中有一个简单的粒子效果。调用以下方法,按照从最远的粒子到最接近相机的最后一个粒子的顺序传递粒子:

但是,在渲染时会出现一些伪影,如以下效果所示:artifacted image http://img199.imageshack.us/img199/9574/particleeffect.png

如果我禁用深度测试,问题就会消失,但我需要效果能够与场景的其他元素交互,根据深度出现在相同 GL_TRIANGLE_STRIP 元素的前面和后面。

0 投票
4 回答
4596 浏览

opengl - 粒子系统设计?

我正在设计自己的粒子系统引擎,这是出于学习目的,我真的不想使用现有的引擎。

现在我生成了漂亮的粒子,但我想对引擎进行布局以使其更容易使用它们。

我一直在思考一个“粒子系统”类,

该类将包含以下引用:

particleList:组成系统的粒子列表。

systemEmitter:粒子的系统发射器,Emitter 类应该能够执行多种粒子发射技术,例如从线、点发射、从多边形随机发射。这个类也应该做发射控制,比如向一个点发射,远离一个点,在一个方向和时间发射。

粒子控制器:管理例如围绕一个点的旋转、可变粒子大小、可变粒子颜色、粒子以不同方式反应的系统周围区域、碰撞检测(与其他对象或在必要时在粒子内)。

粒子渲染器:负责绘制这个系统,可变混合类型,粒子纹理,粒子类型如三角形,圆形,自定义......

这四项,就组成了粒子系统类。一些 FX 可能需要多个粒子系统,例如 Fire FX,可以使用一个系统用于火,一个系统用于烟雾,一个系统用于火花。

这就是我的想法,但我真的很想知道这种设计方法是否良好,或者您是否看到我遗漏了某些东西或可以/应该做一些不同的事情。我还没有想过一些简单的方法来“保存”FX,例如什么是告诉我的引擎的最佳方式,“draw Fire”、“draw explode”、“draw喷泉”等,也许存储 FX 信息在 xml 文件中将是一个好主意,等等。

非常欢迎提出意见,正如我之前所说,出于学习的原因,我真的想构建这个,而不是使用另一个引擎。

0 投票
3 回答
314 浏览

c++ - 无论发射器速度如何,粒子流都应具有相同的长度

我正在为我们的学生游戏编写粒子系统,但遇到了一些障碍。我想提高对飞船火箭的影响,但我似乎不知道如何做。

以下是静止船只上的效果:

替代文字

这是它在移动的船上的样子:

替代文字

我希望火焰始终保持相同的长度。这是ParticleTick功能:

提前致谢。

编辑:为了澄清一点,我希望效果跟踪,但无论发射器的速度如何,我都希望它以相同的方式跟踪。

0 投票
2 回答
1184 浏览

c++ - 如何在OpenGL中渲染非平凡的粒子

我有一个粒子系统,其中位置和各种属性存储在顶点缓冲区对象中。这些值由 CUDA 内核不断更新。目前我只是使用 GL_POINTS 将它们渲染为平面圆圈。我感兴趣的是渲染这些粒子更复杂,比如 3d 动画鸟类模型。我试图找出最好的方法是什么。为了便于交谈,假设鸟类模型的动画由 3 帧组成(翅膀的位置和其他)

我可以看到将模型加载到显示列表中,并在平移、旋转等矩阵中循环遍历所有粒子,然后调用显示列表。这似乎不是一个理想的方法,因为它需要将所有粒子数据从 gpu 传送到主机,只是为了进行矩阵运算以推回 GPU(除非我可以从 cuda 内核调用绘图函数?? ?)

我对着色器不太了解,他们能处理这样的事情吗?

在这一点上,我主要是在寻找有关追求什么途径的建议,但是如果您知道任何涉及该主题的文章或教程,请多多支持。


我正在使用 c++ 在 Windows 7 64bit 上本地使用 OpenGL。我没有使用过剩

0 投票
1 回答
2361 浏览

opengl - opengl 用粒子建模火箭火焰和蒸汽轨迹

有没有人对使用顶点缓冲区/4f颜色缓冲区绘制粒子在opengl中对从喷气发动机(带加力燃烧室)出来的粒子流进行近似编码有任何指导?

我认为这个问题有两个方面:

  1. 作为粒子离开喷气发动机的光的颜色是温度和与燃烧气体类型相关的一些常数的函数。这篇文章让我相信我需要某种温度/颜色转换曲线的数组。显然,氢气在氧气中的燃烧温度为 2,660C,在空气中的燃烧温度为 2,045C,而喷气燃料在空气中的燃烧温度为 287.5C。(但喷气式战斗机加力燃烧室的温度可以达到1700C)

  2. 火箭/喷气机后面的蒸气轨迹,如果火箭在大气层中,则水基蒸气轨迹为白色,带有 alpha。我也相信我的假设是正确的,这对于在太空中燃烧燃料的火箭来说是不必要的。蒸汽轨迹将模拟为比可见光波长大得多的微小水滴,因此它们会以消色差的方式散射光。由于水本身是无色的,因此产生的颜色会是白色吗?

此外,我希望从鸟瞰的角度对此进行建模,因此它不需要是完整的 3D 模型。因此,例如,加力燃烧室锥体周围的 10 个左右指示灯的位置可以近似为 5 个线性点。

0 投票
3 回答
2318 浏览

iphone - 苹果手机。粒子系统性能

我尝试使用Core Graphics将雨雪绘制为粒子系统。在模拟器中渲染进行得很好,但是当我在真实设备上运行我的应用程序时,渲染速度变慢了。

所以,请告诉我提高iPhone 上粒子系统绘图性能的方法。

可能我应该为此使用OpenGL还是CoreAnimation