bevy/Cargo.toml
Robert Swain b1a91a823f bevy_pbr2: Add support for most of the StandardMaterial textures (#4)
* bevy_pbr2: Add support for most of the StandardMaterial textures

Normal maps are not included here as they require tangents in a vertex attribute.

* bevy_pbr2: Ensure RenderCommandQueue is ready for PbrShaders init

* texture_pipelined: Add a light to the scene so we can see stuff

* WIP bevy_pbr2: back to front sorting hack

* bevy_pbr2: Uniform control flow for texture sampling in pbr.frag

From 'fintelia' on the Bevy Render Rework Round 2 discussion:

"My understanding is that GPUs these days never use the "execute both branches
and select the result" strategy. Rather, what they do is evaluate the branch
condition on all threads of a warp, and jump over it if all of them evaluate to
false. If even a single thread needs to execute the if statement body, however,
then the remaining threads are paused until that is completed."

* bevy_pbr2: Simplify texture and sampler names

The StandardMaterial_ prefix is no longer needed

* bevy_pbr2: Match default 'AmbientColor' of current bevy_pbr for now

* bevy_pbr2: Convert from non-linear to linear sRGB for the color uniform

* bevy_pbr2: Add pbr_pipelined example

* Fix view vector in pbr frag to work in ortho

* bevy_pbr2: Use a 90 degree y fov and light range projection for lights

* bevy_pbr2: Add AmbientLight resource

* bevy_pbr2: Convert PointLight color to linear sRGB for use in fragment shader

* bevy_pbr2: pbr.frag: Rename PointLight.projection to view_projection

The uniform contains the view_projection matrix so this was incorrect.

* bevy_pbr2: PointLight is an OmniLight as it has a radius

* bevy_pbr2: Factoring out duplicated code

* bevy_pbr2: Implement RenderAsset for StandardMaterial

* Remove unnecessary texture and sampler clones

* fix comment formatting

* remove redundant Buffer:from

* Don't extract meshes when their material textures aren't ready

* make missing textures in the queue step an error

Co-authored-by: Aevyrie <aevyrie@gmail.com>
Co-authored-by: Carter Anderson <mcanders1@gmail.com>
2021-07-24 16:43:37 -07:00

517 lines
11 KiB
TOML

[package]
name = "bevy"
version = "0.5.0"
edition = "2018"
authors = [
"Bevy Contributors <bevyengine@gmail.com>",
"Carter Anderson <mcanders1@gmail.com>",
]
categories = ["game-engines", "graphics", "gui", "rendering"]
description = "A refreshingly simple data-driven game engine and app framework"
exclude = ["assets/**/*", "tools/**/*", ".github/**/*", "crates/**/*"]
homepage = "https://bevyengine.org"
keywords = ["game", "engine", "gamedev", "graphics", "bevy"]
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/bevyengine/bevy"
[workspace]
exclude = ["benches"]
members = ["crates/*", "pipelined/*", "examples/ios", "tools/ci"]
[features]
default = [
"bevy_audio",
"bevy_dynamic_plugin",
"bevy_gilrs",
"bevy_gltf",
"bevy_wgpu",
"bevy_sprite2",
"bevy_render2",
"bevy_pbr2",
"bevy_winit",
"render",
"png",
"hdr",
"mp3",
"x11",
]
# Force dynamic linking, which improves iterative compile times
dynamic = ["bevy_dylib"]
# Rendering support (Also needs the bevy_wgpu feature or a third-party rendering backend)
render = ["bevy_internal/bevy_pbr", "bevy_internal/bevy_render", "bevy_internal/bevy_sprite", "bevy_internal/bevy_text", "bevy_internal/bevy_ui"]
# Optional bevy crates
bevy_audio = ["bevy_internal/bevy_audio"]
bevy_dynamic_plugin = ["bevy_internal/bevy_dynamic_plugin"]
bevy_gilrs = ["bevy_internal/bevy_gilrs"]
bevy_gltf = ["bevy_internal/bevy_gltf"]
bevy_wgpu = ["bevy_internal/bevy_wgpu"]
bevy_winit = ["bevy_internal/bevy_winit"]
bevy_render2 = ["bevy_internal/bevy_render2"]
bevy_sprite2 = ["bevy_internal/bevy_sprite2"]
bevy_pbr2 = ["bevy_internal/bevy_pbr2"]
trace_chrome = ["bevy_internal/trace_chrome"]
trace = ["bevy_internal/trace"]
wgpu_trace = ["bevy_internal/wgpu_trace"]
# Image format support for texture loading (PNG and HDR are enabled by default)
hdr = ["bevy_internal/hdr"]
png = ["bevy_internal/png"]
dds = ["bevy_internal/dds"]
tga = ["bevy_internal/tga"]
jpeg = ["bevy_internal/jpeg"]
bmp = ["bevy_internal/bmp"]
# Audio format support (MP3 is enabled by default)
flac = ["bevy_internal/flac"]
mp3 = ["bevy_internal/mp3"]
vorbis = ["bevy_internal/vorbis"]
wav = ["bevy_internal/wav"]
# WASM support for audio (Currently only works with flac, wav and vorbis. Not with mp3)
wasm_audio = ["bevy_internal/wasm_audio"]
serialize = ["bevy_internal/serialize"]
# Display server protocol support (X11 is enabled by default)
wayland = ["bevy_internal/wayland"]
x11 = ["bevy_internal/x11"]
# enable rendering of font glyphs using subpixel accuracy
subpixel_glyph_atlas = ["bevy_internal/subpixel_glyph_atlas"]
# enable systems that allow for automated testing on CI
bevy_ci_testing = ["bevy_internal/bevy_ci_testing"]
[dependencies]
bevy_dylib = {path = "crates/bevy_dylib", version = "0.5.0", default-features = false, optional = true}
bevy_internal = {path = "crates/bevy_internal", version = "0.5.0", default-features = false}
[dev-dependencies]
anyhow = "1.0.4"
rand = "0.8.0"
ron = "0.6.2"
serde = {version = "1", features = ["derive"]}
# Needed to poll Task examples
futures-lite = "1.11.3"
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"
# 2D Rendering
[[example]]
name = "contributors"
path = "examples/2d/contributors.rs"
[[example]]
name = "mesh"
path = "examples/2d/mesh.rs"
[[example]]
name = "many_sprites"
path = "examples/2d/many_sprites.rs"
[[example]]
name = "sprite"
path = "examples/2d/sprite.rs"
[[example]]
name = "sprite_flipping"
path = "examples/2d/sprite_flipping.rs"
[[example]]
name = "sprite_sheet"
path = "examples/2d/sprite_sheet.rs"
[[example]]
name = "text2d"
path = "examples/2d/text2d.rs"
[[example]]
name = "texture_atlas"
path = "examples/2d/texture_atlas.rs"
# 3D Rendering
[[example]]
name = "3d_scene"
path = "examples/3d/3d_scene.rs"
[[example]]
name = "3d_scene_pipelined"
path = "examples/3d/3d_scene_pipelined.rs"
[[example]]
name = "load_gltf"
path = "examples/3d/load_gltf.rs"
[[example]]
name = "msaa"
path = "examples/3d/msaa.rs"
[[example]]
name = "orthographic"
path = "examples/3d/orthographic.rs"
[[example]]
name = "parenting"
path = "examples/3d/parenting.rs"
[[example]]
name = "pbr"
path = "examples/3d/pbr.rs"
[[example]]
name = "pbr_pipelined"
path = "examples/3d/pbr_pipelined.rs"
[[example]]
name = "render_to_texture"
path = "examples/3d/render_to_texture.rs"
[[example]]
name = "spawner"
path = "examples/3d/spawner.rs"
[[example]]
name = "texture"
path = "examples/3d/texture.rs"
[[example]]
name = "texture_pipelined"
path = "examples/3d/texture_pipelined.rs"
[[example]]
name = "update_gltf_scene"
path = "examples/3d/update_gltf_scene.rs"
[[example]]
name = "wireframe"
path = "examples/3d/wireframe.rs"
[[example]]
name = "z_sort_debug"
path = "examples/3d/z_sort_debug.rs"
# Application
[[example]]
name = "custom_loop"
path = "examples/app/custom_loop.rs"
[[example]]
name = "drag_and_drop"
path = "examples/app/drag_and_drop.rs"
[[example]]
name = "empty"
path = "examples/app/empty.rs"
[[example]]
name = "empty_defaults"
path = "examples/app/empty_defaults.rs"
[[example]]
name = "headless"
path = "examples/app/headless.rs"
[[example]]
name = "logs"
path = "examples/app/logs.rs"
[[example]]
name = "plugin"
path = "examples/app/plugin.rs"
[[example]]
name = "plugin_group"
path = "examples/app/plugin_group.rs"
[[example]]
name = "return_after_run"
path = "examples/app/return_after_run.rs"
[[example]]
name = "thread_pool_resources"
path = "examples/app/thread_pool_resources.rs"
# Assets
[[example]]
name = "asset_loading"
path = "examples/asset/asset_loading.rs"
[[example]]
name = "custom_asset"
path = "examples/asset/custom_asset.rs"
[[example]]
name = "custom_asset_io"
path = "examples/asset/custom_asset_io.rs"
[[example]]
name = "hot_asset_reloading"
path = "examples/asset/hot_asset_reloading.rs"
# Async Tasks
[[example]]
name = "async_compute"
path = "examples/async_tasks/async_compute.rs"
# Audio
[[example]]
name = "audio"
path = "examples/audio/audio.rs"
# Diagnostics
[[example]]
name = "log_diagnostics"
path = "examples/diagnostics/log_diagnostics.rs"
[[example]]
name = "custom_diagnostic"
path = "examples/diagnostics/custom_diagnostic.rs"
# ECS (Entity Component System)
[[example]]
name = "ecs_guide"
path = "examples/ecs/ecs_guide.rs"
[[example]]
name = "component_change_detection"
path = "examples/ecs/component_change_detection.rs"
[[example]]
name = "event"
path = "examples/ecs/event.rs"
[[example]]
name = "fixed_timestep"
path = "examples/ecs/fixed_timestep.rs"
[[example]]
name = "hierarchy"
path = "examples/ecs/hierarchy.rs"
[[example]]
name = "iter_combinations"
path = "examples/ecs/iter_combinations.rs"
[[example]]
name = "parallel_query"
path = "examples/ecs/parallel_query.rs"
[[example]]
name = "removal_detection"
path = "examples/ecs/removal_detection.rs"
[[example]]
name = "startup_system"
path = "examples/ecs/startup_system.rs"
[[example]]
name = "state"
path = "examples/ecs/state.rs"
[[example]]
name = "system_chaining"
path = "examples/ecs/system_chaining.rs"
[[example]]
name = "system_param"
path = "examples/ecs/system_param.rs"
[[example]]
name = "system_sets"
path = "examples/ecs/system_sets.rs"
[[example]]
name = "timers"
path = "examples/ecs/timers.rs"
[[example]]
name = "query_bundle"
path = "examples/ecs/query_bundle.rs"
# Games
[[example]]
name = "alien_cake_addict"
path = "examples/game/alien_cake_addict.rs"
[[example]]
name = "breakout"
path = "examples/game/breakout.rs"
# Input
[[example]]
name = "char_input_events"
path = "examples/input/char_input_events.rs"
[[example]]
name = "gamepad_input"
path = "examples/input/gamepad_input.rs"
[[example]]
name = "gamepad_input_events"
path = "examples/input/gamepad_input_events.rs"
[[example]]
name = "keyboard_input"
path = "examples/input/keyboard_input.rs"
[[example]]
name = "keyboard_modifiers"
path = "examples/input/keyboard_modifiers.rs"
[[example]]
name = "keyboard_input_events"
path = "examples/input/keyboard_input_events.rs"
[[example]]
name = "mouse_input"
path = "examples/input/mouse_input.rs"
[[example]]
name = "mouse_input_events"
path = "examples/input/mouse_input_events.rs"
[[example]]
name = "touch_input"
path = "examples/input/touch_input.rs"
[[example]]
name = "touch_input_events"
path = "examples/input/touch_input_events.rs"
# Reflection
[[example]]
name = "reflection"
path = "examples/reflection/reflection.rs"
[[example]]
name = "generic_reflection"
path = "examples/reflection/generic_reflection.rs"
[[example]]
name = "reflection_types"
path = "examples/reflection/reflection_types.rs"
[[example]]
name = "trait_reflection"
path = "examples/reflection/trait_reflection.rs"
# Scene
[[example]]
name = "scene"
path = "examples/scene/scene.rs"
# Shaders
[[example]]
name = "animate_shader"
path = "examples/shader/animate_shader.rs"
[[example]]
name = "array_texture"
path = "examples/shader/array_texture.rs"
[[example]]
name = "hot_shader_reloading"
path = "examples/shader/hot_shader_reloading.rs"
[[example]]
name = "mesh_custom_attribute"
path = "examples/shader/mesh_custom_attribute.rs"
[[example]]
name = "shader_custom_material"
path = "examples/shader/shader_custom_material.rs"
[[example]]
name = "shader_defs"
path = "examples/shader/shader_defs.rs"
# Tools
[[example]]
name = "bevymark"
path = "examples/tools/bevymark.rs"
[[example]]
name = "bevymark_pipelined"
path = "examples/tools/bevymark_pipelined.rs"
# UI (User Interface)
[[example]]
name = "button"
path = "examples/ui/button.rs"
[[example]]
name = "font_atlas_debug"
path = "examples/ui/font_atlas_debug.rs"
[[example]]
name = "text"
path = "examples/ui/text.rs"
[[example]]
name = "text_debug"
path = "examples/ui/text_debug.rs"
[[example]]
name = "ui"
path = "examples/ui/ui.rs"
# Window
[[example]]
name = "clear_color"
path = "examples/window/clear_color.rs"
[[example]]
name = "multiple_windows"
path = "examples/window/multiple_windows.rs"
[[example]]
name = "scale_factor_override"
path = "examples/window/scale_factor_override.rs"
[[example]]
name = "window_settings"
path = "examples/window/window_settings.rs"
# WASM
[[example]]
name = "hello_wasm"
path = "examples/wasm/hello_wasm.rs"
required-features = []
[[example]]
name = "assets_wasm"
path = "examples/wasm/assets_wasm.rs"
required-features = ["bevy_winit"]
[[example]]
name = "headless_wasm"
path = "examples/wasm/headless_wasm.rs"
required-features = []
[[example]]
name = "winit_wasm"
path = "examples/wasm/winit_wasm.rs"
required-features = ["bevy_winit"]
# Android
[[example]]
crate-type = ["cdylib"]
name = "android"
path = "examples/android/android.rs"
[package.metadata.android]
apk_label = "Bevy Example"
assets = "assets"
res = "assets/android-res"
icon = "@mipmap/ic_launcher"
build_targets = ["aarch64-linux-android", "armv7-linux-androideabi"]
min_sdk_version = 16
target_sdk_version = 29