Hello BeamNG Team! I have a suggestion regarding the smoke and particle physics in the game. Currently, smoke often clips through solid objects like the hood or cabin, which breaks the immersion of such a high-fidelity simulator. I would like to propose implementing voxel-based smoke, similar to the system seen in Teardown. Since BeamNG is all about authentic physics, having smoke that actually interacts with the vehicle's geometry (collision and flow) would be a massive leap forward. Imagine smoke from an overheating engine realistically escaping from under the hood gaps or filling the cabin after a crash instead of just passing through the textures. This would perfectly align with the 'soul' of BeamNG as the ultimate physics sandbox, without turning it into a flashy arcade racer. What do you think about the technical possibility of adding such a fluid/voxel interaction to the current engine? Best regards, Walter --- Post updated ---
I think this is a really great idea. The awful smoke textures have been a gripe of mine for a while now since almost everything else looks nearly photorealistic.
Exactly! When you have such incredible soft-body physics and car models, these 2D smoke clouds really break the immersion. Voxel-based smoke would bring the visuals to the same high level as the physics engine.
How much of an effect would it have on framerate? Does this render each individual particle or does it render it as a group?
The idea isn't to render millions of individual particles (which would kill the FPS), but to use a Voxel Grid (Fluid Simulation). It can be optimized by only simulating voxels in a small 'bounding box' around the car or the crash site. It renders as a single volumetric field. Modern GPUs are very good at this (like in Teardown) This way, we get realistic collisions with the car's mesh without the lag of traditional particle systems.
I need a bump --- Post updated --- Also, just as a side thought that came to mind while brainstorming this: If the engine starts supporting voxel-based logic for fluids like smoke, it could open the door for some radical future features. For example, using a voxel layer on the car body to simulate dynamic scratches and paint wear. When the friction energy reaches a certain threshold, the voxel mask could 'peel off' the paint layer in real-time to reveal the metal underneath, exactly where the impact happened. It’s just a background idea for now, but since BeamNG is all about the 'soul' of physics, combining voxel smoke with voxel-based surface wear would make the simulation feel truly alive and next-gen!
+1 on the smoke needing a serious upgrade, and voxels do seem like a good way to handle volumetrics. You may have a bit more trouble getting the smoke to interact with the vehicles, since both the model and jbeam of a vehicle are made of vector data (ie has no actual volume) and voxels are raster, and getting smoke to pour out from a panel gap would require pretty high resolution, but that doesn't strike it out completely. But, why in blue blazes would you use voxel-based surface wear instead of just using a splatmap? It's a cheap, dependable, well-documented, user-controlled technique that doesn't require an insanely complex 3d grid that could still easily suffer from aliasing artifacts as vehicles reorient relative to the world, or parts reorient relative to their vehicle? Like, I'm fairly sure anything's possible up to a point, but this proposition just feels very... Rube Goldbergian. Probably possible, but very inefficient, complex, costly, and liable to behave unpredictably.
Fair points! Regarding the interaction between JBeam (vectors) and Voxels: it’s definitely a technical hurdle. However, using Signed Distance Fields (SDF) could potentially bridge that gap by creating a simplified 'collision volume' around the JBeam structure, allowing the voxel fluid to 'see' the car's boundaries more efficiently. About Splatmaps vs Voxels for surface wear: You're absolutely right, splatmaps are the industry standard for a reason—they are cheap and dependable. But the reason I brought up a more 'Rube Goldbergian' volumetric approach is the potential for actual depth and multi-layer interaction that 2D overlays struggle to simulate convincingly during complex mesh deforming. I agree it’s computationally expensive right now, but as we look toward future hardware, moving toward a more unified volumetric logic is where the next leap in simulation fidelity lies. Maybe a hybrid system—using voxels to drive dynamic splatmap masks—could be the middle ground? --- Post updated --- Sorry if my phrasing sounds a bit formal or 'AI-like' — I'm using a translator to make sure my technical points about voxels and SDF are clear, as English isn't my native language.
True and that would be cool. Now a cool thing is for diesel trucks/cars to make other cars have dark spots ( I know this will never happen put it would be sick and if they did it would go perfectly with scratches)
I still feel like this is putting a hat on a hat. In order to use voxels to drive splatmaps, you would need to sync your voxel grid with the vehicle/parts to see what's making contact with what, or get a stream of data from the vehicle's nodes to inform the voxels. But voxels aren't needed for this equation: you already have the grid of nodes to both generate the data, and act on it. Conveying information from the jbeam to the voxels, and then sending it on to the material, is just adding a step that doesn't really need to be there. Also, IDK if it's an artifact of using AI for translation or formatting (no judgement), but it's nice seeing posts from someone else that make proper use of the em dash lol If you were trying to use decals, sure, there would be a problem. But to be clear: I'm describing using splatmaps, which are a form of texture. As texture coordinates are innate to the geometry, no amount of mesh deformation should cause any trouble with -specifically- the texture. If textured geometry looks wrong under heavy deformation, that's a problem with either the geometry, or the deformation, not the texture. I've seen that, and it does look awesome. It doesn't quite guarantee that ground-level smoke is on its way: remember that clouds are absolutely massive. Small ones tend to be several dozen or hundred meters long, and big ones can stretch up and out in all directions for miles. The scale for such a voxel grid would likely be accordingly huge, and therefore may not necessarily work for interactions being had on a scale of a few dozen centimeters or a few meters. This is not to say it can't happen, but if volumetric smoke is inevitable, cloud rendering will be probably be more of a stepping stone in that direction. And, we're not even sure yet if the clouds' volumetrics are voxel-based in the first place.
i dont think that the torque 3d engine is really good at rendering even volumetric voxel-based clouds, and with the smoke needing to move out the way and react to the cars body, itll be hard to implement, if not impossible. even with that, voxel smoke is really needed in beamng (scratches too) and i hope the developer team finds a way