Added Clustering
This commit is contained in:
parent
797e2aaf73
commit
5432f2e6f1
10
imgui.ini
10
imgui.ini
@ -14,14 +14,14 @@ Size=1920,1158
|
||||
Collapsed=0
|
||||
|
||||
[Window][Inspector]
|
||||
Pos=0,358
|
||||
Size=385,819
|
||||
Pos=0,644
|
||||
Size=385,533
|
||||
Collapsed=0
|
||||
DockId=0x0000000A,0
|
||||
|
||||
[Window][Scene Tree]
|
||||
Pos=0,19
|
||||
Size=385,337
|
||||
Size=385,623
|
||||
Collapsed=0
|
||||
DockId=0x00000009,0
|
||||
|
||||
@ -86,8 +86,8 @@ DockId=0x00000004,0
|
||||
[Docking][Data]
|
||||
DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Split=X
|
||||
DockNode ID=0x00000001 Parent=0x11111111 SizeRef=385,701 Split=Y Selected=0x12EF0F59
|
||||
DockNode ID=0x00000009 Parent=0x00000001 SizeRef=385,337 HiddenTabBar=1 Selected=0x12EF0F59
|
||||
DockNode ID=0x0000000A Parent=0x00000001 SizeRef=385,819 HiddenTabBar=1 Selected=0x36DC96AB
|
||||
DockNode ID=0x00000009 Parent=0x00000001 SizeRef=385,623 HiddenTabBar=1 Selected=0x12EF0F59
|
||||
DockNode ID=0x0000000A Parent=0x00000001 SizeRef=385,533 HiddenTabBar=1 Selected=0x36DC96AB
|
||||
DockNode ID=0x00000002 Parent=0x11111111 SizeRef=1533,701 Split=Y Selected=0xC450F867
|
||||
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,675 CentralNode=1 HiddenTabBar=1 Selected=0xC450F867
|
||||
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,481 Split=X Selected=0x9B5D3198
|
||||
|
@ -1,97 +1,2 @@
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lctype.c -o src\build\lctype.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lcorolib.c -o src\build\lcorolib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lbaselib.c -o src\build\lbaselib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lauxlib.c -o src\build\lauxlib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lapi.c -o src\build\lapi.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\ldblib.c -o src\build\ldblib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lcode.c -o src\build\lcode.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\ldump.c -o src\build\ldump.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\ldebug.c -o src\build\ldebug.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lfunc.c -o src\build\lfunc.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\ldo.c -o src\build\ldo.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\linit.c -o src\build\linit.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lgc.c -o src\build\lgc.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lmem.c -o src\build\lmem.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\liolib.c -o src\build\liolib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\llex.c -o src\build\llex.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lmathlib.c -o src\build\lmathlib.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\main.cpp -o src\build\main.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\ExceptionHandler.cpp -o src\build\utils\ExceptionHandler.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lopcodes.c -o src\build\lopcodes.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lobject.c -o src\build\lobject.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\loslib.c -o src\build\loslib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lstate.c -o src\build\lstate.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lstring.c -o src\build\lstring.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\UID.cpp -o src\build\utils\UID.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lparser.c -o src\build\lparser.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\ltable.c -o src\build\ltable.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\ltablib.c -o src\build\ltablib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lstrlib.c -o src\build\lstrlib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lzio.c -o src\build\lzio.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\ltm.c -o src\build\ltm.o
|
||||
tf8lib.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\luac.c -o src\build\luac.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lundump.c -o src\build\lundump.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lvm.c -o src\build\lvm.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\loadlib.c -o src\build\loadlib.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\GameObjectsList.cpp -o src\build\utils\GameObjectsList.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\Shader.cpp -o src\build\utils\Shader.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\TextComonent.cpp -o src\build\Components\TextComonent.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\PhysicsComponent.cpp -o src\build\Components\PhysicsComponent.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\arena_allocator.c -o src\build\arena_allocator.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\Profiler.cpp -o src\build\utils\Profiler.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\include\lua\lua.c -o src\build\lua.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\aabb.c -o src\build\aabb.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\array.c -o src\build\array.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\bitset.c -o src\build\bitset.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\body.c -o src\build\body.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\broad_phase.c -o src\build\broad_phase.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\contact.c -o src\build\contact.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\constraint_graph.c -o src\build\constraint_graph.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\core.c -o src\build\core.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\distance_joint.c -o src\build\distance_joint.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\geometry.c -o src\build\geometry.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\id_pool.c -o src\build\id_pool.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\contact_solver.c -o src\build\contact_solver.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\hull.c -o src\build\hull.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\distance.c -o src\build\distance.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\dynamic_tree.c -o src\build\dynamic_tree.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\math_functions.c -o src\build\math_functions.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\TilemapComponent.cpp -o src\build\Components\TilemapComponent.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\FileDialog.cpp -o src\build\utils\FileDialog.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\motor_joint.c -o src\build\motor_joint.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Renderer.cpp -o src\build\Renderer.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\island.c -o src\build\island.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\imgui\imgui_impl_opengl3.cpp -o src\build\imgui_impl_opengl3.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\mover.c -o src\build\mover.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\imgui\imgui_impl_glfw.cpp -o src\build\imgui_impl_glfw.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\mouse_joint.c -o src\build\mouse_joint.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\joint.c -o src\build\joint.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\manifold.c -o src\build\manifold.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\CameraComponent.cpp -o src\build\Components\CameraComponent.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\sensor.c -o src\build\sensor.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\LightComponent.cpp -o src\build\Components\LightComponent.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\prismatic_joint.c -o src\build\prismatic_joint.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\revolute_joint.c -o src\build\revolute_joint.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\types.c -o src\build\types.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\timer.c -o src\build\timer.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\table.c -o src\build\table.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\Logging.cpp -o src\build\utils\Logging.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\wheel_joint.c -o src\build\wheel_joint.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\weld_joint.c -o src\build\weld_joint.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\solver_set.c -o src\build\solver_set.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\shape.c -o src\build\shape.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\solver.c -o src\build\solver.o
|
||||
[COMPILE] gcc -std=c99 -Wall -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\box2d\world.c -o src\build\world.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\utils.cpp -o src\build\utils\utils.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\ScriptComponent.cpp -o src\build\Components\ScriptComponent.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\imgui\imgui_tables.cpp -o src\build\imgui_tables.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\imgui\imgui_demo.cpp -o src\build\imgui_demo.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\imgui\imgui_draw.cpp -o src\build\imgui_draw.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Components\SpriteComponent.cpp -o src\build\Components\SpriteComponent.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Entitys\Object.cpp -o src\build\Entitys\Object.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\utils\EngineConfig.cpp -o src\build\utils\EngineConfig.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\imgui\imgui_widgets.cpp -o src\build\imgui_widgets.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Engine.cpp -o src\build\Engine.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\vendor\imgui\imgui.cpp -o src\build\imgui.o
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\Engine.cpp -o src\build\Engine.o
|
||||
[LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\Entitys\Object.o src\build\utils\EngineConfig.o src\build\utils\ExceptionHandler.o src\build\utils\FileDialog.o src\build\utils\GameObjectsList.o src\build\utils\Logging.o src\build\utils\Profiler.o src\build\utils\Shader.o src\build\utils\UID.o src\build\utils\utils.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto
|
||||
|
@ -1,4 +1,4 @@
|
||||
#version 330 core
|
||||
#version 430 core
|
||||
|
||||
in vec2 vUV;
|
||||
in vec2 vFragScreenPos;
|
||||
@ -6,25 +6,31 @@ out vec4 FragColor;
|
||||
|
||||
uniform sampler2D uTex;
|
||||
uniform sampler2D uNormalMap;
|
||||
uniform float uRotation;
|
||||
|
||||
uniform float uRotation;
|
||||
uniform float uBrightness;
|
||||
uniform float uSaturation;
|
||||
uniform float uGamma;
|
||||
|
||||
#define MAX_LIGHTS 512
|
||||
|
||||
uniform int uLightCount;
|
||||
uniform int uClusterWidth;
|
||||
uniform int uClusterHeight;
|
||||
uniform int uClusterCols;
|
||||
uniform int uMaxLightsPerCluster;
|
||||
|
||||
#define MAX_LIGHTS 512
|
||||
uniform vec2 uLightPos[MAX_LIGHTS];
|
||||
uniform vec3 uLightColor[MAX_LIGHTS];
|
||||
uniform float uLightIntensity[MAX_LIGHTS];
|
||||
uniform float uLightRadius[MAX_LIGHTS];
|
||||
|
||||
layout(std430, binding = 1) readonly buffer ClusterLightBuffer {
|
||||
int clusterLightIndices[];
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
// Rotate UV 90° clockwise
|
||||
vec2 rotatedUV = vec2(vUV.y, 1.0 - vUV.x);
|
||||
|
||||
vec4 texColor = texture(uTex, rotatedUV);
|
||||
if (texColor.a < 0.1)
|
||||
discard;
|
||||
@ -40,18 +46,23 @@ void main()
|
||||
vec3 normal = normalize(n);
|
||||
vec3 finalLight = vec3(0.0);
|
||||
|
||||
for (int i = 0; i < uLightCount; ++i)
|
||||
{
|
||||
vec2 lightVec = uLightPos[i] - vFragScreenPos;
|
||||
float dist = length(lightVec);
|
||||
int cx = int(vFragScreenPos.x) / uClusterWidth;
|
||||
int cy = int(vFragScreenPos.y) / uClusterHeight;
|
||||
int clusterIndex = cy * uClusterCols + cx;
|
||||
|
||||
if (dist < uLightRadius[i])
|
||||
{
|
||||
for (int i = 0; i < uMaxLightsPerCluster; ++i) {
|
||||
int lightIndex = clusterLightIndices[clusterIndex * uMaxLightsPerCluster + i];
|
||||
if (lightIndex < 0 || lightIndex >= uLightCount)
|
||||
break;
|
||||
|
||||
vec2 lightVec = uLightPos[lightIndex] - vFragScreenPos;
|
||||
float dist = length(lightVec);
|
||||
if (dist < uLightRadius[lightIndex]) {
|
||||
vec2 lightDir2D = normalize(lightVec);
|
||||
vec3 lightDir = normalize(vec3(lightDir2D, 1.0));
|
||||
float attenuation = smoothstep(uLightRadius[i], 0.0, dist);
|
||||
float attenuation = smoothstep(uLightRadius[lightIndex], 0.0, dist);
|
||||
float diff = max(dot(normal, lightDir), 0.0);
|
||||
vec3 light = uLightColor[i] * diff * attenuation * uLightIntensity[i];
|
||||
vec3 light = uLightColor[lightIndex] * diff * attenuation * uLightIntensity[lightIndex];
|
||||
finalLight += light;
|
||||
}
|
||||
}
|
||||
@ -64,8 +75,5 @@ void main()
|
||||
result = mix(vec3(gray), result, uSaturation);
|
||||
|
||||
result = pow(result, vec3(1.0 / uGamma));
|
||||
|
||||
result = clamp(result, 0.0, 1.0);
|
||||
|
||||
FragColor = vec4(result, texColor.a);
|
||||
FragColor = vec4(clamp(result, 0.0, 1.0), texColor.a);
|
||||
}
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <algorithm>
|
||||
#include <random>
|
||||
#include <format>
|
||||
#include <memory>
|
||||
#include <filesystem>
|
||||
@ -352,10 +353,57 @@ void Engine::Init()
|
||||
|
||||
Renderer::Init();
|
||||
|
||||
auto obj = std::make_shared<Object>("Hello, Create");
|
||||
// auto obj = std::make_shared<Object>("Hello, Create");
|
||||
//
|
||||
// objects.push_back(obj);
|
||||
// selected = obj;
|
||||
|
||||
{
|
||||
std::random_device rd;
|
||||
std::mt19937 rng(rd());
|
||||
std::uniform_real_distribution<float> lightRadius(1000.0f, 2000.0f);
|
||||
std::uniform_real_distribution<float> lightIntensity(1.0f, 3.0f);
|
||||
std::uniform_real_distribution<float> hueDist(0.0f, 1.0f);
|
||||
|
||||
const float tileSize = 1024.0f; // approximate texture size
|
||||
const int gridSize = 10;
|
||||
|
||||
// 10x10 grid of pebble sprites
|
||||
for (int y = 0; y < gridSize; ++y)
|
||||
{
|
||||
for (int x = 0; x < gridSize; ++x)
|
||||
{
|
||||
int index = y * gridSize + x;
|
||||
auto obj = std::make_shared<Object>("Pebble_" + std::to_string(index));
|
||||
obj->SetLocalPosition(glm::vec2(x * tileSize, y * tileSize));
|
||||
|
||||
auto sprite = obj->AddComponent<SpriteComponent>();
|
||||
sprite->SetTexture("C:/Users/spenc/OneDrive/Pictures/textures/ganges_river_pebbles_diff_1k.png");
|
||||
sprite->SetNormalMap("C:/Users/spenc/OneDrive/Pictures/textures/ganges_river_pebbles_nor_gl_1k.png");
|
||||
sprite->SetRenderType(SpriteComponent::RenderType::Lit);
|
||||
|
||||
objects.push_back(obj);
|
||||
selected = obj;
|
||||
}
|
||||
}
|
||||
|
||||
// 100 random lights
|
||||
std::uniform_real_distribution<float> posDist(0.0f, tileSize * gridSize);
|
||||
|
||||
for (int i = 0; i < 100; ++i)
|
||||
{
|
||||
auto obj = std::make_shared<Object>("Light_" + std::to_string(i));
|
||||
obj->SetLocalPosition(glm::vec2(posDist(rng), posDist(rng)));
|
||||
|
||||
auto light = obj->AddComponent<LightComponent>();
|
||||
light->SetRadius(lightRadius(rng));
|
||||
light->SetIntensity(lightIntensity(rng));
|
||||
light->SetColor(HSVtoRGB(hueDist(rng), 0.8f, 1.0f));
|
||||
|
||||
objects.push_back(obj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Logger::LogVerbose("Resverving Objects");
|
||||
|
||||
m_toDraw.reserve(1024);
|
||||
@ -618,6 +666,8 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
|
||||
m_activeCamera = nullptr;
|
||||
m_physicsUpdates.clear();
|
||||
|
||||
const glm::vec2 screenSize = glm::vec2(Renderer::GetSize());
|
||||
|
||||
for (auto &root : objects)
|
||||
if (!root->GetParent())
|
||||
m_collectStack.push_back(root);
|
||||
@ -635,7 +685,7 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
|
||||
if (auto light = obj->GetComponent<LightComponent>())
|
||||
{
|
||||
glm::vec2 world = obj->GetWorldPosition();
|
||||
glm::vec2 screen = (world - camPos) * camZoom + glm::vec2(Renderer::GetSize()) * 0.5f;
|
||||
glm::vec2 screen = (world - camPos) * camZoom + screenSize * 0.5f;
|
||||
Renderer::AddLight(screen, light->GetColor(), light->GetIntensity(), light->GetRadius() * camZoom);
|
||||
}
|
||||
|
||||
@ -648,7 +698,6 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (playing)
|
||||
{
|
||||
if (auto script = obj->GetComponent<ScriptComponent>())
|
||||
@ -663,7 +712,6 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Engine::Run()
|
||||
{
|
||||
while (!glfwWindowShouldClose(window))
|
||||
@ -777,7 +825,6 @@ void Engine::Run()
|
||||
{
|
||||
ImGui::Checkbox("Profile Engine", &g_engineConfig.settings.profile_editor);
|
||||
ImGui::Checkbox("Deep Profileing", &g_engineConfig.settings.profile_deep);
|
||||
|
||||
}
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
@ -952,6 +999,11 @@ void Engine::Run()
|
||||
collectObjects(playing, cameraPos, cameraZoom);
|
||||
profiler.EndEngineSection();
|
||||
|
||||
profiler.BeginEngineSection("Renderer::UpdateClusterLights");
|
||||
|
||||
Renderer::UpdateClusterLights();
|
||||
profiler.EndEngineSection();
|
||||
|
||||
// Sort Objects
|
||||
profiler.BeginEngineSection("Sort Objects");
|
||||
if (m_toDraw.size() > 1)
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <GL/glew.h>
|
||||
#include <glm/glm.hpp>
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
|
||||
static Shader spriteShader;
|
||||
@ -31,6 +32,11 @@ std::unique_ptr<ColorCorrection> Renderer::s_ColorCorrection = nullptr;
|
||||
|
||||
std::vector<Light> Renderer::s_Lights;
|
||||
|
||||
std::vector<Renderer::Cluster> Renderer::s_Clusters;
|
||||
GLuint Renderer::s_ClusterSSBO = 0;
|
||||
int Renderer::s_ClusterCols = 0;
|
||||
int Renderer::s_ClusterRows = 0;
|
||||
|
||||
static Shader tilemapShader;
|
||||
|
||||
void Renderer::InitQuad()
|
||||
@ -89,6 +95,8 @@ void Renderer::Init()
|
||||
|
||||
SetColorCorrection(std::make_unique<ColorCorrection>());
|
||||
|
||||
glGenBuffers(1, &s_ClusterSSBO);
|
||||
|
||||
// Create a 1x1 flat normal map (RGB: 128,128,255)
|
||||
unsigned char flatNormal[3] = {128, 128, 255};
|
||||
glGenTextures(1, &defaultNormalMap);
|
||||
@ -100,6 +108,51 @@ void Renderer::Init()
|
||||
s_DrawCalls = 0;
|
||||
}
|
||||
|
||||
void Renderer::UpdateClusterLights()
|
||||
{
|
||||
PROFILE_ENGINE_SCOPE("Renderer::UpdateClusterLights");
|
||||
|
||||
s_ClusterCols = (width + CLUSTER_SIZE - 1) / CLUSTER_SIZE;
|
||||
s_ClusterRows = (height + CLUSTER_SIZE - 1) / CLUSTER_SIZE;
|
||||
int totalClusters = s_ClusterCols * s_ClusterRows;
|
||||
|
||||
s_Clusters.resize(totalClusters);
|
||||
for (auto &c : s_Clusters)
|
||||
c.lightIndices.clear();
|
||||
|
||||
for (int i = 0; i < s_Lights.size(); ++i)
|
||||
{
|
||||
const Light &light = s_Lights[i];
|
||||
glm::vec2 min = light.screenPos - glm::vec2(light.radius);
|
||||
glm::vec2 max = light.screenPos + glm::vec2(light.radius);
|
||||
|
||||
int minX = glm::clamp(int(min.x) / CLUSTER_SIZE, 0, s_ClusterCols - 1);
|
||||
int maxX = glm::clamp(int(max.x) / CLUSTER_SIZE, 0, s_ClusterCols - 1);
|
||||
int minY = glm::clamp(int(min.y) / CLUSTER_SIZE, 0, s_ClusterRows - 1);
|
||||
int maxY = glm::clamp(int(max.y) / CLUSTER_SIZE, 0, s_ClusterRows - 1);
|
||||
|
||||
for (int y = minY; y <= maxY; ++y)
|
||||
for (int x = minX; x <= maxX; ++x)
|
||||
{
|
||||
Cluster &cluster = s_Clusters[y * s_ClusterCols + x];
|
||||
if (cluster.lightIndices.size() < MAX_LIGHTS_PER_CLUSTER)
|
||||
cluster.lightIndices.push_back(i);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<int> packed;
|
||||
packed.resize(totalClusters * MAX_LIGHTS_PER_CLUSTER, -1);
|
||||
for (int i = 0; i < totalClusters; ++i)
|
||||
{
|
||||
for (int j = 0; j < s_Clusters[i].lightIndices.size(); ++j)
|
||||
packed[i * MAX_LIGHTS_PER_CLUSTER + j] = s_Clusters[i].lightIndices[j];
|
||||
}
|
||||
|
||||
glBindBuffer(GL_SHADER_STORAGE_BUFFER, s_ClusterSSBO);
|
||||
glBufferData(GL_SHADER_STORAGE_BUFFER, packed.size() * sizeof(int), packed.data(), GL_DYNAMIC_DRAW);
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, s_ClusterSSBO);
|
||||
}
|
||||
|
||||
void Renderer::Resize(int w, int h)
|
||||
{
|
||||
|
||||
@ -213,10 +266,6 @@ void Renderer::DrawTilemap(TilemapComponent *tilemap, const glm::vec2 &worldPos,
|
||||
glBindVertexArray(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void Renderer::DrawSprite(SpriteComponent *sprite, const glm::vec2 &pos, float zoom, glm::vec2 &CameraPos)
|
||||
{
|
||||
PROFILE_DEEP_SCOPE("DrawSprite");
|
||||
@ -286,6 +335,10 @@ void Renderer::DrawSprite(SpriteComponent *sprite, const glm::vec2 &pos, float z
|
||||
}
|
||||
|
||||
shader->SetInt("uLightCount", static_cast<int>(s_Lights.size()));
|
||||
shader->SetInt("uClusterWidth", CLUSTER_SIZE);
|
||||
shader->SetInt("uClusterHeight", CLUSTER_SIZE);
|
||||
shader->SetInt("uClusterCols", s_ClusterCols);
|
||||
shader->SetInt("uMaxLightsPerCluster", MAX_LIGHTS_PER_CLUSTER);
|
||||
|
||||
for (size_t i = 0; i < s_Lights.size(); ++i)
|
||||
{
|
||||
@ -303,6 +356,8 @@ void Renderer::DrawSprite(SpriteComponent *sprite, const glm::vec2 &pos, float z
|
||||
glActiveTexture(GL_TEXTURE1);
|
||||
glBindTexture(GL_TEXTURE_2D, sprite->GetNormalMapID() ? sprite->GetNormalMapID() : defaultNormalMap);
|
||||
}
|
||||
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, s_ClusterSSBO);
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <GL/glew.h>
|
||||
#include <glm/glm.hpp>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
#include "Components/TilemapComponent.h"
|
||||
#include "Components/SpriteComponent.h"
|
||||
@ -9,13 +10,11 @@
|
||||
#include "utils/Shader.h"
|
||||
#include "utils/Profiler.h"
|
||||
|
||||
|
||||
struct ColorCorrection {
|
||||
float brightness = 1.0f;
|
||||
float saturation = 1.0f;
|
||||
float gamma = 1.0f;
|
||||
|
||||
|
||||
void Upload(Shader& shader) const {
|
||||
shader.SetFloat("uBrightness", brightness);
|
||||
shader.SetFloat("uSaturation", saturation);
|
||||
@ -23,17 +22,14 @@ struct ColorCorrection {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
struct Light
|
||||
{
|
||||
struct Light {
|
||||
glm::vec2 screenPos;
|
||||
glm::vec3 color;
|
||||
float intensity;
|
||||
float radius;
|
||||
};
|
||||
|
||||
class Renderer
|
||||
{
|
||||
class Renderer {
|
||||
public:
|
||||
static void Init();
|
||||
static void Resize(int w, int h);
|
||||
@ -47,7 +43,6 @@ public:
|
||||
static void ClearLights();
|
||||
|
||||
static void DrawEditorGrid(const glm::vec2 &cameraPos, float zoom);
|
||||
|
||||
static void DrawGizmoLine(const glm::vec2 &worldStart, const glm::vec2 &worldEnd, const glm::vec3 &color, const glm::vec2 &cameraPos, float zoom);
|
||||
static void DrawGizmoRect(const glm::vec2 &worldPos, const glm::vec2 &size, const glm::vec3 &color, const glm::vec2 &cameraPos, float zoom);
|
||||
static void DrawGizmoCircle(const glm::vec2 &worldCenter, float radius, int segments, const glm::vec3 &color, const glm::vec2 &cameraPos, float zoom);
|
||||
@ -58,11 +53,14 @@ public:
|
||||
static int GetLightsCount();
|
||||
|
||||
static void SetColorCorrection(std::unique_ptr<ColorCorrection> correction);
|
||||
|
||||
static ColorCorrection *GetColorCorrection();
|
||||
|
||||
// Clustered lighting
|
||||
static void UpdateClusterLights(); // Call once per frame after all lights added
|
||||
|
||||
private:
|
||||
static std::vector<Light> s_Lights;
|
||||
|
||||
static GLuint fbo, textureColorBuffer, rbo;
|
||||
static GLuint defaultNormalMap;
|
||||
static int width, height;
|
||||
@ -74,4 +72,19 @@ private:
|
||||
static GLuint LoadShader(const char *vertexSrc, const char *fragmentSrc);
|
||||
|
||||
static std::unique_ptr<ColorCorrection> s_ColorCorrection;
|
||||
|
||||
// --- Clustered Lighting ---
|
||||
static constexpr int CLUSTER_SIZE = 16;
|
||||
static constexpr int MAX_LIGHTS_PER_CLUSTER = 32;
|
||||
|
||||
struct Cluster {
|
||||
std::vector<int> lightIndices;
|
||||
};
|
||||
|
||||
static std::vector<Cluster> s_Clusters;
|
||||
static GLuint s_ClusterSSBO;
|
||||
static int s_ClusterCols;
|
||||
static int s_ClusterRows;
|
||||
|
||||
|
||||
};
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <string>
|
||||
#include <GL/glew.h>
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
// Returns filename from a full path (e.g., "C:/foo/bar.png" → "bar.png")
|
||||
std::string GetFilenameFromPath(const std::string& path);
|
||||
@ -10,3 +11,28 @@ std::string GetFilenameFromPath(const std::string& path);
|
||||
GLuint LoadTextureIfNeeded(const std::string& path);
|
||||
|
||||
bool DeleteLatestLogFile();
|
||||
|
||||
|
||||
// HSV → RGB helper
|
||||
inline glm::vec3 HSVtoRGB(float h, float s, float v)
|
||||
{
|
||||
float r, g, b;
|
||||
|
||||
int i = int(h * 6);
|
||||
float f = h * 6 - i;
|
||||
float p = v * (1 - s);
|
||||
float q = v * (1 - f * s);
|
||||
float t = v * (1 - (1 - f) * s);
|
||||
|
||||
switch (i % 6)
|
||||
{
|
||||
case 0: r = v; g = t; b = p; break;
|
||||
case 1: r = q; g = v; b = p; break;
|
||||
case 2: r = p; g = v; b = t; break;
|
||||
case 3: r = p; g = q; b = v; break;
|
||||
case 4: r = t; g = p; b = v; break;
|
||||
case 5: r = v; g = p; b = q; break;
|
||||
}
|
||||
|
||||
return glm::vec3(r, g, b);
|
||||
}
|
Loading…
Reference in New Issue
Block a user