Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ assets/**/*.meta
crates/bevy_asset/imported_assets
imported_assets
.web-asset-cache
examples/large_scenes/bistro/assets/*
examples/large_scenes/caldera_hotel/assets/*

# Bevy Examples
example_showcase_config.ron
Expand All @@ -33,3 +35,6 @@ assets/scenes/load_scene_example-new.scn.ron

# Generated by "examples/window/screenshot.rs"
**/screenshot-*.png

# Generated by "examples/large_scenes"
compressed_texture_cache
5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ members = [
"examples/no_std/*",
# Examples of compiling Bevy with automatic reflect type registration for platforms without `inventory` support.
"examples/reflection/auto_register_static",
# Examples of large bevy scenes.
"examples/large_scenes/bistro",
"examples/large_scenes/caldera_hotel",
# Mipmap generator for testing large bevy scenes with mips and texture compression.
"examples/large_scenes/mipmap_generator",
# Benchmarks
"benches",
# Internal tools that are not published.
Expand Down
24 changes: 24 additions & 0 deletions examples/large_scenes/bistro/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[package]
name = "bistro"
version = "0.1.0"
edition = "2024"
publish = false
license = "MIT OR Apache-2.0"

[dependencies]
bevy = { path = "../../../", features = [
"bevy_camera_controller",
"free_camera",
] }
mipmap_generator = { path = "../mipmap_generator" }

argh = "0.1.12"

[features]

default = ["debug_text"]
debug_text = ["bevy/bevy_ui"]
pbr_transmission_textures = ["bevy/pbr_transmission_textures"]
pbr_multi_layer_material_textures = ["bevy/pbr_multi_layer_material_textures"]
pbr_anisotropy_texture = ["bevy/pbr_anisotropy_texture"]
pbr_specular_textures = ["bevy/pbr_specular_textures"]
58 changes: 58 additions & 0 deletions examples/large_scenes/bistro/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Bistro Example

Download Amazon Lumberyard version of bistro [from developer.nvidia.com](<https://developer.nvidia.com/orca/amazon-lumberyard-bistro>) (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`

```console
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):](https://discord.com/channels/691052431525675048/1237853896471220314/1237859248067575910)

- 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
Loading