CONGE-2 ADDED THE SHADER COMPILATION FROM GLSL TO SPIRV

This commit is contained in:
Jimmy Tremblay-Bernier 2024-11-26 21:19:50 -05:00
parent 15f8898808
commit 63d9eb1081
9 changed files with 142 additions and 8 deletions

View File

@ -0,0 +1,41 @@
---
title: Rendering Pipeline Steps
---
stateDiagram-v2
direction LR
state "Data" as Data1
state "Vertex Shader" as VertexShader1
state "Tesselation Shader" as TesselationShader1
state "Rasterization" as Rasterization1
state "Fragment Shader" as FragmentShader1
state "Blending" as Blending1
state "Texture" as Texture1
state "Texture" as Texture2
state "Vertex Shader" as VertexShader2
state "Tesselation Shader" as TesselationShader2
state "Rasterization" as Rasterization2
state "Fragment Shader" as FragmentShader2
state "Blending" as Blending2
state "Frame Buffer" as FrameBuffer2
Data1 --> VertexShader1
state "Pass 1" as Pass1{
direction LR
VertexShader1 --> TesselationShader1
TesselationShader1 --> Rasterization1
Rasterization1 --> FragmentShader1
FragmentShader1 --> Blending1
}
Blending1 --> Texture1
Texture2 --> VertexShader2
state "Pass 2" as Pass2{
direction LR
VertexShader2 --> TesselationShader2
TesselationShader2 --> Rasterization2
Rasterization2 --> FragmentShader2
FragmentShader2 --> Blending2
}
Blending2 --> FrameBuffer2

View File

@ -0,0 +1,28 @@
---
title: Rendering Pipeline
---
classDiagram
class VAO
class VBO
class Shader
class Pipeline0
class Pipeline1
class Pipeline2
class Entity0
class Entity1
class Entity2
Entity0 -- Pipeline0
Entity0 -- Pipeline1
Entity0 -- Pipeline2
Entity1 -- Pipeline0
Entity1 -- Pipeline1
Entity2 -- Pipeline1
Entity2 -- Pipeline2
Pipeline0 -- Shader
Pipeline1 -- Shader
Pipeline2 -- Shader

4
Demo1/.gitignore vendored
View File

@ -1,3 +1,5 @@
CMakeFiles/
cmake_install.cmake
CMakeUserPresets.json
CMakeUserPresets.json
CompileShaders.log
**/*.spv

View File

@ -3,11 +3,21 @@ project(Demo1)
set(CMAKE_CXX_STANDARD 20)
find_package(Python3 REQUIRED COMPONENTS Interpreter)
add_executable(${PROJECT_NAME} src/main.cpp
src/Demo1.cpp
src/Demo1.h
)
# SHADERS
add_custom_command(
TARGET ${PROJECT_NAME}
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/CompileShaders.py ${CMAKE_CURRENT_SOURCE_DIR}/src/Shaders
COMMENT "Compiling shaders"
)
target_link_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/ConjureEngine)
find_package(SDL2 REQUIRED)

43
Demo1/CompileShaders.py Normal file
View File

@ -0,0 +1,43 @@
import os
import sys
import subprocess
import logging
os.chdir(sys.argv[1])
# Configure logging
logging.basicConfig(
filename=os.path.join("D:/Dev/ETS/CONJURE/conjure-engine/Demo1", "CompileShaders.log"), # Log file name
filemode="w", # Append mode (use "w" for overwrite)
format="%(asctime)s - %(levelname)s - %(message)s", # Log format
level=logging.INFO # Logging level
)
SHADERS_PATH = os.path.join(os.getcwd())
GLSLC_PATH = os.path.join(os.environ.get("VULKAN_SDK"), "bin", "glslc")
def filterFunc(fileName):
logging.info(fileName)
name, ext = fileName.split(".")
return ext != "spv"
def __main__():
logging.info("SHADER PATH: " + SHADERS_PATH)
logging.info("GLSLC PATH:" + GLSLC_PATH)
shaders = filter(filterFunc, os.listdir(SHADERS_PATH))
for shader in shaders:
name, ext = shader.split(".")
command = GLSLC_PATH
args = [
os.path.join(SHADERS_PATH, shader),
"-o",
os.path.join(SHADERS_PATH, name + "." + ext + ".spv")
]
logging.info(command + " " + str.join(" ", args))
subprocess.run(command + " " + str.join(" ", args))
if __name__ == "__main__":
__main__()

View File

@ -21,22 +21,22 @@ namespace Demo1 {
void Demo1::Awake()
{
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,"AWAKING");
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION,"AWAKING");
}
void Demo1::Start()
{
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,"STARTING");
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION,"STARTING");
}
void Demo1::Tick(double deltaTime)
{
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "TICKING %f", deltaTime);
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "TICKING %f", deltaTime);
}
void Demo1::Destroy()
{
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,"DESTROYING");
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION,"DESTROYING");
}
} // Demo1

View File

@ -0,0 +1,7 @@
#version 460 core
layout (location = 0) out vec4 oColor;
void main() {
oColor = vec4(1);
}

View File

@ -0,0 +1,5 @@
#version 460 core
void main() {
gl_Position = vec4(0);
}

View File

@ -88,7 +88,5 @@ int main ( int argc, char* argv[] )
Demo1::Demo1 app;
// AND THEN START IT
int status = app.Run();
return status;
return app.Run();
}