Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08a6df4e68 |
@@ -8,6 +8,3 @@ lightkeeper/assets_runtime
|
||||
.idea/**
|
||||
|
||||
build/**
|
||||
|
||||
CLAUDE.md
|
||||
docs/**
|
||||
|
||||
@@ -44,16 +44,9 @@
|
||||
[submodule "destrum/third_party/imgui"]
|
||||
path = destrum/third_party/imgui
|
||||
url = https://github.com/ocornut/imgui.git
|
||||
branch = docking
|
||||
[submodule "destrum/third_party/jolt"]
|
||||
path = destrum/third_party/jolt
|
||||
url = https://github.com/jrouwe/JoltPhysics.git
|
||||
[submodule "destrum/third_party/tracy"]
|
||||
path = destrum/third_party/tracy
|
||||
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)
|
||||
|
||||
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)
|
||||
if (NOT DESTRUM_ENABLE_WARNINGS)
|
||||
@@ -33,7 +27,6 @@ if (MSVC)
|
||||
endif()
|
||||
|
||||
add_subdirectory(destrum)
|
||||
add_subdirectory(editor)
|
||||
add_subdirectory(lightkeeper)
|
||||
add_subdirectory(TheChef)
|
||||
|
||||
@@ -42,9 +35,7 @@ if (TARGET _internal_validate_engine_shaders)
|
||||
add_dependencies(ValidateShaders _internal_validate_engine_shaders)
|
||||
endif()
|
||||
|
||||
destrum_enable_warnings(destrum_assets)
|
||||
destrum_enable_warnings(destrum)
|
||||
destrum_enable_warnings(destrum_editor)
|
||||
destrum_enable_warnings(lightkeeper)
|
||||
|
||||
add_custom_target(CleanupAssets
|
||||
@@ -61,19 +52,10 @@ add_dependencies(CookAssets
|
||||
_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)
|
||||
|
||||
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
|
||||
-fsanitize=address,undefined
|
||||
-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
|
||||
* Skybox/cubemap rendering
|
||||
* 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
|
||||
|
||||
## Repository layout
|
||||
@@ -28,8 +24,6 @@ Destrum is a C++20 Vulkan rendering/game-engine playground. It contains the core
|
||||
│ ├── src/ # Engine implementation
|
||||
│ ├── assets_src/ # Source engine assets
|
||||
│ └── 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
|
||||
│ ├── include/
|
||||
│ ├── src/
|
||||
@@ -58,8 +52,7 @@ Most dependencies are included as Git submodules:
|
||||
* GLM
|
||||
* nlohmann/json
|
||||
* spdlog
|
||||
* stb (image, vorbis)
|
||||
* OpenAL Soft
|
||||
* stb
|
||||
* tinygltf
|
||||
* tinyexr
|
||||
* Assimp
|
||||
@@ -118,16 +111,6 @@ cmake --build build --target ValidateShaders
|
||||
`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.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
@@ -136,7 +119,7 @@ cmake --install build --config Release
|
||||
|
||||
## 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
|
||||
|
||||
@@ -151,11 +134,9 @@ destrum::destrum
|
||||
Game/demo targets can link against it:
|
||||
|
||||
```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
|
||||
|
||||
Do what you want dawgs :pray:
|
||||
|
||||
@@ -1,52 +1,11 @@
|
||||
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
|
||||
"src/App.cpp"
|
||||
"src/Event.cpp"
|
||||
"src/Window.cpp"
|
||||
|
||||
"src/Audio/AudioDecoder.cpp"
|
||||
"src/Audio/AudioSystem.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/MeshRendererInspector.cpp"
|
||||
"src/Components/Rotator.cpp"
|
||||
"src/Components/Spinner.cpp"
|
||||
"src/Components/OrbitAndSpin.cpp"
|
||||
@@ -55,27 +14,15 @@ set(SRC_FILES
|
||||
"src/Components/Physics/BoxCollider.cpp"
|
||||
"src/Components/Physics/CapsuleCollider.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/UI/Canvas.cpp"
|
||||
"src/Components/UI/RectTransform.cpp"
|
||||
"src/Components/UI/UIImage.cpp"
|
||||
"src/Components/UI/UIText.cpp"
|
||||
|
||||
"src/Graphics/BindlessSetManager.cpp"
|
||||
"src/Graphics/Camera.cpp"
|
||||
"src/Graphics/DebugDraw.cpp"
|
||||
"src/Graphics/DeletionQueue.cpp"
|
||||
"src/Graphics/ComputePipeline.cpp"
|
||||
"src/Graphics/Frustum.cpp"
|
||||
"src/Graphics/GfxDevice.cpp"
|
||||
"src/Graphics/Caches/ImageCache.cpp"
|
||||
"src/Graphics/ImageLoader.cpp"
|
||||
"src/Graphics/IndirectDrawList.cpp"
|
||||
"src/Graphics/ImmediateExecuter.cpp"
|
||||
"src/Graphics/Init.cpp"
|
||||
"src/Graphics/Caches/MaterialCache.cpp"
|
||||
@@ -90,60 +37,39 @@ set(SRC_FILES
|
||||
"src/Graphics/Managers/MemoryManager.cpp"
|
||||
"src/Graphics/Managers/FrameManager.cpp"
|
||||
"src/Graphics/Managers/ImageManager.cpp"
|
||||
"src/Graphics/Managers/LineRenderingManager.cpp"
|
||||
"src/Graphics/Managers/Renderer2D.cpp"
|
||||
|
||||
"src/Graphics/Resources/GPUImage.cpp"
|
||||
"src/Graphics/Resources/NBuffer.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/LineRenderingPass.cpp"
|
||||
"src/Graphics/Pipelines/Renderer2DPass.cpp"
|
||||
"src/Graphics/Pipelines/SkyboxPipeline.cpp"
|
||||
"src/Graphics/Pipelines/LightCullingPipeline.cpp"
|
||||
"src/Graphics/Pipelines/ShadowMapPipeline.cpp"
|
||||
"src/Graphics/Pipelines/SkinningPipeline.cpp"
|
||||
"src/Graphics/Pipelines/ImguiPass.cpp"
|
||||
"src/Graphics/Pipelines/PostProcessPipeline.cpp"
|
||||
|
||||
"src/Input/InputManager.cpp"
|
||||
|
||||
"src/ObjectModel/Component.cpp"
|
||||
"src/ObjectModel/GameObject.cpp"
|
||||
"src/ObjectModel/Object.cpp"
|
||||
"src/ObjectModel/ObjectRef.cpp"
|
||||
"src/ObjectModel/Transform.cpp"
|
||||
|
||||
"src/Scene/Scene.cpp"
|
||||
"src/Scene/SceneManager.cpp"
|
||||
"src/Scene/ModelSpawner.cpp"
|
||||
"src/Scene/ResourceCollector.cpp"
|
||||
|
||||
"src/FS/AssetFS.cpp"
|
||||
"src/FS/Manifest.cpp"
|
||||
|
||||
"src/Assets/AssetManager.cpp"
|
||||
"src/Assets/AssetDatabase.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/Reflect.cpp"
|
||||
|
||||
"src/Util/DeltaTime.cpp"
|
||||
"src/Util/ImGuiUtils.cpp"
|
||||
|
||||
"src/Threading/JobSystem.cpp"
|
||||
|
||||
"src/Physics/PhysicsWorld.cpp"
|
||||
"src/Physics/PhysicsMeshCache.cpp"
|
||||
"src/Physics/SimplePhysicsWorld.cpp"
|
||||
"src/Physics/PhysicsSceneBridge.cpp"
|
||||
"src/Physics/JoltPhysicsWorld.cpp"
|
||||
)
|
||||
@@ -166,8 +92,6 @@ target_include_directories(destrum PRIVATE
|
||||
|
||||
target_link_libraries(destrum
|
||||
PUBLIC
|
||||
destrum_assets
|
||||
|
||||
volk::volk_headers
|
||||
vk-bootstrap::vk-bootstrap
|
||||
GPUOpen::VulkanMemoryAllocator
|
||||
@@ -179,15 +103,12 @@ target_link_libraries(destrum
|
||||
tinygltf
|
||||
assimp
|
||||
imgui
|
||||
imguizmo
|
||||
Jolt
|
||||
Tracy::TracyClient
|
||||
|
||||
PRIVATE
|
||||
freetype::freetype
|
||||
tinyexr
|
||||
OpenAL::OpenAL
|
||||
stb::vorbis
|
||||
)
|
||||
|
||||
target_compile_definitions(destrum
|
||||
@@ -208,6 +129,15 @@ else ()
|
||||
target_link_libraries(destrum PUBLIC SDL2::SDL2-static)
|
||||
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_RUNTIME_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_runtime")
|
||||
#set(OUTPUT_ENGINE_ASSETS_DIR "${CMAKE_BINARY_DIR}/assets/engine")
|
||||
@@ -234,18 +164,11 @@ add_custom_target(_internal_cook_engine_assets
|
||||
COMMAND TheChef
|
||||
--input "${ASSETS_SRC_DIR}"
|
||||
--output "${ASSETS_RUNTIME_DIR}"
|
||||
${DESTRUM_CHEF_FLAGS}
|
||||
DEPENDS TheChef ${ENGINE_ASSET_SOURCES}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(_internal_validate_engine_assets
|
||||
--clean
|
||||
COMMAND TheChef
|
||||
--input "${ASSETS_SRC_DIR}"
|
||||
--output "${ASSETS_RUNTIME_DIR}"
|
||||
--validate
|
||||
${DESTRUM_CHEF_FLAGS}
|
||||
DEPENDS _internal_cook_engine_assets
|
||||
DEPENDS TheChef ${ENGINE_ASSET_SOURCES}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
@@ -261,7 +184,6 @@ if (SPIRV_VAL_EXECUTABLE)
|
||||
file(RELATIVE_PATH shader_relative "${ASSETS_SRC_DIR}" "${shader_source}")
|
||||
list(APPEND VALIDATE_SHADER_COMMANDS
|
||||
COMMAND "${SPIRV_VAL_EXECUTABLE}"
|
||||
--target-env vulkan1.3 --scalar-block-layout
|
||||
"${ASSETS_RUNTIME_DIR}/${shader_relative}.spv")
|
||||
endforeach()
|
||||
|
||||
@@ -299,55 +221,7 @@ function(destrum_cook_engine_assets GAME_TARGET GAME_OUTPUT_DIR)
|
||||
install(DIRECTORY "${_engine_runtime}/" DESTINATION "bin/assets/engine")
|
||||
endfunction()
|
||||
|
||||
# A folder (and zip) other people can run: the game exe, its DLLs and every cooked asset packed into assets.dpak
|
||||
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
|
||||
install(TARGETS destrum
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib
|
||||
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 |