Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
35ebe28
first iteration for GLFW intergration inside Elements
Feb 21, 2024
4a9860a
fixed camera handling for GLFW events
Feb 21, 2024
d5001bc
Merge branch 'papagiannakis:develop' into develop
TerryToupi Feb 29, 2024
2cb6eb9
minor changes
Feb 29, 2024
6892946
tests
Feb 29, 2024
55940e4
semi working test of a cube
Mar 6, 2024
300e301
Jupyter support
Mar 8, 2024
4f5fcfa
working example of glfw + wgpu
Mar 16, 2024
3eb9d61
cammera on wgpu
Mar 21, 2024
d549e12
separate cammera system + LOD sphere example
Mar 30, 2024
6ae2bc0
SIGGRAPH examples
Apr 9, 2024
5dffdaa
added examples
TerryToupi Apr 17, 2024
f2debaa
minor chages
TerryToupi Apr 17, 2024
3a51730
fps cammera + obj support
TerryToupi Apr 20, 2024
7fa84df
first try of a full on object oriented spinoff
TerryToupi Apr 21, 2024
506eed0
working state of the multi object version
TerryToupi Apr 22, 2024
0be6184
removed debug prints
TerryToupi Apr 22, 2024
081ec56
removed debug prints
TerryToupi Apr 22, 2024
c2de13a
Merge branch 'feature/object-orientation' of github.com:TerryToupi/El…
TerryToupi Apr 22, 2024
e537b32
Full iteration of a wgpu renderer that supports materials and multipl…
TerryToupi Apr 28, 2024
bc65581
IT'S ALIVE (materials and dynamic append of bind groups works)
TerryToupi Apr 29, 2024
efbf7d5
Improved example
TerryToupi Apr 29, 2024
d15acb6
complete abstruction between the wgpu api the shader and the objects
TerryToupi Apr 30, 2024
675c8cb
blin Phong lighting
TerryToupi May 2, 2024
4e0a74b
multy pass + shadow implementations
TerryToupi May 7, 2024
51d9922
cube mapp + parallax mapping attempts
TerryToupi May 12, 2024
163776b
Cubemaps update + shadow fixes
TerryToupi May 19, 2024
a2ad9e3
Shader parser
TerryToupi Jun 2, 2024
7ccb55e
ECS initial comit
TerryToupi Jun 7, 2024
9b332ff
Systems + component implementation
TerryToupi Jun 8, 2024
a49c6b0
Working state of ECS
TerryToupi Jun 9, 2024
6a00652
gpu cache to store the generated textures
TerryToupi Jun 12, 2024
4e4672e
Scafolding of the rendering and rendering sub systems
TerryToupi Jun 14, 2024
958cacb
Render system initialization
TerryToupi Jun 16, 2024
9c2c24f
Renderpasses configuration for the render pipeline
TerryToupi Jun 16, 2024
5428e1e
minor changes
TerryToupi Jun 16, 2024
0a6ac27
scipy version fix
TerryToupi Jun 17, 2024
bf1f9bd
Better texture library for importing textures, skyboxes and Texure da…
TerryToupi Jun 17, 2024
f12e2b5
Added Shader componet/sytem Material component and set uniform/textur…
TerryToupi Jun 22, 2024
8cbf9e6
Working state of the ECS design
TerryToupi Jun 23, 2024
b947450
Working ECS example + minor cammera fixes
TerryToupi Jun 24, 2024
3f8ffbe
Deleted uneccecery files + fixed input managment in the camera contro…
TerryToupi Jun 24, 2024
7a978e7
fixed cammera controlls
TerryToupi Jun 24, 2024
76af0de
Fixed cammera controls and Imported generated textures into the textu…
TerryToupi Jun 25, 2024
56ffa98
Shader description is now happening automatically
TerryToupi Jun 26, 2024
176f8c3
Added plane in Example and initalized the skybox
TerryToupi Jun 26, 2024
085aa5f
ECS optimizations
TerryToupi Jun 26, 2024
9f83994
skybox implementation
TerryToupi Jun 27, 2024
0ba571c
Complete skybox implementation + example
TerryToupi Jun 28, 2024
15f386b
Shadow map system and casting tests
TerryToupi Jun 28, 2024
5888117
shadow casting stage and passing of shadow map
TerryToupi Jul 1, 2024
eeb3de6
shadows are a pain
TerryToupi Jul 2, 2024
d02d21e
Minor update on shadows
TerryToupi Jul 2, 2024
b7b8671
Working state of the shadow casting
TerryToupi Jul 3, 2024
03b0b89
linearized depth calculation for the redner target + modified shaders…
TerryToupi Jul 5, 2024
84eef3f
FXAA implementation
TerryToupi Jul 7, 2024
8cb3d2e
Fixed the shader code of FXAA
TerryToupi Jul 8, 2024
95b2dc6
Defered Geometry pass
TerryToupi Jul 9, 2024
f158cf8
Complete implementation of the Deffered pass (systems and render passes)
TerryToupi Jul 12, 2024
fc9016e
Fixed data loss due to texture format in the deferred geometry pass
TerryToupi Jul 12, 2024
8efba38
usage of rgba32float storages for Deferred rendering
TerryToupi Jul 12, 2024
364310a
Making the blit to texture stage accepting only none filterable textu…
TerryToupi Jul 12, 2024
e183dbf
Added sponza and deferred blin_phong shader
TerryToupi Jul 13, 2024
aa0d305
SSAO noise generator
TerryToupi Jul 13, 2024
af9434f
SSAO samples no blur
TerryToupi Jul 14, 2024
c0b5589
working state of ssao
TerryToupi Jul 17, 2024
917f766
SSAO + SSAO blur passes finalized
TerryToupi Jul 17, 2024
bee970d
minor tweaks
TerryToupi Jul 20, 2024
a3e7f2b
Configuration of the deferred light pass and optimization
TerryToupi Jul 23, 2024
a89168d
Examples layout + SSAO settings option
TerryToupi Jul 24, 2024
af928a6
WGPU intro, textures, simple lighting examples
TerryToupi Jul 24, 2024
d807c6a
added cubemap example
TerryToupi Jul 24, 2024
407b39b
normal mapping + prarallax oclusion + shadow examples
TerryToupi Jul 26, 2024
fd81c2f
deferred + ssao examples
TerryToupi Jul 26, 2024
156618b
Comments and pydocs inside the source code
TerryToupi Jul 28, 2024
a5294be
Fixed skybox on example 8 & 9
TerryToupi Aug 5, 2024
1cf5779
Fixed normal calculations for the deferred geometry pass
TerryToupi Sep 13, 2024
44f54dd
Added benchmarking example scene
TerryToupi Sep 14, 2024
4f27c69
Merge pull request #1 from TerryToupi/feature/ECS
TerryToupi Nov 17, 2024
a1fc53e
Merge branch 'papagiannakis:develop' into develop
TerryToupi Sep 30, 2025
ab3840d
numpy setup problem resolved
TerryToupi Sep 30, 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
3 changes: 2 additions & 1 deletion Elements/definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@
SCV_DIR = ROOT_DIR / "files" / "scv"
ATLAS_DIR = ROOT_DIR / "files" / "atlas_files"
PICKLES_DIR = ROOT_DIR / "files" / "pickles"
SHADER_DIR = ROOT_DIR / "files" / "shaders"
SHADER_DIR = ROOT_DIR / "files" / "shaders"
JSON_MODEL_DIR = ROOT_DIR / "files" / "Json_models"
4 changes: 2 additions & 2 deletions Elements/examples/1.Introductory/example_1_empty_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
patter, that is the SDL2Window, without any decorator on top
"""

from Elements.pyGLV.GUI.Viewer import SDL2Window
from Elements.pyGLV.GUI.Viewer import GLFWWindow

gWindow = SDL2Window(openGLversion=4, windowTitle="A simple empty SDL WINDOW. Hit ESC OR Close the window to quit!")
gWindow = GLFWWindow(windowTitle="A simple empty GLFW WINDOW. Hit ESC OR Close the window to quit!")
gWindow.init()


Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
"""
Running the basic RenderWindow (SDL2Window) with an ImGUIDecorator on top
"""

from Elements.pyGLV.GUI.Viewer import SDL2Window
from Elements.pyGLV.GUI.ImguiDecorator import ImGUIDecorator
from Elements.pyGLV.GUI.Viewer import GLFWWindow
from Elements.pyGLV.GUI.ImguiDecorator import ImGUIecssDecorator

from Elements.utils.Shortcuts import displayGUI_text
example_description = "This is a simple empty scene with ImGUI enabled. Feel free to add your own widgets!"


gWindow = SDL2Window()
gGUI = ImGUIDecorator(gWindow)
gWindow = GLFWWindow()
gGUI = ImGUIecssDecorator(gWindow)

gGUI.init() #calls ImGUIDecorator::init()-->SDL2Window::init()

Expand Down
4 changes: 2 additions & 2 deletions Elements/examples/1.Introductory/example_3_cube_lookAt.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,15 +106,15 @@

running = True
# MAIN RENDERING LOOP
scene.init(imgui=True, windowWidth = winWidth, windowHeight = winHeight, windowTitle = "A Cube Scene via ECSS")
scene.init(imgui=False, windowWidth = winWidth, windowHeight = winHeight, windowTitle = "A Cube Scene via ECSS")

# pre-pass scenegraph to initialise all GL context dependent geometry, shader classes
# needs an active GL context
scene.world.traverse_visit(initUpdate, scene.world.root)

while running:
running = scene.render()
displayGUI_text(example_description)
#displayGUI_text(example_description)
scene.world.traverse_visit(renderUpdate, scene.world.root)
scene.render_post()

Expand Down
3 changes: 2 additions & 1 deletion Elements/examples/2.Intermediate/example_10_cube_mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,8 @@
displayGUI_text(example_description)
scene.world.traverse_visit(transUpdate, scene.world.root)

view = gWindow._myCamera # updates view via the imgui
scene.world.traverse_visit(transUpdate, scene.world.root)
view = gWindow._myCamera # updates view via the imgui

shaderDec4.setUniformVariable(key='Proj', value=projMat, mat4=True)
shaderDec4.setUniformVariable(key='View', value=view, mat4=True)
Expand Down
362 changes: 362 additions & 0 deletions Elements/examples/4.Experimental/example_ECS_wgpu.py

Large diffs are not rendered by default.

Loading