我用点精灵在direct3d9中制作具有动态顶点缓冲区的粒子进行批处理。但我只能以30fps创建2500个粒子。我在互联网上看到他们可以创造出数以百万计的微粒。我如何在Direct3D中制作数百万个粒子?优化的粒子系统Direct3D 9
回答
2500粒子非常低。你是用他们自己的Draw(Indexed)Primitive调用来绘制它们吗?如果是的话,这是做错事情的错误方式。使用DirectX,您希望将您的绘制调用降至最低。你应该用动态顶点缓冲区填充所有的坐标位置,然后用一个Draw(Indexed)Primitive调用渲染它们。
我用配料技术绘图。在一次平局中获得512分。你能举个例子吗? – 2013-05-11 02:14:48
@DilhanGeeth:我真的没有例子,如何把你的代码放在一起... – Goz 2013-05-11 06:24:25
http://pastebin.com/t7eVxG9j – 2013-05-12 03:52:44
- 1. 如何使用粒子对象优化画布粒子系统
- 2. 粒子系统
- 3. three.js中的粒子vs粒子系统
- 4. 粒子群优化
- 5. SFML.NET粒子系统
- 6. 粒子系统libGDX
- 7. 粒子系统DontDestroyOnLoad
- 8. AndEngine粒子系统
- 9. 粒子在粒子群优化(PSO)
- 10. 统一3d - 粒子系统
- 11. 粒子系统:粒子生成
- 12. 使用获取/设置粒子来实例化粒子系统
- 13. OpenGL的粒子系统
- 14. libGdx中的粒子系统
- 15. C++粒子系统Allegro 5
- 16. 粒子系统设计?
- 17. 自定义粒子系统
- 18. OGRE - 创建粒子系统
- 19. plattysoft粒子系统Java
- 20. iOS粒子系统控制
- 21. 粒子系统显示
- 22. SFML粒子系统架构
- 23. 粒子系统错误
- 24. 粒子系统阵列
- 25. 改进粒子系统OpenGL
- 26. 如何给粒子系统
- 27. Cocos2d粒子系统定位
- 28. XNA粒子系统性能
- 29. 在AndEngine GLES2中定位粒子系统和粒子系统的寿命
- 30. 让2D粒子系统统一
这100万个粒子演示通常在CPU上完全计算,而无需从CPU端传输任何数据。如果你想计算CPU上的粒子,因此必须将数据发送到GPU,10K粒子是一个正常值。 – Gnietschow 2013-05-10 18:39:16
我如何在GPU中做到这一点? – 2013-05-11 02:13:57
这太复杂了,不能在这里解释它,但是在互联网上有很多来源,它们在那里被描述,例如, http://www.2ld.de/gdc2004/MegaParticlesPaper.pdf(没有阅读它,只挑选了一些随机链接的主题) – Gnietschow 2013-05-11 10:01:05