Files
bevy/examples/large_scenes/bistro/README.md
Griffin 61dab1013a Large scenes (#22409)
# Objective

Move https://github.com/DGriffin91/bevy_bistro_scene and
https://github.com/DGriffin91/bevy_caldera_scene into the bevy repo for
allow for easier testing.

This also adds https://github.com/DGriffin91/bevy_mod_mipmap_generator
in the new `large_scene` folder because GPU texture fetch cache locality
is important. This could be eventually available more generally as a
part of bevy. But wanted to get something quick and basic in for now.

Not totally sure what these readme's should look like. I mostly just
copied them over and made a few tweaks.

This PR is meant to just be an initial starting point, it does not
address automatically acquiring the required assets.

---------

Co-authored-by: François Mockers <francois.mockers@vleue.com>
2026-01-09 00:59:28 +00:00

3.0 KiB

Bistro Example

Download Amazon Lumberyard version of bistro from developer.nvidia.com (or see link below for processed glTF files with instancing)

Reexport BistroExterior.fbx and BistroInterior_Wine.fbx as GLTF files (in .gltf + .bin + textures format). Move the files into the respective bistro_exterior and bistro_interior_wine folders.

  • Press 1, 2 or 3 for various camera positions.
  • Press B for benchmark.
  • Press to animate camera along path.

Run with texture compression while caching compressed images to disk for faster startup times: cargo run -p bistro --release --features mipmap_generator/compress -- --cache

Options:
--no-gltf-lights  disable glTF lights
--minimal         disable bloom, AO, AA, shadows
--compress        compress textures (if they are not already, requires
                  compress feature)
--low-quality-compression
                  if low_quality_compression is set, only 0.5 byte/px formats
                  will be used (BC1, BC4) unless the alpha channel is in use,
                  then BC3 will be used. When low quality is set, compression
                  is generally faster than CompressionSpeed::UltraFast and
                  CompressionSpeed is ignored.
--cache           compressed texture cache (requires compress feature)
--count           quantity of bistros
--spin            spin the bistros and camera
--hide-frame-time don't show frame time
--deferred        use deferred shading
--no-frustum-culling
                  disable all frustum culling. Stresses queuing and batching
                  as all mesh material entities in the scene are always drawn.
--no-automatic-batching
                  disable automatic batching. Skips batching resulting in
                  heavy stress on render pass draw command encoding.
--no-view-occlusion-culling
                  disable gpu occlusion culling for the camera
--no-shadow-occlusion-culling
                  disable gpu occlusion culling for the directional light
--no-indirect-drawing
                  disable indirect drawing.
--no-cpu-culling  disable CPU culling.
--help, help      display usage information

Alternate processed files with instancing (glTF files on discord):

  • Fixed most of the metallic from fbx issue by using a script that makes everything dielectric unless it has metal in the name of the material
  • Made the plants alpha clip instead of blend
  • Setup the glassware/liquid materials correctly
  • Mesh origins are at individual bounding box center instead of world origin
  • Removed duplicate vertices (There were lots of odd cases, often making one instance not match another that would otherwise exactly match)
  • Made the scene use instances (unique mesh count 3880 -> 1188)
  • Removed 2 cases where duplicated meshes were overlapping
  • Setup some of the interior/exterior lights with actual sources
  • Setup some basic fake GI
  • Use included scene HDRI for IBL