Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08a6df4e68 |
@@ -8,6 +8,3 @@ lightkeeper/assets_runtime
|
|||||||
.idea/**
|
.idea/**
|
||||||
|
|
||||||
build/**
|
build/**
|
||||||
|
|
||||||
CLAUDE.md
|
|
||||||
docs/**
|
|
||||||
|
|||||||
@@ -44,16 +44,9 @@
|
|||||||
[submodule "destrum/third_party/imgui"]
|
[submodule "destrum/third_party/imgui"]
|
||||||
path = destrum/third_party/imgui
|
path = destrum/third_party/imgui
|
||||||
url = https://github.com/ocornut/imgui.git
|
url = https://github.com/ocornut/imgui.git
|
||||||
branch = docking
|
|
||||||
[submodule "destrum/third_party/jolt"]
|
[submodule "destrum/third_party/jolt"]
|
||||||
path = destrum/third_party/jolt
|
path = destrum/third_party/jolt
|
||||||
url = https://github.com/jrouwe/JoltPhysics.git
|
url = https://github.com/jrouwe/JoltPhysics.git
|
||||||
[submodule "destrum/third_party/tracy"]
|
[submodule "destrum/third_party/tracy"]
|
||||||
path = destrum/third_party/tracy
|
path = destrum/third_party/tracy
|
||||||
url = https://github.com/wolfpld/tracy.git
|
url = https://github.com/wolfpld/tracy.git
|
||||||
[submodule "destrum/third_party/imguizmo"]
|
|
||||||
path = destrum/third_party/imguizmo
|
|
||||||
url = https://github.com/CedricGuillemet/ImGuizmo.git
|
|
||||||
[submodule "destrum/third_party/openal-soft"]
|
|
||||||
path = destrum/third_party/openal-soft
|
|
||||||
url = https://github.com/kcat/openal-soft.git
|
|
||||||
|
|||||||
@@ -8,12 +8,6 @@ set(CMAKE_CXX_EXTENSIONS OFF)
|
|||||||
include(CTest)
|
include(CTest)
|
||||||
|
|
||||||
option(DESTRUM_ENABLE_WARNINGS "Enable warnings for first-party targets" ON)
|
option(DESTRUM_ENABLE_WARNINGS "Enable warnings for first-party targets" ON)
|
||||||
option(DESTRUM_STRICT_ASSET_COOKING "Fail the build when an asset falls back to its source instead of being cooked" ON)
|
|
||||||
|
|
||||||
set(DESTRUM_CHEF_FLAGS)
|
|
||||||
if (DESTRUM_STRICT_ASSET_COOKING)
|
|
||||||
list(APPEND DESTRUM_CHEF_FLAGS --strict)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
function(destrum_enable_warnings target)
|
function(destrum_enable_warnings target)
|
||||||
if (NOT DESTRUM_ENABLE_WARNINGS)
|
if (NOT DESTRUM_ENABLE_WARNINGS)
|
||||||
@@ -33,7 +27,6 @@ if (MSVC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(destrum)
|
add_subdirectory(destrum)
|
||||||
add_subdirectory(editor)
|
|
||||||
add_subdirectory(lightkeeper)
|
add_subdirectory(lightkeeper)
|
||||||
add_subdirectory(TheChef)
|
add_subdirectory(TheChef)
|
||||||
|
|
||||||
@@ -42,9 +35,7 @@ if (TARGET _internal_validate_engine_shaders)
|
|||||||
add_dependencies(ValidateShaders _internal_validate_engine_shaders)
|
add_dependencies(ValidateShaders _internal_validate_engine_shaders)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
destrum_enable_warnings(destrum_assets)
|
|
||||||
destrum_enable_warnings(destrum)
|
destrum_enable_warnings(destrum)
|
||||||
destrum_enable_warnings(destrum_editor)
|
|
||||||
destrum_enable_warnings(lightkeeper)
|
destrum_enable_warnings(lightkeeper)
|
||||||
|
|
||||||
add_custom_target(CleanupAssets
|
add_custom_target(CleanupAssets
|
||||||
@@ -61,19 +52,10 @@ add_dependencies(CookAssets
|
|||||||
_internal_cook_engine_assets
|
_internal_cook_engine_assets
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(Export)
|
|
||||||
add_dependencies(Export _internal_export_lightkeeper)
|
|
||||||
|
|
||||||
add_custom_target(ValidateAssets)
|
|
||||||
add_dependencies(ValidateAssets
|
|
||||||
_internal_validate_game_assets
|
|
||||||
_internal_validate_engine_assets
|
|
||||||
)
|
|
||||||
|
|
||||||
option(ENABLE_SANITIZERS "Enable Address/Undefined sanitizers" OFF)
|
option(ENABLE_SANITIZERS "Enable Address/Undefined sanitizers" OFF)
|
||||||
|
|
||||||
if (ENABLE_SANITIZERS AND CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
|
if (ENABLE_SANITIZERS AND CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
|
||||||
foreach(target destrum destrum_editor lightkeeper)
|
foreach(target destrum lightkeeper)
|
||||||
target_compile_options(${target} PRIVATE
|
target_compile_options(${target} PRIVATE
|
||||||
-fsanitize=address,undefined
|
-fsanitize=address,undefined
|
||||||
-fno-omit-frame-pointer
|
-fno-omit-frame-pointer
|
||||||
|
|||||||
@@ -12,10 +12,6 @@ Destrum is a C++20 Vulkan rendering/game-engine playground. It contains the core
|
|||||||
* Skeletal animation support
|
* Skeletal animation support
|
||||||
* Skybox/cubemap rendering
|
* Skybox/cubemap rendering
|
||||||
* Asset cooking pipeline for engine and game assets
|
* Asset cooking pipeline for engine and game assets
|
||||||
* Editor library: docked viewport, play/pause/stop, undo/redo, click to select, gizmos, asset browser
|
|
||||||
* Stable asset ids (`.meta` files) and material files (`.dmat`)
|
|
||||||
* HDR rendering with exposure and tonemapping (ACES, Khronos PBR Neutral)
|
|
||||||
* 3D audio through OpenAL Soft (`AudioSource` / `AudioListener`, WAV and OGG)
|
|
||||||
* CMake-based build setup with third-party dependencies as submodules
|
* CMake-based build setup with third-party dependencies as submodules
|
||||||
|
|
||||||
## Repository layout
|
## Repository layout
|
||||||
@@ -28,8 +24,6 @@ Destrum is a C++20 Vulkan rendering/game-engine playground. It contains the core
|
|||||||
│ ├── src/ # Engine implementation
|
│ ├── src/ # Engine implementation
|
||||||
│ ├── assets_src/ # Source engine assets
|
│ ├── assets_src/ # Source engine assets
|
||||||
│ └── third_party/# Vendored/submodule dependencies
|
│ └── third_party/# Vendored/submodule dependencies
|
||||||
├── editor/ # Editor library (destrum::editor), attached to a game at startup
|
|
||||||
├── docs/ # How the engine pieces work
|
|
||||||
├── lightkeeper/ # Demo/game executable using Destrum
|
├── lightkeeper/ # Demo/game executable using Destrum
|
||||||
│ ├── include/
|
│ ├── include/
|
||||||
│ ├── src/
|
│ ├── src/
|
||||||
@@ -58,8 +52,7 @@ Most dependencies are included as Git submodules:
|
|||||||
* GLM
|
* GLM
|
||||||
* nlohmann/json
|
* nlohmann/json
|
||||||
* spdlog
|
* spdlog
|
||||||
* stb (image, vorbis)
|
* stb
|
||||||
* OpenAL Soft
|
|
||||||
* tinygltf
|
* tinygltf
|
||||||
* tinyexr
|
* tinyexr
|
||||||
* Assimp
|
* Assimp
|
||||||
@@ -118,16 +111,6 @@ cmake --build build --target ValidateShaders
|
|||||||
`CookAssets` processes both engine and game assets. `CleanupAssets` removes generated runtime asset output.
|
`CookAssets` processes both engine and game assets. `CleanupAssets` removes generated runtime asset output.
|
||||||
`ValidateShaders` runs `spirv-val` over the cooked engine shaders when the Vulkan SDK provides it.
|
`ValidateShaders` runs `spirv-val` over the cooked engine shaders when the Vulkan SDK provides it.
|
||||||
|
|
||||||
Export a folder other people can run (the game, its DLLs and every cooked asset packed into one `assets.dpak`):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cmake --build build --config Release --target Export
|
|
||||||
```
|
|
||||||
|
|
||||||
It ends up in `build/export/Release/lightkeeper/`, plus a `lightkeeper.zip` next to it. On Windows, `export.bat` does
|
|
||||||
the same and opens the folder. `TheChef --list build/export/Release/lightkeeper/assets.dpak` shows what takes up the
|
|
||||||
space. See `docs/CookedAssets.md`.
|
|
||||||
|
|
||||||
Install the application, engine library, public headers, and runtime assets:
|
Install the application, engine library, public headers, and runtime assets:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -136,7 +119,7 @@ cmake --install build --config Release
|
|||||||
|
|
||||||
## Demo app
|
## Demo app
|
||||||
|
|
||||||
`lightkeeper` is the current demo application. It loads its level from `lightkeeper/assets_src/scenes/main.scene` and starts in the editor. Press F5 to play, or run `lightkeeper --game` to skip the editor. See `docs/Editor.md`.
|
`lightkeeper` is the current game application. It launches **Star Catcher**, a small playable loop built from the engine's scene and rendering systems. Move the blue catcher with `A`/`D` or the arrow keys, catch orange stars, and press `R` to restart after three misses. Press `Escape` to quit.
|
||||||
|
|
||||||
## Development notes
|
## Development notes
|
||||||
|
|
||||||
@@ -151,11 +134,9 @@ destrum::destrum
|
|||||||
Game/demo targets can link against it:
|
Game/demo targets can link against it:
|
||||||
|
|
||||||
```cmake
|
```cmake
|
||||||
target_link_libraries(my_game PRIVATE destrum::destrum destrum::editor)
|
target_link_libraries(my_game PRIVATE destrum::destrum)
|
||||||
```
|
```
|
||||||
|
|
||||||
The editor is optional, a game without it links only `destrum::destrum`.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Do what you want dawgs :pray:
|
Do what you want dawgs :pray:
|
||||||
|
|||||||
@@ -1,52 +1,11 @@
|
|||||||
add_subdirectory(third_party)
|
add_subdirectory(third_party)
|
||||||
|
|
||||||
# CPU side asset types and the cooked model format, shared with TheChef (no Vulkan / SDL dependencies)
|
|
||||||
add_library(destrum_assets
|
|
||||||
"src/Assets/ModelFile.cpp"
|
|
||||||
"src/Assets/TextureFile.cpp"
|
|
||||||
"src/Assets/PackFile.cpp"
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(destrum::assets ALIAS destrum_assets)
|
|
||||||
|
|
||||||
set_target_properties(destrum_assets PROPERTIES
|
|
||||||
CXX_STANDARD 20
|
|
||||||
CXX_EXTENSIONS OFF
|
|
||||||
)
|
|
||||||
|
|
||||||
target_include_directories(destrum_assets PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include")
|
|
||||||
|
|
||||||
target_link_libraries(destrum_assets
|
|
||||||
PUBLIC
|
|
||||||
glm::glm
|
|
||||||
assimp
|
|
||||||
spdlog::spdlog
|
|
||||||
)
|
|
||||||
|
|
||||||
target_compile_definitions(destrum_assets
|
|
||||||
PUBLIC
|
|
||||||
GLM_FORCE_CTOR_INIT
|
|
||||||
GLM_FORCE_XYZW_ONLY
|
|
||||||
GLM_FORCE_EXPLICIT_CTOR
|
|
||||||
GLM_FORCE_DEPTH_ZERO_TO_ONE
|
|
||||||
GLM_ENABLE_EXPERIMENTAL
|
|
||||||
)
|
|
||||||
|
|
||||||
set(SRC_FILES
|
set(SRC_FILES
|
||||||
"src/App.cpp"
|
"src/App.cpp"
|
||||||
"src/Event.cpp"
|
"src/Event.cpp"
|
||||||
"src/Window.cpp"
|
|
||||||
|
|
||||||
"src/Audio/AudioDecoder.cpp"
|
|
||||||
"src/Audio/AudioSystem.cpp"
|
|
||||||
|
|
||||||
"src/Components/Animator.cpp"
|
"src/Components/Animator.cpp"
|
||||||
"src/Components/AudioListener.cpp"
|
|
||||||
"src/Components/AudioSource.cpp"
|
|
||||||
"src/Components/CameraComponent.cpp"
|
|
||||||
"src/Components/LightComponent.cpp"
|
|
||||||
"src/Components/MeshRendererComponent.cpp"
|
"src/Components/MeshRendererComponent.cpp"
|
||||||
"src/Components/MeshRendererInspector.cpp"
|
|
||||||
"src/Components/Rotator.cpp"
|
"src/Components/Rotator.cpp"
|
||||||
"src/Components/Spinner.cpp"
|
"src/Components/Spinner.cpp"
|
||||||
"src/Components/OrbitAndSpin.cpp"
|
"src/Components/OrbitAndSpin.cpp"
|
||||||
@@ -55,27 +14,15 @@ set(SRC_FILES
|
|||||||
"src/Components/Physics/BoxCollider.cpp"
|
"src/Components/Physics/BoxCollider.cpp"
|
||||||
"src/Components/Physics/CapsuleCollider.cpp"
|
"src/Components/Physics/CapsuleCollider.cpp"
|
||||||
"src/Components/Physics/Collider.cpp"
|
"src/Components/Physics/Collider.cpp"
|
||||||
"src/Components/Physics/ConvexHullCollider.cpp"
|
|
||||||
"src/Components/Physics/CylinderCollider.cpp"
|
|
||||||
"src/Components/Physics/MeshCollider.cpp"
|
|
||||||
"src/Components/Physics/MeshShapeCollider.cpp"
|
|
||||||
"src/Components/Physics/SphereCollider.cpp"
|
"src/Components/Physics/SphereCollider.cpp"
|
||||||
|
|
||||||
"src/Components/UI/Canvas.cpp"
|
|
||||||
"src/Components/UI/RectTransform.cpp"
|
|
||||||
"src/Components/UI/UIImage.cpp"
|
|
||||||
"src/Components/UI/UIText.cpp"
|
|
||||||
|
|
||||||
"src/Graphics/BindlessSetManager.cpp"
|
"src/Graphics/BindlessSetManager.cpp"
|
||||||
"src/Graphics/Camera.cpp"
|
"src/Graphics/Camera.cpp"
|
||||||
"src/Graphics/DebugDraw.cpp"
|
|
||||||
"src/Graphics/DeletionQueue.cpp"
|
|
||||||
"src/Graphics/ComputePipeline.cpp"
|
"src/Graphics/ComputePipeline.cpp"
|
||||||
"src/Graphics/Frustum.cpp"
|
"src/Graphics/Frustum.cpp"
|
||||||
"src/Graphics/GfxDevice.cpp"
|
"src/Graphics/GfxDevice.cpp"
|
||||||
"src/Graphics/Caches/ImageCache.cpp"
|
"src/Graphics/Caches/ImageCache.cpp"
|
||||||
"src/Graphics/ImageLoader.cpp"
|
"src/Graphics/ImageLoader.cpp"
|
||||||
"src/Graphics/IndirectDrawList.cpp"
|
|
||||||
"src/Graphics/ImmediateExecuter.cpp"
|
"src/Graphics/ImmediateExecuter.cpp"
|
||||||
"src/Graphics/Init.cpp"
|
"src/Graphics/Init.cpp"
|
||||||
"src/Graphics/Caches/MaterialCache.cpp"
|
"src/Graphics/Caches/MaterialCache.cpp"
|
||||||
@@ -90,60 +37,39 @@ set(SRC_FILES
|
|||||||
"src/Graphics/Managers/MemoryManager.cpp"
|
"src/Graphics/Managers/MemoryManager.cpp"
|
||||||
"src/Graphics/Managers/FrameManager.cpp"
|
"src/Graphics/Managers/FrameManager.cpp"
|
||||||
"src/Graphics/Managers/ImageManager.cpp"
|
"src/Graphics/Managers/ImageManager.cpp"
|
||||||
"src/Graphics/Managers/LineRenderingManager.cpp"
|
|
||||||
"src/Graphics/Managers/Renderer2D.cpp"
|
|
||||||
|
|
||||||
"src/Graphics/Resources/GPUImage.cpp"
|
"src/Graphics/Resources/GPUImage.cpp"
|
||||||
"src/Graphics/Resources/NBuffer.cpp"
|
"src/Graphics/Resources/NBuffer.cpp"
|
||||||
"src/Graphics/Resources/Cubemap.cpp"
|
"src/Graphics/Resources/Cubemap.cpp"
|
||||||
"src/Graphics/Resources/Font.cpp"
|
|
||||||
"src/Graphics/Resources/FontCache.cpp"
|
|
||||||
"src/Graphics/Resources/PrimitiveMeshes.cpp"
|
|
||||||
|
|
||||||
"src/Graphics/Pipelines/MeshPipeline.cpp"
|
"src/Graphics/Pipelines/MeshPipeline.cpp"
|
||||||
"src/Graphics/Pipelines/LineRenderingPass.cpp"
|
|
||||||
"src/Graphics/Pipelines/Renderer2DPass.cpp"
|
|
||||||
"src/Graphics/Pipelines/SkyboxPipeline.cpp"
|
"src/Graphics/Pipelines/SkyboxPipeline.cpp"
|
||||||
"src/Graphics/Pipelines/LightCullingPipeline.cpp"
|
|
||||||
"src/Graphics/Pipelines/ShadowMapPipeline.cpp"
|
|
||||||
"src/Graphics/Pipelines/SkinningPipeline.cpp"
|
"src/Graphics/Pipelines/SkinningPipeline.cpp"
|
||||||
"src/Graphics/Pipelines/ImguiPass.cpp"
|
"src/Graphics/Pipelines/ImguiPass.cpp"
|
||||||
"src/Graphics/Pipelines/PostProcessPipeline.cpp"
|
|
||||||
|
|
||||||
"src/Input/InputManager.cpp"
|
"src/Input/InputManager.cpp"
|
||||||
|
|
||||||
"src/ObjectModel/Component.cpp"
|
"src/ObjectModel/Component.cpp"
|
||||||
"src/ObjectModel/GameObject.cpp"
|
"src/ObjectModel/GameObject.cpp"
|
||||||
"src/ObjectModel/Object.cpp"
|
"src/ObjectModel/Object.cpp"
|
||||||
"src/ObjectModel/ObjectRef.cpp"
|
|
||||||
"src/ObjectModel/Transform.cpp"
|
"src/ObjectModel/Transform.cpp"
|
||||||
|
|
||||||
"src/Scene/Scene.cpp"
|
"src/Scene/Scene.cpp"
|
||||||
"src/Scene/SceneManager.cpp"
|
"src/Scene/SceneManager.cpp"
|
||||||
"src/Scene/ModelSpawner.cpp"
|
|
||||||
"src/Scene/ResourceCollector.cpp"
|
|
||||||
|
|
||||||
"src/FS/AssetFS.cpp"
|
"src/FS/AssetFS.cpp"
|
||||||
"src/FS/Manifest.cpp"
|
"src/FS/Manifest.cpp"
|
||||||
|
|
||||||
"src/Assets/AssetManager.cpp"
|
"src/Assets/AssetManager.cpp"
|
||||||
"src/Assets/AssetDatabase.cpp"
|
|
||||||
|
|
||||||
"src/Serialization/SceneSerializer.cpp"
|
"src/Serialization/SceneSerializer.cpp"
|
||||||
"src/Serialization/ObjectSerialization.cpp"
|
|
||||||
"src/Serialization/PrefabSerializer.cpp"
|
|
||||||
"src/Serialization/MaterialSerialization.cpp"
|
|
||||||
"src/Serialization/PrefabCache.cpp"
|
|
||||||
"src/Serialization/ComponentRegistry.cpp"
|
"src/Serialization/ComponentRegistry.cpp"
|
||||||
"src/Serialization/Reflect.cpp"
|
|
||||||
|
|
||||||
"src/Util/DeltaTime.cpp"
|
"src/Util/DeltaTime.cpp"
|
||||||
"src/Util/ImGuiUtils.cpp"
|
"src/Util/ImGuiUtils.cpp"
|
||||||
|
|
||||||
"src/Threading/JobSystem.cpp"
|
|
||||||
|
|
||||||
"src/Physics/PhysicsWorld.cpp"
|
"src/Physics/PhysicsWorld.cpp"
|
||||||
"src/Physics/PhysicsMeshCache.cpp"
|
"src/Physics/SimplePhysicsWorld.cpp"
|
||||||
"src/Physics/PhysicsSceneBridge.cpp"
|
"src/Physics/PhysicsSceneBridge.cpp"
|
||||||
"src/Physics/JoltPhysicsWorld.cpp"
|
"src/Physics/JoltPhysicsWorld.cpp"
|
||||||
)
|
)
|
||||||
@@ -166,8 +92,6 @@ target_include_directories(destrum PRIVATE
|
|||||||
|
|
||||||
target_link_libraries(destrum
|
target_link_libraries(destrum
|
||||||
PUBLIC
|
PUBLIC
|
||||||
destrum_assets
|
|
||||||
|
|
||||||
volk::volk_headers
|
volk::volk_headers
|
||||||
vk-bootstrap::vk-bootstrap
|
vk-bootstrap::vk-bootstrap
|
||||||
GPUOpen::VulkanMemoryAllocator
|
GPUOpen::VulkanMemoryAllocator
|
||||||
@@ -179,15 +103,12 @@ target_link_libraries(destrum
|
|||||||
tinygltf
|
tinygltf
|
||||||
assimp
|
assimp
|
||||||
imgui
|
imgui
|
||||||
imguizmo
|
|
||||||
Jolt
|
Jolt
|
||||||
Tracy::TracyClient
|
Tracy::TracyClient
|
||||||
|
|
||||||
PRIVATE
|
PRIVATE
|
||||||
freetype::freetype
|
freetype::freetype
|
||||||
tinyexr
|
tinyexr
|
||||||
OpenAL::OpenAL
|
|
||||||
stb::vorbis
|
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_definitions(destrum
|
target_compile_definitions(destrum
|
||||||
@@ -208,6 +129,15 @@ else ()
|
|||||||
target_link_libraries(destrum PUBLIC SDL2::SDL2-static)
|
target_link_libraries(destrum PUBLIC SDL2::SDL2-static)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
target_compile_definitions(destrum
|
||||||
|
PUBLIC
|
||||||
|
GLM_FORCE_CTOR_INIT
|
||||||
|
GLM_FORCE_XYZW_ONLY
|
||||||
|
GLM_FORCE_EXPLICIT_CTOR
|
||||||
|
GLM_FORCE_DEPTH_ZERO_TO_ONE
|
||||||
|
GLM_ENABLE_EXPERIMENTAL
|
||||||
|
)
|
||||||
|
|
||||||
set(ASSETS_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_src")
|
set(ASSETS_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_src")
|
||||||
set(ASSETS_RUNTIME_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_runtime")
|
set(ASSETS_RUNTIME_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_runtime")
|
||||||
#set(OUTPUT_ENGINE_ASSETS_DIR "${CMAKE_BINARY_DIR}/assets/engine")
|
#set(OUTPUT_ENGINE_ASSETS_DIR "${CMAKE_BINARY_DIR}/assets/engine")
|
||||||
@@ -234,18 +164,11 @@ add_custom_target(_internal_cook_engine_assets
|
|||||||
COMMAND TheChef
|
COMMAND TheChef
|
||||||
--input "${ASSETS_SRC_DIR}"
|
--input "${ASSETS_SRC_DIR}"
|
||||||
--output "${ASSETS_RUNTIME_DIR}"
|
--output "${ASSETS_RUNTIME_DIR}"
|
||||||
${DESTRUM_CHEF_FLAGS}
|
--clean
|
||||||
DEPENDS TheChef ${ENGINE_ASSET_SOURCES}
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_target(_internal_validate_engine_assets
|
|
||||||
COMMAND TheChef
|
COMMAND TheChef
|
||||||
--input "${ASSETS_SRC_DIR}"
|
--input "${ASSETS_SRC_DIR}"
|
||||||
--output "${ASSETS_RUNTIME_DIR}"
|
--output "${ASSETS_RUNTIME_DIR}"
|
||||||
--validate
|
DEPENDS TheChef ${ENGINE_ASSET_SOURCES}
|
||||||
${DESTRUM_CHEF_FLAGS}
|
|
||||||
DEPENDS _internal_cook_engine_assets
|
|
||||||
VERBATIM
|
VERBATIM
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -261,7 +184,6 @@ if (SPIRV_VAL_EXECUTABLE)
|
|||||||
file(RELATIVE_PATH shader_relative "${ASSETS_SRC_DIR}" "${shader_source}")
|
file(RELATIVE_PATH shader_relative "${ASSETS_SRC_DIR}" "${shader_source}")
|
||||||
list(APPEND VALIDATE_SHADER_COMMANDS
|
list(APPEND VALIDATE_SHADER_COMMANDS
|
||||||
COMMAND "${SPIRV_VAL_EXECUTABLE}"
|
COMMAND "${SPIRV_VAL_EXECUTABLE}"
|
||||||
--target-env vulkan1.3 --scalar-block-layout
|
|
||||||
"${ASSETS_RUNTIME_DIR}/${shader_relative}.spv")
|
"${ASSETS_RUNTIME_DIR}/${shader_relative}.spv")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
@@ -299,55 +221,7 @@ function(destrum_cook_engine_assets GAME_TARGET GAME_OUTPUT_DIR)
|
|||||||
install(DIRECTORY "${_engine_runtime}/" DESTINATION "bin/assets/engine")
|
install(DIRECTORY "${_engine_runtime}/" DESTINATION "bin/assets/engine")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# A folder (and zip) other people can run: the game exe, its DLLs and every cooked asset packed into assets.dpak
|
install(TARGETS destrum
|
||||||
function(destrum_add_export GAME_TARGET GAME_RUNTIME_DIR)
|
|
||||||
set(_engine_runtime "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/assets_runtime")
|
|
||||||
set(_export_root "${CMAKE_BINARY_DIR}/export/$<CONFIG>")
|
|
||||||
set(_export_dir "${_export_root}/${GAME_TARGET}")
|
|
||||||
|
|
||||||
# The release VC++ runtime ships app-local, debug builds only run where Visual Studio is installed
|
|
||||||
set(_system_libs)
|
|
||||||
if (MSVC)
|
|
||||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
|
||||||
include(InstallRequiredSystemLibraries)
|
|
||||||
set(_system_libs "$<$<NOT:$<CONFIG:Debug>>:${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}>")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_custom_target(_internal_export_${GAME_TARGET}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E rm -rf "${_export_dir}" "${_export_dir}.zip"
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${_export_dir}"
|
|
||||||
COMMAND TheChef
|
|
||||||
--pack "${_export_dir}/assets.dpak"
|
|
||||||
--mount "engine=${_engine_runtime}"
|
|
||||||
--mount "game=${GAME_RUNTIME_DIR}"
|
|
||||||
COMMAND TheChef --list "${_export_dir}/assets.dpak" --top 10
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy -t "${_export_dir}"
|
|
||||||
"$<TARGET_FILE:${GAME_TARGET}>"
|
|
||||||
"$<TARGET_RUNTIME_DLLS:${GAME_TARGET}>"
|
|
||||||
"${_system_libs}"
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E chdir "${_export_root}"
|
|
||||||
${CMAKE_COMMAND} -E tar cf "${GAME_TARGET}.zip" --format=zip "${GAME_TARGET}"
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E echo "Exported ${GAME_TARGET} to ${_export_dir}"
|
|
||||||
COMMAND_EXPAND_LISTS
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
add_dependencies(_internal_export_${GAME_TARGET} ${GAME_TARGET})
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# OpenAL is a DLL, every exe that links the engine needs a copy next to it
|
|
||||||
function(destrum_copy_runtime_dlls TARGET)
|
|
||||||
if (WIN32)
|
|
||||||
add_custom_command(TARGET ${TARGET} POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
$<TARGET_RUNTIME_DLLS:${TARGET}> $<TARGET_FILE_DIR:${TARGET}>
|
|
||||||
COMMAND_EXPAND_LISTS
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
install(FILES $<TARGET_FILE:OpenAL::OpenAL> DESTINATION bin)
|
|
||||||
|
|
||||||
install(TARGETS destrum destrum_assets
|
|
||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION lib
|
||||||
LIBRARY DESTINATION lib
|
LIBRARY DESTINATION lib
|
||||||
RUNTIME DESTINATION bin)
|
RUNTIME DESTINATION bin)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.3 MiB |
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"allowFallback": [
|
|
||||||
"run.fbx"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"guid": "a09100c14a67b3840518b68b93fbadda"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 3.1 MiB |
@@ -1,712 +0,0 @@
|
|||||||
{
|
|
||||||
"asset": {
|
|
||||||
"version": "2.0",
|
|
||||||
"generator": "babylon.js glTF exporter for Maya 2018 v20200228.3 (with minor hand modifications)"
|
|
||||||
},
|
|
||||||
"extensionsUsed": [
|
|
||||||
"KHR_materials_transmission"
|
|
||||||
],
|
|
||||||
"scene": 0,
|
|
||||||
"scenes": [
|
|
||||||
{
|
|
||||||
"nodes": [
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"nodes": [
|
|
||||||
{
|
|
||||||
"mesh": 0,
|
|
||||||
"name": "Hose_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mesh": 1,
|
|
||||||
"name": "RubberWood_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mesh": 2,
|
|
||||||
"name": "GlassPlastic_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mesh": 3,
|
|
||||||
"name": "MetalParts_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mesh": 4,
|
|
||||||
"name": "LeatherParts_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mesh": 5,
|
|
||||||
"name": "Lenses_low"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"meshes": [
|
|
||||||
{
|
|
||||||
"primitives": [
|
|
||||||
{
|
|
||||||
"attributes": {
|
|
||||||
"POSITION": 1,
|
|
||||||
"TANGENT": 2,
|
|
||||||
"NORMAL": 3,
|
|
||||||
"TEXCOORD_0": 4
|
|
||||||
},
|
|
||||||
"indices": 0,
|
|
||||||
"material": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "Hose_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"primitives": [
|
|
||||||
{
|
|
||||||
"attributes": {
|
|
||||||
"POSITION": 6,
|
|
||||||
"TANGENT": 7,
|
|
||||||
"NORMAL": 8,
|
|
||||||
"TEXCOORD_0": 9
|
|
||||||
},
|
|
||||||
"indices": 5,
|
|
||||||
"material": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "RubberWood_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"primitives": [
|
|
||||||
{
|
|
||||||
"attributes": {
|
|
||||||
"POSITION": 11,
|
|
||||||
"TANGENT": 12,
|
|
||||||
"NORMAL": 13,
|
|
||||||
"TEXCOORD_0": 14
|
|
||||||
},
|
|
||||||
"indices": 10,
|
|
||||||
"material": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "GlassPlastic_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"primitives": [
|
|
||||||
{
|
|
||||||
"attributes": {
|
|
||||||
"POSITION": 16,
|
|
||||||
"TANGENT": 17,
|
|
||||||
"NORMAL": 18,
|
|
||||||
"TEXCOORD_0": 19
|
|
||||||
},
|
|
||||||
"indices": 15,
|
|
||||||
"material": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "MetalParts_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"primitives": [
|
|
||||||
{
|
|
||||||
"attributes": {
|
|
||||||
"POSITION": 21,
|
|
||||||
"TANGENT": 22,
|
|
||||||
"NORMAL": 23,
|
|
||||||
"TEXCOORD_0": 24
|
|
||||||
},
|
|
||||||
"indices": 20,
|
|
||||||
"material": 4
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "LeatherParts_low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"primitives": [
|
|
||||||
{
|
|
||||||
"attributes": {
|
|
||||||
"POSITION": 26,
|
|
||||||
"TANGENT": 27,
|
|
||||||
"NORMAL": 28,
|
|
||||||
"TEXCOORD_0": 29
|
|
||||||
},
|
|
||||||
"indices": 25,
|
|
||||||
"material": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "Lenses_low"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"accessors": [
|
|
||||||
{
|
|
||||||
"bufferView": 0,
|
|
||||||
"componentType": 5123,
|
|
||||||
"count": 59040,
|
|
||||||
"type": "SCALAR",
|
|
||||||
"name": "accessorIndices"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 10472,
|
|
||||||
"max": [
|
|
||||||
0.10810829,
|
|
||||||
0.356580257,
|
|
||||||
0.190409869
|
|
||||||
],
|
|
||||||
"min": [
|
|
||||||
-0.07221258,
|
|
||||||
0.104120225,
|
|
||||||
-0.088394776
|
|
||||||
],
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorPositions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 2,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 10472,
|
|
||||||
"type": "VEC4",
|
|
||||||
"name": "accessorTangents"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 125664,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 10472,
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorNormals"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 3,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 10472,
|
|
||||||
"type": "VEC2",
|
|
||||||
"name": "accessorUVs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 0,
|
|
||||||
"byteOffset": 118080,
|
|
||||||
"componentType": 5123,
|
|
||||||
"count": 72534,
|
|
||||||
"type": "SCALAR",
|
|
||||||
"name": "accessorIndices"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 251328,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13638,
|
|
||||||
"max": [
|
|
||||||
0.162940636,
|
|
||||||
0.7025226,
|
|
||||||
0.200029165
|
|
||||||
],
|
|
||||||
"min": [
|
|
||||||
-0.158857465,
|
|
||||||
-2.14242937E-05,
|
|
||||||
-0.171545789
|
|
||||||
],
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorPositions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 2,
|
|
||||||
"byteOffset": 167552,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13638,
|
|
||||||
"type": "VEC4",
|
|
||||||
"name": "accessorTangents"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 414984,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13638,
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorNormals"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 3,
|
|
||||||
"byteOffset": 83776,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13638,
|
|
||||||
"type": "VEC2",
|
|
||||||
"name": "accessorUVs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 0,
|
|
||||||
"byteOffset": 263148,
|
|
||||||
"componentType": 5123,
|
|
||||||
"count": 24408,
|
|
||||||
"type": "SCALAR",
|
|
||||||
"name": "accessorIndices"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 578640,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 4676,
|
|
||||||
"max": [
|
|
||||||
0.140494063,
|
|
||||||
0.61828655,
|
|
||||||
0.147373646
|
|
||||||
],
|
|
||||||
"min": [
|
|
||||||
-0.140846014,
|
|
||||||
0.440957,
|
|
||||||
-0.107818365
|
|
||||||
],
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorPositions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 2,
|
|
||||||
"byteOffset": 385760,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 4676,
|
|
||||||
"type": "VEC4",
|
|
||||||
"name": "accessorTangents"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 634752,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 4676,
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorNormals"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 3,
|
|
||||||
"byteOffset": 192880,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 4676,
|
|
||||||
"type": "VEC2",
|
|
||||||
"name": "accessorUVs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 0,
|
|
||||||
"byteOffset": 311964,
|
|
||||||
"componentType": 5123,
|
|
||||||
"count": 60288,
|
|
||||||
"type": "SCALAR",
|
|
||||||
"name": "accessorIndices"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 690864,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13636,
|
|
||||||
"max": [
|
|
||||||
0.132708371,
|
|
||||||
0.6024364,
|
|
||||||
0.199477077
|
|
||||||
],
|
|
||||||
"min": [
|
|
||||||
-0.203642711,
|
|
||||||
0.02116075,
|
|
||||||
-0.147512689
|
|
||||||
],
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorPositions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 2,
|
|
||||||
"byteOffset": 460576,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13636,
|
|
||||||
"type": "VEC4",
|
|
||||||
"name": "accessorTangents"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 854496,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13636,
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorNormals"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 3,
|
|
||||||
"byteOffset": 230288,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 13636,
|
|
||||||
"type": "VEC2",
|
|
||||||
"name": "accessorUVs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 0,
|
|
||||||
"byteOffset": 432540,
|
|
||||||
"componentType": 5123,
|
|
||||||
"count": 65688,
|
|
||||||
"type": "SCALAR",
|
|
||||||
"name": "accessorIndices"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 1018128,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 12534,
|
|
||||||
"max": [
|
|
||||||
0.124933377,
|
|
||||||
0.716000438,
|
|
||||||
0.129168555
|
|
||||||
],
|
|
||||||
"min": [
|
|
||||||
-0.125863016,
|
|
||||||
0.2958266,
|
|
||||||
-0.1541516
|
|
||||||
],
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorPositions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 2,
|
|
||||||
"byteOffset": 678752,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 12534,
|
|
||||||
"type": "VEC4",
|
|
||||||
"name": "accessorTangents"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 1168536,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 12534,
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorNormals"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 3,
|
|
||||||
"byteOffset": 339376,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 12534,
|
|
||||||
"type": "VEC2",
|
|
||||||
"name": "accessorUVs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 0,
|
|
||||||
"byteOffset": 563916,
|
|
||||||
"componentType": 5123,
|
|
||||||
"count": 2208,
|
|
||||||
"type": "SCALAR",
|
|
||||||
"name": "accessorIndices"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 1318944,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 436,
|
|
||||||
"max": [
|
|
||||||
0.101920746,
|
|
||||||
0.5936986,
|
|
||||||
0.152926728
|
|
||||||
],
|
|
||||||
"min": [
|
|
||||||
-0.101920947,
|
|
||||||
0.5300429,
|
|
||||||
0.090174824
|
|
||||||
],
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorPositions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 2,
|
|
||||||
"byteOffset": 879296,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 436,
|
|
||||||
"type": "VEC4",
|
|
||||||
"name": "accessorTangents"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 1,
|
|
||||||
"byteOffset": 1324176,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 436,
|
|
||||||
"type": "VEC3",
|
|
||||||
"name": "accessorNormals"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView": 3,
|
|
||||||
"byteOffset": 439648,
|
|
||||||
"componentType": 5126,
|
|
||||||
"count": 436,
|
|
||||||
"type": "VEC2",
|
|
||||||
"name": "accessorUVs"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"bufferViews": [
|
|
||||||
{
|
|
||||||
"buffer": 0,
|
|
||||||
"byteLength": 568332,
|
|
||||||
"name": "bufferViewScalar"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"buffer": 0,
|
|
||||||
"byteOffset": 568332,
|
|
||||||
"byteLength": 1329408,
|
|
||||||
"byteStride": 12,
|
|
||||||
"name": "bufferViewFloatVec3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"buffer": 0,
|
|
||||||
"byteOffset": 1897740,
|
|
||||||
"byteLength": 886272,
|
|
||||||
"byteStride": 16,
|
|
||||||
"name": "bufferViewFloatVec4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"buffer": 0,
|
|
||||||
"byteOffset": 2784012,
|
|
||||||
"byteLength": 443136,
|
|
||||||
"byteStride": 8,
|
|
||||||
"name": "bufferViewFloatVec2"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buffers": [
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet.bin",
|
|
||||||
"byteLength": 3227148
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"materials": [
|
|
||||||
{
|
|
||||||
"pbrMetallicRoughness": {
|
|
||||||
"baseColorTexture": {
|
|
||||||
"index": 2
|
|
||||||
},
|
|
||||||
"metallicRoughnessTexture": {
|
|
||||||
"index": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"normalTexture": {
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
"occlusionTexture": {
|
|
||||||
"index": 1
|
|
||||||
},
|
|
||||||
"doubleSided": true,
|
|
||||||
"name": "HoseMat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pbrMetallicRoughness": {
|
|
||||||
"baseColorTexture": {
|
|
||||||
"index": 2
|
|
||||||
},
|
|
||||||
"metallicRoughnessTexture": {
|
|
||||||
"index": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"normalTexture": {
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
"occlusionTexture": {
|
|
||||||
"index": 1
|
|
||||||
},
|
|
||||||
"name": "RubberWoodMat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pbrMetallicRoughness": {
|
|
||||||
"baseColorTexture": {
|
|
||||||
"index": 5
|
|
||||||
},
|
|
||||||
"metallicRoughnessTexture": {
|
|
||||||
"index": 4
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"normalTexture": {
|
|
||||||
"index": 3
|
|
||||||
},
|
|
||||||
"occlusionTexture": {
|
|
||||||
"index": 4
|
|
||||||
},
|
|
||||||
"name": "GlassPlasticMat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pbrMetallicRoughness": {
|
|
||||||
"baseColorTexture": {
|
|
||||||
"index": 8
|
|
||||||
},
|
|
||||||
"metallicRoughnessTexture": {
|
|
||||||
"index": 7
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"normalTexture": {
|
|
||||||
"index": 6
|
|
||||||
},
|
|
||||||
"occlusionTexture": {
|
|
||||||
"index": 7
|
|
||||||
},
|
|
||||||
"name": "MetalPartsMat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pbrMetallicRoughness": {
|
|
||||||
"baseColorTexture": {
|
|
||||||
"index": 11
|
|
||||||
},
|
|
||||||
"metallicRoughnessTexture": {
|
|
||||||
"index": 10
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"normalTexture": {
|
|
||||||
"index": 9
|
|
||||||
},
|
|
||||||
"occlusionTexture": {
|
|
||||||
"index": 10
|
|
||||||
},
|
|
||||||
"name": "LeatherPartsMat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"extensions": {
|
|
||||||
"KHR_materials_transmission": {
|
|
||||||
"transmissionFactor": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pbrMetallicRoughness": {
|
|
||||||
"baseColorTexture": {
|
|
||||||
"index": 14
|
|
||||||
},
|
|
||||||
"metallicRoughnessTexture": {
|
|
||||||
"index": 13
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"normalTexture": {
|
|
||||||
"index": 12
|
|
||||||
},
|
|
||||||
"occlusionTexture": {
|
|
||||||
"index": 13
|
|
||||||
},
|
|
||||||
"name": "LensesMat"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"textures": [
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 0,
|
|
||||||
"name": "FlightHelmet_Materials_RubberWoodMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 1,
|
|
||||||
"name": "FlightHelmet_Materials_RubberWoodMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 2,
|
|
||||||
"name": "FlightHelmet_Materials_RubberWoodMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 3,
|
|
||||||
"name": "FlightHelmet_Materials_GlassPlasticMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 4,
|
|
||||||
"name": "FlightHelmet_Materials_GlassPlasticMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 5,
|
|
||||||
"name": "FlightHelmet_Materials_GlassPlasticMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 6,
|
|
||||||
"name": "FlightHelmet_Materials_MetalPartsMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 7,
|
|
||||||
"name": "FlightHelmet_Materials_MetalPartsMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 8,
|
|
||||||
"name": "FlightHelmet_Materials_MetalPartsMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 9,
|
|
||||||
"name": "FlightHelmet_Materials_LeatherPartsMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 10,
|
|
||||||
"name": "FlightHelmet_Materials_LeatherPartsMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 11,
|
|
||||||
"name": "FlightHelmet_Materials_LeatherPartsMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 12,
|
|
||||||
"name": "FlightHelmet_Materials_LensesMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 13,
|
|
||||||
"name": "FlightHelmet_Materials_LensesMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sampler": 0,
|
|
||||||
"source": 14,
|
|
||||||
"name": "FlightHelmet_Materials_LensesMat_BaseColor.png"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"images": [
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_RubberWoodMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_RubberWoodMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_RubberWoodMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_GlassPlasticMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_GlassPlasticMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_GlassPlasticMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_MetalPartsMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_MetalPartsMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_MetalPartsMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_LeatherPartsMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_LeatherPartsMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_LeatherPartsMat_BaseColor.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_LensesMat_Normal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_LensesMat_OcclusionRoughMetal.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uri": "FlightHelmet_Materials_LensesMat_BaseColor.png"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"samplers": [
|
|
||||||
{
|
|
||||||
"magFilter": 9729,
|
|
||||||
"minFilter": 9987
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"guid": "0407d177c8487bca092ffb7fd4d47aa2"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 2.5 MiB |
|
Before Width: | Height: | Size: 3.5 MiB |
|
Before Width: | Height: | Size: 5.2 MiB |
|
Before Width: | Height: | Size: 5.4 MiB |
|
Before Width: | Height: | Size: 4.2 MiB |
|
Before Width: | Height: | Size: 680 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 588 KiB |
|
Before Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 3.4 MiB |
|
Before Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 3.6 MiB |
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"guid": "78d91a725664c8b815531d55bc62683f"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 637 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 637 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 637 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 637 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 637 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |