Bindless Rendering and Multi-Draw

Since update 0.40, Vulkan and Direct3D 12 spend much less time preparing a busy scene. The picture stays the same, and materials, textures, and mods keep the same workflow. What changes is how expensive a large level is.

Direct3D 11 still does that work the older way. A map that feels fine on Vulkan or Direct3D 12 can get heavy there once it has a lot of props or a lot of materials.

What you gain

Extra materials are cheap

Previously, every material meant more setup before the object could be drawn. A mesh split into paint, glass, rubber, and dirt paid for that on every copy in the scene.

Bindless rendering puts the loaded textures and material settings in one shared list on the graphics card. An object only points at the entry it needs. Adding another material, or another object that uses one you already have, costs much less. Use a separate material where the surface actually changes.

Solid materials group together. A new color, texture, or roughness can stay in that group. Glass, foliage cards, and other transparent materials form their own group, so keep transparency for surfaces that need it.

Many different props are drawn together

Previously, each static object was sent to the graphics card on its own, even when it was a small sign or a rock.

Multi-draw sends many of those objects together, even when each one has its own mesh and its own material. Signs, clutter, rocks, and other repeated dressings are the content this is built for. A level can be dressed more densely without the old per-object cost.

Cars, trailers, and other vehicles get the cheaper material setup. Each vehicle is still drawn on its own.

The graphics card skips what you cannot see

Previously, the CPU walked the props and forest to decide what was on screen, including for every shadow.

On Vulkan and Direct3D 12 the graphics card does that pass for placed shapes, forest items, and distant imposters. It runs for the camera and again for each shadow. Objects outside the view, past their last detail level, or too small on screen are skipped. Shadows drop small casters sooner than the color image, and the farthest shadow keeps the large shapes.

A dense forest or a city block of small props no longer has to be checked one by one on the CPU. The scene looks the same. It just stays cheaper as the object count grows.

Detail levels switch on the graphics card

The same pass picks the detail level. It still uses the levels stored on the shape: a large object, or one scaled up in the level, keeps its detailed mesh farther away, and the Mesh Detail setting still moves those distances. The switch to a distant billboard fades. Shadows stay on one detail level during that fade, so a tree casts a single shadow while it blends.

The benefit shows up when the shape actually has lower detail to switch to. A prop that only contains the full mesh is still drawn in full until it disappears. A simpler mesh, and a billboard as the last detail, is what distant copies should show. See LOD and detail levels for placed shapes, and LOD and billboards for forest.

On a forest item, shadowNullDetailSize is a pixel size for the shadow only. Once the item would be smaller than that, its shadow is dropped and the item can still be drawn. 0 keeps the normal shadow cutoff.

Which renderer has it

Renderer What you get
Vulkan The full set on every supported GPU that can draw many objects in one go.
Direct3D 12 The full set on any GPU that meets the system requirements .
Direct3D 11 The older per-object path. Large scenes cost more CPU time.

If a Direct3D 12 GPU is too old, or multi-draw is unavailable, the scene still looks the same and the CPU does the extra work. In beamng.log, bindless enabled and GPU-driven multi-draw enabled are the Direct3D 12 lines to look for. On Vulkan, look for Bindless rendering: enabled.

Making content

Author materials the way you already do. Definitions stay in .materials.json, textures still go through the Texture Cooker , and meshes still point at materials by name.

  • Split a static mesh where the surface changes. Extra solid materials are a good trade on Vulkan and Direct3D 12.
  • Dress the level with more small props. That is the case multi-draw and the graphics-card culling are built for.
  • Give those shapes lower detail levels and a far billboard, so the distance switch has something cheaper to show.
  • Check Direct3D 11 if the mod should run there. The gap grows with object count and material count.
  • A custom PostFX shader is unchanged.

Summary

  • Bindless rendering makes extra materials cheap, so a surface can have the material it actually needs.
  • Multi-draw draws many different static props together, so a densely dressed level stays lighter.
  • The graphics card culls those props and forest items, and picks their detail level, for the camera and for shadows.
  • Vulkan and Direct3D 12 have this. Direct3D 11 uses the older, slower path. Authoring stays the same.
Last modified: October 19, 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.