CONGE-2 ADDED THE SHADER COMPILATION FROM GLSL TO SPIRV
This commit is contained in:
parent
15f8898808
commit
63d9eb1081
41
ConjureEngine/docs/RenderingPipelineSteps.mmd
Normal file
41
ConjureEngine/docs/RenderingPipelineSteps.mmd
Normal 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
|
||||||
28
ConjureEngine/docs/renderingPipeline.mmd
Normal file
28
ConjureEngine/docs/renderingPipeline.mmd
Normal 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
4
Demo1/.gitignore
vendored
@ -1,3 +1,5 @@
|
|||||||
CMakeFiles/
|
CMakeFiles/
|
||||||
cmake_install.cmake
|
cmake_install.cmake
|
||||||
CMakeUserPresets.json
|
CMakeUserPresets.json
|
||||||
|
CompileShaders.log
|
||||||
|
**/*.spv
|
||||||
@ -3,11 +3,21 @@ project(Demo1)
|
|||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
||||||
|
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||||
|
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} src/main.cpp
|
add_executable(${PROJECT_NAME} src/main.cpp
|
||||||
src/Demo1.cpp
|
src/Demo1.cpp
|
||||||
src/Demo1.h
|
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)
|
target_link_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/ConjureEngine)
|
||||||
|
|
||||||
find_package(SDL2 REQUIRED)
|
find_package(SDL2 REQUIRED)
|
||||||
|
|||||||
43
Demo1/CompileShaders.py
Normal file
43
Demo1/CompileShaders.py
Normal 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__()
|
||||||
@ -21,22 +21,22 @@ namespace Demo1 {
|
|||||||
|
|
||||||
void Demo1::Awake()
|
void Demo1::Awake()
|
||||||
{
|
{
|
||||||
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,"AWAKING");
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION,"AWAKING");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Demo1::Start()
|
void Demo1::Start()
|
||||||
{
|
{
|
||||||
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,"STARTING");
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION,"STARTING");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Demo1::Tick(double deltaTime)
|
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()
|
void Demo1::Destroy()
|
||||||
{
|
{
|
||||||
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,"DESTROYING");
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION,"DESTROYING");
|
||||||
}
|
}
|
||||||
|
|
||||||
} // Demo1
|
} // Demo1
|
||||||
|
|||||||
7
Demo1/src/Shaders/Test.frag
Normal file
7
Demo1/src/Shaders/Test.frag
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#version 460 core
|
||||||
|
|
||||||
|
layout (location = 0) out vec4 oColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
oColor = vec4(1);
|
||||||
|
}
|
||||||
5
Demo1/src/Shaders/Test.vert
Normal file
5
Demo1/src/Shaders/Test.vert
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#version 460 core
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
gl_Position = vec4(0);
|
||||||
|
}
|
||||||
@ -88,7 +88,5 @@ int main ( int argc, char* argv[] )
|
|||||||
Demo1::Demo1 app;
|
Demo1::Demo1 app;
|
||||||
|
|
||||||
// AND THEN START IT
|
// AND THEN START IT
|
||||||
int status = app.Run();
|
return app.Run();
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user