Glass Damage Textures

Overview

In BeamNG, glass is either broken or intact, according to the status of a deformgroup, which detects a certain level of deformation and switches the texture of the glass mesh to appear broken.

With this in mind, glass damage textures need to be as generic as possible. For example, shattered windshields should appear uniformly cracked so that it’s not obvious which corner of the windshield the cracks propagated from.

Windshield

This is the most artistically demanding part of a glass damage texture and it usually takes several iterations of trial and error to get right. Substance Painter has a Fracture particle brush which is ideal for this task, but the default parameters need a lot of tweaking.

As seen above, first add a fill layer with a black mask and a paint layer. The base color of the fill layer should be very light teal, with a hue of 0.5. With the brush size set to 0.1, reduce the particle dt to a low enough value that the steps between brush dots are not visible and the cracks appear as a continuous line. Decreasing the SpawnSpeed can also help to make the lines appear more continuous, rather than dotted.


In order to improve the appearance of the cracks, it’s necessary to tweak almost all of the particle brush values:

  • Shape - setting this to Thorn give the sharpest lines
  • ParticleLife - this should be set very high to avoid cracks terminating without touching another crack
  • ParticleSpeed - adjust this so that it’s low enough to avoid dotting of the lines, but high enough to run a lot of iterations quickly (higher speeds are also less affected by turbulence)
  • SpeedFactorAtTrigger - keep this fairly high so that turbulence effects are similar on branches of the cracks
  • StopSpeedRatio - will stop a crack from propagating once it reaches this ratio of its original speed. Play with this to control the amount of crack branches
  • TriggerDeviation - set this to a high value so that the crack branches aren’t all right angles
  • TriggerTimeMax - maximum time interval before a crack branches off
  • TriggerTimeMin - minimum time interval before a crack branches off
  • TurbulencePower - strength of the turbulence effect - make sure to adjust this in proportion with particle speed
  • TurbulenceScale - set this very low to avoid wavy or curly looking turbulence

If you hold down the mouse click while using the fracture brush, the cracks will interact with each other and form boundaries for other cracks. Try holding down left click to paint with fracture particles, and quickly touch each corner of the windshield to start cracks propagating from the corners, without letting go of the mouse button. When the cracks meet in the middle of the windshield they will terminate at each others boundaries. I achieved the results below using the pictured particle settings:

Windshield damage is often a case of “less is more” - try to avoid over cluttering the windshield with cracks, especially remembering that you will be re-creating this pattern later manually as a 3d mesh. Expect to spend 15-30 minutes trying different iterations and practicing the technique of touching each of the corners of the windshield with the brush before the cracks propagate to the other side. Remember that this crack pattern will be highly visible to the player, especially from cockpit view.

Once you are happy with the crack pattern, you should apply some filters to the layer mask to make the appearance more natural. The best filters for windshield cracks are:

  • Blur Slope (blending mode “Min”) - this creates randomized variation in the thickness of the lines to make the cracks appear more complex.
  • Blur Slope (blending mode “Max”) - this can be used to fake refraction effects and caustic highlights caused by the thickness of the glass.
  • Sharpen - apply this filter on top of the Blur Slope filters to improve the crispness of the cracks.

Side and Rear Windows

These are typically made of tempered glass which shatters into granular chunks. Since these chunks usually crumble away in a crash, but some remain attached to the window frame around the edges, we texture broken side and rear windows with uniform, high density cracks texture with a jagged hole in the middle.

Start by creating a new fill layer with a material similar to the windshield cracks material, but with a slightly negative Height value. Add a black mask and start painting on it with the Cracks brush at a small brush size.

Add a new fill layer with a material for the holes in the shattered tempered glass. This material has all channels disabled except Height and Opacity. Set Opacity to 0 and Height to a low value, so that the hole will have an edge in the normal map.

Use the Crystal brush with the Hardness parameter set to maximum, and Shape parameter, set to minimum, to paint jagged holes in the window:

Light Covers

These should crack like a windshield, but since they’re not made of laminated glass, shards can break off, exposing the reflector underneath. Use the Fracture particle brush and the windshield cracks layer again, and afterwards, use the holes layer to paint out any fragments that aren’t attached to the frame of the headlight.

This is another case of “less is more” - the damage will generally look more convincing in game with fewer shards of glass.

Last modified: April 15, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.