With the advent of the new consoles and high end GPUs, it’s obvious that the visual fidelity of the games will rise. With better graphics comes better particle effects and this is where Popcorn FX comes in. Developed by the Paris based Persistant Studios, Popcorn FX has been used in several games as well upcoming titles like Black Desert.
In order to learn more about the middleware, GamingBolt got in touch with Camille Mirey who is the CEO of Persistant Studios. Check out his response below.
Rashid Sayed: To begin with, can you please introduce yourself and the company you work for?
Camille Mirey: Hi, I’m Camille Mirey, founder and CEO of Persistant Studios. We are a Paris and Montreal based development studio, specialized in the creation of realtime 3D visualization software. We also do service work for companies in need of specifically tailored applications.
Persistant Studios is developing PopcornFX : a high-performance, realtime 3D VFX middleware, designed for the video game industry, on Xbox 360, Xbox One, PS4, PS3, WiiU, PSVita, Windows PC, Mac, Linux and Android. The iOS version is currently in development.
PopcornFX is already in a few released games and several undisclosed titles. It can be easily integrated into in-house or commercial engines. We have upcoming integrations for Unity and Unreal Engine 4.
"Actually, the current generation of games usually deals with thirty to a hundred of thousand particles simultaneously on-screen, no more. Previous generations used to deal with a few thousands to ten thousands of particles, and even games with a high use of particles don’t reach the million which is good mostly for tech demos."
Rashid Sayed: Particle Effect is one of the most difficult solutions to implement in video games. Basically you are literally dealing with millions of particles at one time with each of them having their own physics and attributes. How does PopCornFX deal with such a high end simulation?
Camille Mirey: Actually, the current generation of games usually deals with thirty to a hundred of thousand particles simultaneously on-screen, no more. Previous generations used to deal with a few thousands to ten thousands of particles, and even games with a high use of particles don’t reach the million which is good mostly for tech demos.
We put the emphasis on the diversity and the richness of individual particle behavior, not on their number, although Popcorn has no trouble with high particle counts. And thanks to scripting and heavy batching, each particle is designed to be highly performant and only stores the properties needed, which allows to keep a low memory footprint. For example, a particle whose position is driven by a custom procedural expression doesn’t need physics-specific properties like velocity and mass.
Rashid Sayed: When you say ‘current gen’ are you referring to the PS4 and Xbox One?
Camille Mirey: Yes, that’s for titles already available (for example, inFamous), we expect that number to increase in the future, as the game engines become more mature on these platforms.
Rashid Sayed: Given that effects are highly dependent on the type of object, for example water effects are drastically different than say fire effects, how does the middleware decides what simulation it has to carry out?
Camille Mirey: Thanks to the editor we provide, it is up to the Tech Artist to make the decisions. Like we said before, since each particle is individually scriptable, there is no limitation to its behavior, and the Tech Artist has complete freedom of choice. Furthermore he can script and bend the effects at will. complex behaviours can be produced by assembling simple evolvers, and if that’s not enough, the effect artist can add one or more script evolvers to do whatever he/she needs.
Rashid Sayed: With the new consoles [PS4, Xbox One] already out, what kind of next gen features have you included in the middleware?
Camille Mirey: PopcornFX was already designed for parallel architectures such as the next gen consoles. Also, some CPU-specific features of the PS4 & Xbox One were already supported for PCs (such as the AVX instruction set). So it was ready for next gen consoles, unlike what happened with the PS3, where several specific optimizations had to be made in order to run correctly, like making PopcornFX run on the PS3’s SPUs.
Since the new console’s GPUs are now handling compute shaders, it means that we are on the way to GPU particles. Some pretty cool features of the PS4 & Xbox one will come in pretty handy as well, such as the asynchronous compute queues.
"Both inFamous and our own system are actually quite similar both in the very flexible expression/scripting, as well as the general features and what you can do with the particles. But we run ours on the CPU and have a dedicated editor that allows the effects to be easily created."
Rashid Sayed: The Runtime element of the middleware takes advantage of the specific platforms. I have two questions regarding this a. What kind of advantages does it take with PS4 along with its unified memory architecture? b. How are you taking advantage of the extremely fast memory in the Xbox One i.e. eSRAM [32MB, 204/GB/s]?
Camille Mirey: a) Since we update from the CPU, we suffer from the transfer to the GPU. Therefore, PS4 unified memory architecture speeds things up by removing that expensive transfer altogether.
b) N/A yet. when we’ll have a GPU implementation, being able to use the fast eSRAM for some particle data might be an interesting thing to explore indeed.
Rashid Sayed: : Regarding point b, but do you think there is potential for better particle effects or is it more of a bottleneck given it’s extremely small size of 32MB?
Camille Mirey: Actually, the small memory isn’t problematic, it only means you can use 32Mb at a time, but you can map/unmap virtual memory at will on those very fast 32 MB. And this is usually used for render targets and blending-intensive operations. So it will indirectly help particles, by making high overdraw be faster.
We could decide to use that memory, but as a middleware developer, there are decisions we cannot make on our own. The game studio might have other plans for those 32 Mb that we’re not aware of. So for the moment, we’ll definitely do some research and testing with eSRAM when we have popcorn running on the GPU, to see what we can do with it, but it’s not a really big priority right now.
Rashid Sayed: With the particle effects being dependent more on the CPU and also on the GPU, how does the middleware deal with the slower clock speed of PS4 and Xbox One? A very good example of this is inFamous Second Son. Sucker Punch studios had totally off loaded the particle effects on the GPU, freeing up the CPU [basically GPGPU compute].
Camille Mirey: Both inFamous and our own system are actually quite similar both in the very flexible expression/scripting, as well as the general features and what you can do with the particles. But we run ours on the CPU and have a dedicated editor that allows the effects to be easily created.
PS4 and Xbox One have slower clock speed but more cores, so through careful use of SIMD and multithreaded optimizations, PopcornFX is pretty damned fast! For the last year, we have been focused on heavily improving the editor and the workflow. The GPU is currently on our roadmap but we also wanted to push CPU as far as possible. Lots of games and platforms already have the GPU on its knees anyway, due to complex GI calculations, heavy shaders, high overdraw, etc…Our hybrid approach using smartly CPU and GPU will benefit from these experiences.
" This is a reduction in CPU overhead [due to DX12] when calling the graphics driver. We intensively use the CPU, but make very few calls to the graphics driver. Therefore, while this improvement is great when you have lots of drawcalls, in our case, it will be like removing a droplet from a bathtub"
Rashid Sayed: Do you think overclocking the CPU speed might help matters instead of taking a hybrid approach?
Camille Mirey: Some game engines will be CPU-bound, and would prefer particles to run on the GPU. In that case increasing the CPU speed will not help particles, only the rest of the game code. Some game engines will be GPU-bound, and would prefer particles to run on the CPU. In that case increasing the CPU speed will help particles. Other game engines will have a less-clear scenario, and might prefer being able to say “run some effects on the CPU, some on the GPU”.
Rashid Sayed: Microsoft’s DirectX 12 technology will provide an even lower level access API along with a reduction of CPU overhead by 50%. What kind of benefits this will bring to the middleware?
Camille Mirey: We aren’t really affected by this, as we usually make very few driver calls, but we are looking forward to Microsoft’s DirectX12.
Rashid Sayed: So the 50% reduction in CPU overhead due DX12 won’t have any kind of performance gains for the middleware?
Camille Mirey: This is a reduction in CPU overhead when calling the graphics driver. We intensively use the CPU, but make very few calls to the graphics driver. Therefore, while this improvement is great when you have lots of drawcalls, in our case, it will be like removing a droplet from a bathtub 🙂
Rashid Sayed: How is the work going on for the Unity plugin? Are there plans to support Geomerics which is a part of Unity 5?
Camille Mirey: A few studios are already using the PopcornFX Unity-plugin, which is in closed beta. We are still facing some limitations due to Unity native API :
- Our mesh particles have to be rendered in the transparent pass
- Scene collisions are to be used with great moderation
We are definitely interested and excited by the native integration of Geomerics in Unity 5, and we’ll explore the possibilities offered since good lighting could dramatically improve the look of particle effects.
"Bottlenecks are still important for disk and networks data transfers compared to the amount of RAM available in next gen consoles. Since PopcornFX takes advantage of procedural content, we generate lots of datas from very lightweight resources."
Rashid Sayed: Theoretically speaking how many particles can the middleware handle at a time? What are your test results on the number of particles that can be handled by the PS4 and Xbox One? Individual numbers will be deeply appreciated.
Camille Mirey: In theory, the only real limit is the amount of memory you have. We currently have samples easily reaching a million CPU particles but again, these are not typical ingame scenarios. From our experience, fillrate and particle size has more impact on performance than particle count. Both devices have comparable performances, we unfortunately can’t really give details on the differences.
Rashid Sayed: How do you think Mantle integration can change the middleware works? Mantle can increase the draw calls by a large number and since the middleware is based on draw calls, do you think this could benefit the particle effects?
Camille Mirey: Some features of Mantle seem interesting for us, it allows lower level control similar to what we have on consoles.
About draw calls specifically, there seems to be a misunderstanding here, our middleware is not hungry for draw calls. This is one of the advantages of our batching system. We typically only have a few drawcalls even with thousands of different emitters.
Rashid Sayed: I was going through some of the GDC demos and I was literally taken aback by the potential of the middleware. But we don’t see such effects in retail games, or at least in that density. What do you think is holding back the effects to truly shine?
Camille Mirey: Thank you ! 🙂 As in other fields of 3D effects like physics, vegetation, lighting and animations, tools are evolving and allowing bright effects to be created, but it takes time, and we strongly expect that this level of density of particle effects will soon become a new standard. inFamous’ recent success and critical reception will certainly help for that!
Bottlenecks are still important for disk and networks data transfers compared to the amount of RAM available in next gen consoles. Since PopcornFX takes advantage of procedural content, we generate lots of datas from very lightweight resources. This is certainly a must have in the next gen games and we’ll be happy to help studios create refined content with dedicated tools.
"Allegorithmic has indeed licensed PopcornFX in order to integrate it in their latest product Substance Painter.
With PopcornFX’s very flexible expression/scripting and heavy-batching of particles, Allegorithmic has been able to introduce never-seen particle-based brushes."
Rashid Sayed: Are you implying that bottlenecks will be there despite the large amounts of RAM found in PS4 and Xbox One?
Camille Mirey: We mean that the disk and network bottlenecks are still there, but we’re not affected by them because we generate large amounts of particle data from very small effect files.
Rashid Sayed: Microsoft showcased the power of cloud at the recent Build 2014 [link here]. Do you think there is a potential increased particle effect for the middleware when used with the cloud? This will essentially increase the compute power.
Camille Mirey: This question is a bit hard to answer! Probably in the future, if connections really allow for computation offloading to servers or if full streaming becomes a widespread solution (unlikely in the upcoming years due to latency of current infrastructures). Even with ever-increasing compute power, our challenge is to get the best of any hardware with tailored optimizations!
Rashid Sayed: PopCornFX is also Oculus Rift compatible. Can you please talk about it?
Camille Mirey: Indeed. PopcornFX can be virtually compatible with any other device or rendering technique since most studios want to be handling the rendering part themselves. We provide a serie of samples and it made sense for us to have an integration with a VR headset since particle effects can dramatically increase the immersion experience.
Rashid Sayed: PopcornFX’s integration with Substance Engine sounds intriguing. Can you let us know what benefits this will bring to the middleware?
Camille Mirey: Allegorithmic has indeed licensed PopcornFX in order to integrate it in their latest product Substance Painter.
With PopcornFX’s very flexible expression/scripting and heavy-batching of particles, Allegorithmic has been able to introduce never-seen particle-based brushes. The feedback of the industry is amazing: Substance Painter is going to be the standard of texture painting tools in the years to come, and we are glad to see PopcornFX being keyrole here.
Rashid Sayed: What games are you working on now? If that is something that can’t be revealed can you let us know the number one demand from developers these days regarding new features for the middleware?
Camille Mirey: We are already working with several big studios and it’s been really enriching. We gained great experience through understanding their different problematics, and it helped us shape a great middleware.
We are not allowed to discuss our current work, but we can tell you that considering the level of demand on the GPU, it’s part of the next steps ! We’ll focus part of our work on the GPU in the upcoming year since many clients ask for it ! 🙂
Rashid Sayed: It was great talking to you Camille. Thanks for your time.
Camille Mirey: It was our pleasure !