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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions antora/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,89 @@
** xref:courses/18_Ray_tracing/07_Conclusion.adoc[Conclusion]
* xref:90_FAQ.adoc[FAQ]
* link:https://github.com/KhronosGroup/Vulkan-Tutorial[GitHub Repository, window=_blank]

* Building a Simple Engine
** xref:Building_a_Simple_Engine/introduction.adoc[Introduction]
** Engine Architecture
*** xref:Building_a_Simple_Engine/Engine_Architecture/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Engine_Architecture/02_architectural_patterns.adoc[Architectural patterns]
*** xref:Building_a_Simple_Engine/Engine_Architecture/03_component_systems.adoc[Component systems]
*** xref:Building_a_Simple_Engine/Engine_Architecture/04_resource_management.adoc[Resource management]
*** xref:Building_a_Simple_Engine/Engine_Architecture/05_rendering_pipeline.adoc[Rendering pipeline]
*** xref:Building_a_Simple_Engine/Engine_Architecture/06_event_systems.adoc[Event systems]
*** xref:Building_a_Simple_Engine/Engine_Architecture/conclusion.adoc[Conclusion]
** Camera Transformations
*** xref:Building_a_Simple_Engine/Camera_Transformations/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Camera_Transformations/02_math_foundations.adoc[Math foundations]
*** xref:Building_a_Simple_Engine/Camera_Transformations/03_transformation_matrices.adoc[Transformation matrices]
*** xref:Building_a_Simple_Engine/Camera_Transformations/04_camera_implementation.adoc[Camera implementation]
*** xref:Building_a_Simple_Engine/Camera_Transformations/05_vulkan_integration.adoc[Vulkan integration]
*** xref:Building_a_Simple_Engine/Camera_Transformations/06_conclusion.adoc[Conclusion]
** Loading Models
*** xref:Building_a_Simple_Engine/Loading_Models/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Loading_Models/02_project_setup.adoc[Project setup]
*** xref:Building_a_Simple_Engine/Loading_Models/03_model_system.adoc[Model system]
*** xref:Building_a_Simple_Engine/Loading_Models/04_loading_gltf.adoc[Loading glTF]
*** xref:Building_a_Simple_Engine/Loading_Models/05_pbr_rendering.adoc[PBR rendering]
*** xref:Building_a_Simple_Engine/Loading_Models/06_multiple_objects.adoc[Multiple objects]
*** xref:Building_a_Simple_Engine/Loading_Models/07_scene_rendering.adoc[Scene rendering]
*** xref:Building_a_Simple_Engine/Loading_Models/08_animations.adoc[Animations]
*** xref:Building_a_Simple_Engine/Loading_Models/09_conclusion.adoc[Conclusion]
** Lighting & Materials
*** xref:Building_a_Simple_Engine/Lighting_Materials/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Lighting_Materials/02_lighting_models.adoc[Lighting models]
*** xref:Building_a_Simple_Engine/Lighting_Materials/03_push_constants.adoc[Push constants]
*** xref:Building_a_Simple_Engine/Lighting_Materials/04_lighting_implementation.adoc[Lighting implementation]
*** xref:Building_a_Simple_Engine/Lighting_Materials/05_vulkan_integration.adoc[Vulkan integration]
*** xref:Building_a_Simple_Engine/Lighting_Materials/07_shadows.adoc[Shadows]
*** xref:Building_a_Simple_Engine/Lighting_Materials/06_conclusion.adoc[Conclusion]
** GUI
*** xref:Building_a_Simple_Engine/GUI/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/GUI/02_imgui_setup.adoc[ImGui setup]
*** xref:Building_a_Simple_Engine/GUI/03_input_handling.adoc[Input handling]
*** xref:Building_a_Simple_Engine/GUI/04_ui_elements.adoc[UI elements]
*** xref:Building_a_Simple_Engine/GUI/05_vulkan_integration.adoc[Vulkan integration]
*** xref:Building_a_Simple_Engine/GUI/06_conclusion.adoc[Conclusion]
** Subsystems
*** xref:Building_a_Simple_Engine/Subsystems/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Subsystems/02_audio_basics.adoc[Audio basics]
*** xref:Building_a_Simple_Engine/Subsystems/03_vulkan_audio.adoc[Vulkan audio]
*** xref:Building_a_Simple_Engine/Subsystems/04_physics_basics.adoc[Physics basics]
*** xref:Building_a_Simple_Engine/Subsystems/05_vulkan_physics.adoc[Vulkan physics]
*** xref:Building_a_Simple_Engine/Subsystems/06_conclusion.adoc[Conclusion]
** Tooling
*** xref:Building_a_Simple_Engine/Tooling/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Tooling/02_cicd.adoc[CI/CD]
*** xref:Building_a_Simple_Engine/Tooling/03_debugging_and_renderdoc.adoc[Debugging & RenderDoc]
*** xref:Building_a_Simple_Engine/Tooling/04_crash_minidump.adoc[Crash minidumps]
*** xref:Building_a_Simple_Engine/Tooling/05_extensions.adoc[Extensions]
*** xref:Building_a_Simple_Engine/Tooling/06_packaging_and_distribution.adoc[Packaging & distribution]
*** xref:Building_a_Simple_Engine/Tooling/07_conclusion.adoc[Conclusion]
** Mobile Development
*** xref:Building_a_Simple_Engine/Mobile_Development/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Mobile_Development/02_platform_considerations.adoc[Platform considerations]
*** xref:Building_a_Simple_Engine/Mobile_Development/03_performance_optimizations.adoc[Performance optimizations]
*** xref:Building_a_Simple_Engine/Mobile_Development/04_rendering_approaches.adoc[Rendering approaches]
*** xref:Building_a_Simple_Engine/Mobile_Development/05_vulkan_extensions.adoc[Vulkan extensions]
*** xref:Building_a_Simple_Engine/Mobile_Development/06_conclusion.adoc[Conclusion]
** Advanced Topics
*** xref:Building_a_Simple_Engine/Advanced_Topics/01_introduction.adoc[Introduction]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Rendering_Pipeline_Overview.adoc[Rendering pipeline overview]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Forward_ForwardPlus_Deferred.adoc[Forward vs Forward+ vs Deferred]
*** xref:Building_a_Simple_Engine/Advanced_Topics/ForwardPlus_Rendering.adoc[Forward+ rendering]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Culling.adoc[Culling]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Mipmaps_and_LOD.adoc[Mipmaps & LOD]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Push_Constants_Per_Object.adoc[Push constants per object]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Synchronization_and_Streaming.adoc[Synchronization & streaming]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Synchronization_2_Frame_Pacing.adoc[Synchronization2 & frame pacing]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Descriptor_Indexing_UpdateAfterBind.adoc[Descriptor indexing (UpdateAfterBind)]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Separate_Image_Sampler_Descriptors.adoc[Separate image/sampler descriptors]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Shader_Tile_Image.adoc[Shader tile image]
*** xref:Building_a_Simple_Engine/Advanced_Topics/GLTF_Animation.adoc[glTF animation]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Planar_Reflections.adoc[Planar reflections]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Ray_Query_Rendering.adoc[Ray query rendering]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Ray_Query_Reflections_and_Transparency.adoc[Ray query: reflections & transparency]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Dynamic_Rendering_Local_Read.adoc[Dynamic rendering local read]
*** xref:Building_a_Simple_Engine/Advanced_Topics/Robustness2.adoc[Robustness2]
** Appendix
*** xref:Building_a_Simple_Engine/Appendix/appendix.adoc[Appendix]
Binary file added attachments/simple_engine/Assets/MainEntry.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added attachments/simple_engine/Assets/bookstand.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 18 additions & 18 deletions en/Building_a_Simple_Engine/Advanced_Topics/01_introduction.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@ Welcome — this section collects short, conversational guides that explain what

Start anywhere that matches your interest:

* link:Planar_Reflections.adoc[Planar Reflections]
* link:Ray_Query_Rendering.adoc[Ray Query Rendering]
* link:Ray_Query_Reflections_and_Transparency.adoc[Ray Query Reflections and Transparency]
* link:Rendering_Pipeline_Overview.adoc[Rendering Pipeline Overview]
* link:Forward_ForwardPlus_Deferred.adoc[Forward, Forward+, Deferred]
* link:ForwardPlus_Rendering.adoc[Forward+ Rendering]
* link:Culling.adoc[Frustum Culling and Distance LOD]
* link:Mipmaps_and_LOD.adoc[Mipmaps and LOD]
* link:GLTF_Animation.adoc[glTF Animation & Transform Composition]
* link:Push_Constants_Per_Object.adoc[Push Constants (per‑object material)]
* link:Descriptor_Indexing_UpdateAfterBind.adoc[Descriptor Indexing & Stable Updates]
* link:Separate_Image_Sampler_Descriptors.adoc[Separate Image/Sampler]
* link:Synchronization_and_Streaming.adoc[Synchronization & Streaming]
* link:Synchronization_2_Frame_Pacing.adoc[Synchronization 2 & Frame Pacing]
* link:Robustness2.adoc[VK_EXT_robustness2]
* link:Dynamic_Rendering_Local_Read.adoc[Dynamic Rendering Local Read]
* link:Shader_Tile_Image.adoc[Shader Tile Image]
* xref:Building_a_Simple_Engine/Advanced_Topics/Planar_Reflections.adoc[Planar Reflections]
* xref:Building_a_Simple_Engine/Advanced_Topics/Ray_Query_Rendering.adoc[Ray Query Rendering]
* xref:Building_a_Simple_Engine/Advanced_Topics/Ray_Query_Reflections_and_Transparency.adoc[Ray Query Reflections and Transparency]
* xref:Building_a_Simple_Engine/Advanced_Topics/Rendering_Pipeline_Overview.adoc[Rendering Pipeline Overview]
* xref:Building_a_Simple_Engine/Advanced_Topics/Forward_ForwardPlus_Deferred.adoc[Forward, Forward+, Deferred]
* xref:Building_a_Simple_Engine/Advanced_Topics/ForwardPlus_Rendering.adoc[Forward+ Rendering]
* xref:Building_a_Simple_Engine/Advanced_Topics/Culling.adoc[Frustum Culling and Distance LOD]
* xref:Building_a_Simple_Engine/Advanced_Topics/Mipmaps_and_LOD.adoc[Mipmaps and LOD]
* xref:Building_a_Simple_Engine/Advanced_Topics/GLTF_Animation.adoc[glTF Animation & Transform Composition]
* xref:Building_a_Simple_Engine/Advanced_Topics/Push_Constants_Per_Object.adoc[Push Constants (per‑object material)]
* xref:Building_a_Simple_Engine/Advanced_Topics/Descriptor_Indexing_UpdateAfterBind.adoc[Descriptor Indexing & Stable Updates]
* xref:Building_a_Simple_Engine/Advanced_Topics/Separate_Image_Sampler_Descriptors.adoc[Separate Image/Sampler]
* xref:Building_a_Simple_Engine/Advanced_Topics/Synchronization_and_Streaming.adoc[Synchronization & Streaming]
* xref:Building_a_Simple_Engine/Advanced_Topics/Synchronization_2_Frame_Pacing.adoc[Synchronization 2 & Frame Pacing]
* xref:Building_a_Simple_Engine/Advanced_Topics/Robustness2.adoc[VK_EXT_robustness2]
* xref:Building_a_Simple_Engine/Advanced_Topics/Dynamic_Rendering_Local_Read.adoc[Dynamic Rendering Local Read]
* xref:Building_a_Simple_Engine/Advanced_Topics/Shader_Tile_Image.adoc[Shader Tile Image]

link:../index.html[Back to Building a Simple Engine]
xref:Building_a_Simple_Engine/introduction.adoc[Back to Building a Simple Engine]
Original file line number Diff line number Diff line change
Expand Up @@ -152,9 +152,9 @@ If you want to push planar reflections further:

If you’re curious about the rest of this sample:

* link:Synchronization_and_Streaming.adoc[Synchronization and Streaming]
* link:ForwardPlus_Rendering.adoc[Forward+ Rendering]
* link:Descriptor_Indexing_UpdateAfterBind.adoc[Descriptor Indexing and Stable Descriptor Updates]
* link:Rendering_Pipeline_Overview.adoc[Rendering Pipeline Overview]
* xref:Building_a_Simple_Engine/Advanced_Topics/Synchronization_and_Streaming.adoc[Synchronization and Streaming]
* xref:Building_a_Simple_Engine/Advanced_Topics/ForwardPlus_Rendering.adoc[Forward+ Rendering]
* xref:Building_a_Simple_Engine/Advanced_Topics/Descriptor_Indexing_UpdateAfterBind.adoc[Descriptor Indexing and Stable Descriptor Updates]
* xref:Building_a_Simple_Engine/Advanced_Topics/Rendering_Pipeline_Overview.adoc[Rendering Pipeline Overview]

Enjoy experimenting. This approach is intentionally straightforward so you can focus on learning Vulkan’s moving parts without getting lost in a maze of techniques.
4 changes: 2 additions & 2 deletions en/Building_a_Simple_Engine/Appendix/appendix.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -335,5 +335,5 @@ When designing your engine architecture, consider:
3. *Team Size and Experience* - More complex architectures may be harder to work with for smaller teams.
4. *Project Scope* - A small project may not need the complexity of a full ECS.

link:../Engine_Architecture/02_architectural_patterns.adoc[Back to Architectural Patterns]
link:../Engine_Architecture/05_rendering_pipeline.adoc[Back to Rendering Pipeline]
xref:Building_a_Simple_Engine/Engine_Architecture/02_architectural_patterns.adoc[Back to Architectural Patterns]
xref:Building_a_Simple_Engine/Engine_Architecture/05_rendering_pipeline.adoc[Back to Rendering Pipeline]
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ By the end of this chapter, you'll have a solid understanding of 3D transformati
Before starting this chapter, you should have completed the main Vulkan tutorial. You should also be familiar with:

* Basic Vulkan concepts:
** xref:../../03_Drawing_a_triangle/03_Drawing/01_Command_buffers.adoc[Command buffers]
** xref:../../03_Drawing_a_triangle/02_Graphics_pipeline_basics/00_Introduction.adoc[Graphics pipelines]
* xref:../../04_Vertex_buffers/00_Vertex_input_description.adoc[Vertex] and xref:../../04_Vertex_buffers/03_Index_buffer.adoc[index buffers]
* xref:../../05_Uniform_buffers/00_Descriptor_set_layout_and_buffer.adoc[Uniform buffers]
** xref:03_Drawing_a_triangle/03_Drawing/01_Command_buffers.adoc[Command buffers]
** xref:03_Drawing_a_triangle/02_Graphics_pipeline_basics/00_Introduction.adoc[Graphics pipelines]
* xref:04_Vertex_buffers/00_Vertex_input_description.adoc[Vertex] and xref:04_Vertex_buffers/03_Index_buffer.adoc[index buffers]
* xref:05_Uniform_buffers/00_Descriptor_set_layout_and_buffer.adoc[Uniform buffers]
* Basic programming concepts and C++

link:02_math_foundations.adoc[Next: Mathematical Foundations]
xref:Building_a_Simple_Engine/Engine_Architecture/conclusion.adoc[Previous: Engine Architecture Conclusion] | xref:Building_a_Simple_Engine/Camera_Transformations/02_math_foundations.adoc[Next: Mathematical Foundations]
Original file line number Diff line number Diff line change
Expand Up @@ -1102,4 +1102,4 @@ If you're finding some of the mathematical concepts challenging or want to deepe

These resources should help you gain a deeper understanding of the mathematical concepts used in 3D graphics and camera systems. If you're struggling with a particular concept, try looking at multiple resources as different explanations might resonate better with your learning style.

link:03_transformation_matrices.adoc[Next: Transformation Matrices]
xref:Building_a_Simple_Engine/Camera_Transformations/01_introduction.adoc[Previous: Introduction] | xref:Building_a_Simple_Engine/Camera_Transformations/03_transformation_matrices.adoc[Next: Transformation Matrices]
Original file line number Diff line number Diff line change
Expand Up @@ -173,4 +173,4 @@ glm::mat4 childWorldModel = parentModel * localModel;

In the next section, we'll implement a camera system that uses these transformation concepts to navigate our 3D scenes.

link:04_camera_implementation.adoc[Next: Camera Implementation]
xref:Building_a_Simple_Engine/Camera_Transformations/02_math_foundations.adoc[Previous: Mathematical Foundations] | xref:Building_a_Simple_Engine/Camera_Transformations/04_camera_implementation.adoc[Next: Camera Implementation]
Original file line number Diff line number Diff line change
Expand Up @@ -686,9 +686,9 @@ void gameLoop(float deltaTime) {

[NOTE]
====
For more advanced camera techniques, refer to the Advanced Camera Techniques section in the link:../Appendix/appendix.adoc[Appendix].
For more advanced camera techniques, refer to the Advanced Camera Techniques section in the xref:Building_a_Simple_Engine/Appendix/appendix.adoc[Appendix].
====

In the next section, we'll integrate our camera system with Vulkan to render 3D scenes.

link:05_vulkan_integration.adoc[Next: Vulkan Integration]
xref:Building_a_Simple_Engine/Camera_Transformations/03_transformation_matrices.adoc[Previous: Transformation Matrices] | xref:Building_a_Simple_Engine/Camera_Transformations/05_vulkan_integration.adoc[Next: Vulkan Integration]
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ To keep the integration digestible, think of it in five small steps:

[NOTE]
====
See link:04_transformation_matrices.adoc[Camera transformation matricies] and link:04_camera_implementation.adoc[Camera implementation] for a refresher on Matrix math.
See xref:Building_a_Simple_Engine/Camera_Transformations/03_transformation_matrices.adoc[Transformation matrices] and xref:Building_a_Simple_Engine/Camera_Transformations/04_camera_implementation.adoc[Camera implementation] for a refresher on matrix math.
====

=== Uniform Buffer Setup
Expand Down Expand Up @@ -294,4 +294,4 @@ With these components in place, we now have a fully functional camera system int

In the next section, we'll wrap up with a conclusion and discuss potential improvements to our camera system.

link:06_conclusion.adoc[Next: Conclusion]
xref:Building_a_Simple_Engine/Camera_Transformations/04_camera_implementation.adoc[Previous: Camera Implementation] | xref:Building_a_Simple_Engine/Camera_Transformations/06_conclusion.adoc[Next: Conclusion]
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,4 @@ A well-designed camera system is essential for any 3D application. It serves as

Remember that the code provided in this chapter is a starting point. Feel free to modify and extend it to suit your specific needs and application requirements.

link:../Engine_Architecture/conclusion.adoc[Previous: Engine Architecture] | link:../Lighting_Materials/01_introduction.adoc[Next: Lighting & Materials]
xref:Building_a_Simple_Engine/Camera_Transformations/05_vulkan_integration.adoc[Previous: Vulkan Integration] | xref:Building_a_Simple_Engine/Lighting_Materials/01_introduction.adoc[Next: Lighting & Materials]
12 changes: 6 additions & 6 deletions en/Building_a_Simple_Engine/Camera_Transformations/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ This chapter covers the implementation of a 3D camera system and the mathematica

== Contents

* link:01_introduction.adoc[Introduction]
* link:02_math_foundations.adoc[Mathematical Foundations]
* link:03_transformation_matrices.adoc[Transformation Matrices]
* link:04_camera_implementation.adoc[Camera Implementation]
* link:05_vulkan_integration.adoc[Vulkan Integration]
* link:06_conclusion.adoc[Conclusion]
* xref:Building_a_Simple_Engine/Camera_Transformations/01_introduction.adoc[Introduction]
* xref:Building_a_Simple_Engine/Camera_Transformations/02_math_foundations.adoc[Mathematical Foundations]
* xref:Building_a_Simple_Engine/Camera_Transformations/03_transformation_matrices.adoc[Transformation Matrices]
* xref:Building_a_Simple_Engine/Camera_Transformations/04_camera_implementation.adoc[Camera Implementation]
* xref:Building_a_Simple_Engine/Camera_Transformations/05_vulkan_integration.adoc[Vulkan Integration]
* xref:Building_a_Simple_Engine/Camera_Transformations/06_conclusion.adoc[Conclusion]
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ Modern {cpp} features play a crucial role in our implementation approach. Smart
You should also be familiar with the following chapters from the main tutorial:

* Basic Vulkan concepts:
** xref:../../03_Drawing_a_triangle/03_Drawing/01_Command_buffers.adoc[Command buffers]
** xref:../../03_Drawing_a_triangle/02_Graphics_pipeline_basics/00_Introduction.adoc[Graphics pipelines]
* xref:../../04_Vertex_buffers/00_Vertex_input_description.adoc[Vertex] and xref:../../04_Vertex_buffers/03_Index_buffer.adoc[index buffers]
* xref:../../05_Uniform_buffers/00_Descriptor_set_layout_and_buffer.adoc[Uniform buffers]
** xref:03_Drawing_a_triangle/03_Drawing/01_Command_buffers.adoc[Command buffers]
** xref:03_Drawing_a_triangle/02_Graphics_pipeline_basics/00_Introduction.adoc[Graphics pipelines]
* xref:04_Vertex_buffers/00_Vertex_input_description.adoc[Vertex] and xref:04_Vertex_buffers/03_Index_buffer.adoc[index buffers]
* xref:05_Uniform_buffers/00_Descriptor_set_layout_and_buffer.adoc[Uniform buffers]

=== Why Architecture Matters

Expand All @@ -59,4 +59,4 @@ Performance opportunities often emerge from architectural decisions made early i

Let's begin our exploration of engine architecture with an overview of common architectural patterns used in modern rendering engines.

link:02_architectural_patterns.adoc[Next: Architectural Patterns]
xref:Building_a_Simple_Engine/introduction.adoc[Previous: Building a Simple Engine Introduction] | xref:Building_a_Simple_Engine/Engine_Architecture/02_architectural_patterns.adoc[Next: Architectural Patterns]
Loading
Loading