Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
a400be8
KTX library to generate and load ktx files.
Williscool13 May 19, 2025
f9afafd
Update and manage shaderc and sdl versions.
Williscool13 May 19, 2025
465f030
Fix map destructor issues and null references with the terrain compon…
Williscool13 May 20, 2025
65ae4b4
Improvements to multi-mesh component serialization. Improvements to m…
Williscool13 May 20, 2025
a35f819
KTX texture loading (if format unsupported) WIP1.
Williscool13 May 20, 2025
5540e97
Sponza-ktx ktx texture loading WIP2
Williscool13 May 21, 2025
c46b79e
Load and transcode ktx textures.
Williscool13 May 24, 2025
c67a35d
Major resource lifetime management rework. Compiles but crashes after…
Williscool13 May 25, 2025
7e9b358
Fix remaining crashing issues and un-deleted resources.
Williscool13 May 25, 2025
3cfa4c6
model util cleanup.
Williscool13 May 26, 2025
59b291b
Resource rework v2 WIP1
Williscool13 May 27, 2025
fec69bb
Resource rework v2 WIP2
Williscool13 May 28, 2025
8d57177
Resource rework v2 WIP3.
Williscool13 May 29, 2025
3c445fb
Resource rework v2 WIP4. Engine cleared.
Williscool13 May 30, 2025
7ecaea4
Resource rework v2 WIP4. Environment cleared.
Williscool13 May 30, 2025
1fd2796
Resource rework v2 WIP5. Render Object cleared.
Williscool13 May 30, 2025
e75d603
Resource rework v2 WIP5. Most pipelines cleared.
Williscool13 May 30, 2025
ddef36d
Resource rework v2 WIP6. Remaining pipelines cleared.
Williscool13 May 31, 2025
20f5655
Resource rework v2 WIP6. Unique Ptr refactor concluded.
Williscool13 May 31, 2025
0e7f6bf
Shader module unique ptr refactor.
Williscool13 Jun 1, 2025
1529538
Ktx loading without errors (still wrong visually).
Williscool13 Jun 1, 2025
7e0e02b
KTX image loading WIP.
Williscool13 Jun 2, 2025
64600b5
Attempt UV decoding (fail).
Williscool13 Jun 2, 2025
d96897e
Basic uv decompression/dequantization.
Williscool13 Jun 3, 2025
c557cba
Expanded material properties to support the many properties of gltf t…
Williscool13 Jun 3, 2025
6e4b18a
Improve ktx parsing for vector, memory, and file.
Williscool13 Jun 4, 2025
dee8018
Remove unnecessary color space conversion in deferred mrt
Williscool13 Jun 5, 2025
1ec3672
Additional details on gltf spec and SRGB conventions for color textures.
Williscool13 Jun 16, 2025
a147a5a
Fix release compilation issues.
Williscool13 Jun 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 50 additions & 22 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ find_library(SDL3_LIBRARIES
REQUIRED
)

find_library(KTX_LIBRARIES
NAMES ktx${LIB_SUFFIX}
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/lib
REQUIRED
)

add_subdirectory(extern/fmt)
add_subdirectory(extern/fastgltf)
add_subdirectory(extern/fastgltf/deps) # simdjson
Expand Down Expand Up @@ -163,13 +169,10 @@ set(RENDERER_SOURCES
src/engine/renderer/environment/environment.cpp
src/engine/renderer/environment/environment.h
src/engine/renderer/environment/environment_constants.h
src/engine/renderer/environment/environment_types.h
src/engine/renderer/pipelines/geometry/deferred_mrt/deferred_mrt_pipeline.cpp
src/engine/renderer/pipelines/geometry/deferred_mrt/deferred_mrt_pipeline.h
src/engine/renderer/pipelines/geometry/deferred_mrt/deferred_mrt_pipeline_types.h
src/engine/renderer/pipelines/geometry/deferred_resolve/deferred_resolve_pipeline.cpp
src/engine/renderer/pipelines/geometry/deferred_resolve/deferred_resolve_pipeline.h
src/engine/renderer/pipelines/geometry/deferred_resolve/deferred_resolve_pipeline_types.h
src/engine/renderer/pipelines/geometry/environment/environment_pipeline.cpp
src/engine/renderer/pipelines/geometry/environment/environment_pipeline.h
src/engine/renderer/pipelines/post/post_process/post_process_pipeline.cpp
Expand All @@ -187,14 +190,14 @@ set(RENDERER_SOURCES
src/engine/renderer/pipelines/shadows/cascaded_shadow_map/cascaded_shadow_map.cpp
src/engine/renderer/pipelines/shadows/cascaded_shadow_map/cascaded_shadow_map.h
src/engine/renderer/pipelines/shadows/cascaded_shadow_map/shadow_types.h
src/engine/renderer/descriptor_buffer/descriptor_buffer.cpp
src/engine/renderer/descriptor_buffer/descriptor_buffer.h
src/engine/renderer/descriptor_buffer/descriptor_buffer_sampler.cpp
src/engine/renderer/descriptor_buffer/descriptor_buffer_sampler.h
src/engine/renderer/descriptor_buffer/descriptor_buffer_types.cpp
src/engine/renderer/descriptor_buffer/descriptor_buffer_types.h
src/engine/renderer/descriptor_buffer/descriptor_buffer_uniform.cpp
src/engine/renderer/descriptor_buffer/descriptor_buffer_uniform.h
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer.cpp
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer.h
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer_sampler.cpp
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer_sampler.h
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer_types.cpp
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer_types.h
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer_uniform.cpp
src/engine/renderer/resources/descriptor_buffer/descriptor_buffer_uniform.h
src/engine/renderer/assets/render_object/render_object_constants.h
)

Expand Down Expand Up @@ -270,18 +273,36 @@ set(TEMP_SOURCES
src/engine/renderer/pipelines/shadows/contact_shadow/contact_shadows_pipeline.cpp
src/engine/renderer/pipelines/shadows/contact_shadow/contact_shadows_pipeline.h
src/engine/renderer/pipelines/shadows/contact_shadow/contact_shadows_pipeline_types.h
src/engine/renderer/pipelines/geometry/environment/environment_pipeline_types.h
src/engine/renderer/pipelines/basic/basic_render/basic_render_pipeline_types.h
src/engine/renderer/pipelines/post/post_process/post_process_pipeline_types.h
src/engine/renderer/pipelines/post/temporal_antialiasing/temporal_antialiasing_pipeline_types.h
src/engine/renderer/pipelines/geometry/terrain/terrain_pipeline_types.h
src/engine/renderer/pipelines/geometry/transparent_pipeline/transparent_pipeline_types.h
src/engine/renderer/pipelines/basic/basic_compute/basic_compute_pipeline_types.h
src/engine/renderer/pipelines/visibility_pass/visibility_pass_pipeline_types.h
src/engine/renderer/pipelines/debug/debug_renderer_types.h
src/engine/core/game_object/game_object_factory.cpp
src/engine/core/game_object/game_object_factory.h
src/engine/renderer/pipelines/debug/debug_highlight_types.h
src/engine/renderer/resources/vulkan_resource.cpp
src/engine/renderer/resources/vulkan_resource.h
src/engine/renderer/resources/buffer.cpp
src/engine/renderer/resources/buffer.h
src/engine/renderer/resources/sampler.cpp
src/engine/renderer/resources/sampler.h
src/engine/renderer/resources/pipeline.cpp
src/engine/renderer/resources/pipeline.h
src/engine/renderer/resources/pipeline_layout.cpp
src/engine/renderer/resources/pipeline_layout.h
src/engine/renderer/resources/descriptor_set_layout.cpp
src/engine/renderer/resources/descriptor_set_layout.h
src/engine/renderer/resources/image_view.cpp
src/engine/renderer/resources/image_view.h
src/engine/renderer/resources/image_resource.cpp
src/engine/renderer/resources/image_resource.h
src/engine/renderer/resources/image.cpp
src/engine/renderer/resources/image.h
src/engine/renderer/resources/image_ktx.cpp
src/engine/renderer/resources/image_ktx.h
src/engine/renderer/resources/resources_fwd.cpp
src/engine/renderer/resources/resources_fwd.h
src/engine/renderer/resources/shader_module.cpp
src/engine/renderer/resources/shader_module.h
)

add_executable(WillEngine main.cpp
Expand All @@ -304,27 +325,34 @@ target_include_directories(WillEngine PRIVATE
${IMGUI_DIR} # ImGui
${IMGUI_DIR}/backends # ImGui backends
${CMAKE_CURRENT_SOURCE_DIR}/extern/
${CMAKE_CURRENT_SOURCE_DIR}/extern/JoltPhysics
${CMAKE_CURRENT_SOURCE_DIR}/extern/JoltPhysics # Jolt Physics
${CMAKE_CURRENT_SOURCE_DIR}/extern/shaderc # ShaderC
${CMAKE_CURRENT_SOURCE_DIR}/extern/SDL3 # SDL2
${CMAKE_CURRENT_SOURCE_DIR}/extern/fastgltf/include # fastgltf
${CMAKE_CURRENT_SOURCE_DIR}/extern/fastgltf/deps/simdjson # simdjson
${CMAKE_CURRENT_SOURCE_DIR}/extern/FastNoiseLite

${CMAKE_CURRENT_SOURCE_DIR}/extern/FastNoiseLite # FastNoiseLite
${CMAKE_CURRENT_SOURCE_DIR}/extern/ktx
)

target_link_libraries(WillEngine PRIVATE
${SDL3_LIBRARIES}
${VOLK_LIBRARIES}
${SHADERC_LIBRARIES}
${KTX_LIBRARIES}
fmt::fmt
fastgltf
Jolt
)

set(SDL_DLL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/lib/SDL3${LIB_SUFFIX}.dll")
set(SDL_DLL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/lib/SDL3.dll")

add_custom_command(TARGET WillEngine POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${SDL_DLL_PATH} $<TARGET_FILE_DIR:WillEngine>
)

set(KTX_DLL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/lib/ktx.dll")

add_custom_command(TARGET WillEngine POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${KTX_DLL_PATH} $<TARGET_FILE_DIR:WillEngine>
)
207 changes: 207 additions & 0 deletions assets/maps/newMap.willmap
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
{
"version": {
"major": 0,
"minor": 1,
"patch": 0
},
"metadata": {
"name": "newMap",
"created": "2025-06-02 18:35:06",
"formatVersion": 1
},
"rootComponents": {
"TerrainComponent": {
"terrain": {
"bIsGenerated": false,
"terrainGenerationProperties": {
"scale": 100.0,
"persistence": 0.5,
"lacunarity": 2.0,
"octaves": 4,
"offset": {
"x": 0.0,
"y": 0.0
},
"heightScale": 50.0
},
"terrainSeed": 13,
"terrainConfig": {
"uvOffset": {
"x": 0.0,
"y": 0.0
},
"uvScale": {
"x": 1.0,
"y": 1.0
},
"baseColor": {
"x": 1.0,
"y": 1.0,
"z": 1.0,
"w": 1.0
}
}
},
"componentName": "Terrain Component"
}
},
"gameObjects": {
"name": "newMap",
"transform": {
"position": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 1.0,
"y": 1.0,
"z": 1.0
}
},
"components": {
"Terrain Component": {
"terrain": {
"bIsGenerated": false,
"terrainGenerationProperties": {
"scale": 100.0,
"persistence": 0.5,
"lacunarity": 2.0,
"octaves": 4,
"offset": {
"x": 0.0,
"y": 0.0
},
"heightScale": 50.0
},
"terrainSeed": 13,
"terrainConfig": {
"uvOffset": {
"x": 0.0,
"y": 0.0
},
"uvScale": {
"x": 1.0,
"y": 1.0
},
"baseColor": {
"x": 1.0,
"y": 1.0,
"z": 1.0,
"w": 1.0
}
}
},
"componentType": "TerrainComponent"
}
},
"children": [
{
"id": 0,
"gameObjectType": "GameObject",
"name": "GameObject_0",
"transform": {
"position": {
"x": -600.9000244140625,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 1.0,
"y": 1.0,
"z": 1.0
}
},
"components": {
"": {
"renderReference": 2592612823,
"renderMeshIndex": 0,
"renderIsVisible": true,
"renderIsShadowCaster": true,
"transform": {
"position": {
"x": -15.367568016052246,
"y": -1.0115400552749634,
"z": -9.462457656860352
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 0.0018169343238696456,
"y": 0.0018169343238696456,
"z": 0.0018169343238696456
}
},
"componentType": "MeshRendererComponent"
}
}
},
{
"id": 1,
"gameObjectType": "GameObject",
"name": "GameObject_1",
"transform": {
"position": {
"x": 4000.0,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 1.0,
"y": 1.0,
"z": 1.0
}
},
"components": {
"": {
"renderReference": 195023067,
"renderMeshIndex": 0,
"renderIsVisible": true,
"renderIsShadowCaster": true,
"transform": {
"position": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 0.00800000037997961,
"y": 0.00800000037997961,
"z": 0.00800000037997961
}
},
"componentType": "MeshRendererComponent"
}
}
}
]
}
}
Loading