Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a comprehensive node-based editing system for the Spartan engine, enabling visual shader/material editing through a graph-based UI. The implementation includes a complete node system architecture with rendering, interaction handling, and mathematical utilities for Bezier curve drawing.
Key Changes:
- Implemented
NodeWidgetwith grid-based canvas supporting pan, zoom, and node manipulation - Created node system architecture with
NodeBase,Pin,Link, and template-based node creation - Added Bezier curve math utilities and ImGui layout helpers for smooth connection rendering
- Integrated node editor into the main editor UI with toolbar icon support
Reviewed changes
Copilot reviewed 46 out of 49 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
ResourceCache.h/cpp |
Added icon types (Flow, Circle, Square, Node) for node UI elements |
NodeWidget.h/cpp |
Main widget implementing node editor with grid, interaction, and context menu |
NodeSystem/ |
Core node architecture: NodeBase, Pin, Link, NodeBuilder, NodeLibrary, Templates |
NodeSystem/Nodes/ |
Concrete node implementations (Add, Subtract, Multiply, Divide, Branch, LessThan) |
ImGui/ImGui_ViewGrid.h/cpp |
Grid rendering system with pan/zoom support |
ImGui/Nodes/imgui_bezier_math.* |
Bezier curve math for smooth connection curves |
ImGui/Nodes/imgui_extra_math.* |
Vector and rectangle math utilities |
ImGui/ImGui_Extension.h |
Type safety improvements using uint8_t for enums |
Editor.cpp, MenuBar.cpp |
Integration of NodeWidget into editor UI |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| float a = GetInputValue<float>(0); | ||
| float b = GetInputValue<float>(1); | ||
| float result = (b != 0.0f) ? (a / b) : 0.0f; // Prevent division by zero |
There was a problem hiding this comment.
Division by zero is handled but returns 0.0f, which may not be the desired behavior in all contexts. Consider whether NaN, infinity, or an error flag would be more appropriate, or document why 0.0f is the correct default for this use case.
| constexpr float header_height = 30.0f; | ||
| constexpr float pin_spacing = 24.0f; |
There was a problem hiding this comment.
Magic numbers header_height = 30.0f and pin_spacing = 24.0f are duplicated across multiple functions (DrawNode, DrawLinks, FindPinAt). These should be class constants to ensure consistency and ease of maintenance.
| Link* NodeWidget::FindLinkNear(const ImVec2& pos, float max_distance) | ||
| { | ||
| // Simplified link hit detection - check distance to link midpoint | ||
| for (const auto& link : m_node_builder->GetLinks()) | ||
| { | ||
| const Pin* start_pin = m_node_builder->FindPin(link->GetStartPinID()); | ||
| const Pin* end_pin = m_node_builder->FindPin(link->GetEndPinID()); | ||
|
|
||
| if (!start_pin || !end_pin) | ||
| continue; | ||
|
|
||
| const NodeBase* start_node = start_pin->GetNode(); | ||
| const NodeBase* end_node = end_pin->GetNode(); | ||
|
|
||
| if (!start_node || !end_node) | ||
| continue; | ||
|
|
||
| const ImVec2 start_screen_pos = m_grid.GridToScreen(start_node->GetPosition()); | ||
| const ImVec2 end_screen_pos = m_grid.GridToScreen(end_node->GetPosition()); | ||
|
|
||
| ImVec2 midpoint = ImVec2( | ||
| (start_screen_pos.x + end_screen_pos.x) * 0.5f, | ||
| (start_screen_pos.y + end_screen_pos.y) * 0.5f | ||
| ); | ||
|
|
||
| if (float dist = sqrtf(powf(pos.x - midpoint.x, 2) + powf(pos.y - midpoint.y, 2)); dist <= max_distance) | ||
| return link.get(); |
There was a problem hiding this comment.
The link hit detection is overly simplistic - it only checks the midpoint distance. This will make it difficult to select links that are not near their midpoint. Consider using proper distance-to-curve calculation or the existing Bezier projection utilities (ImProjectOnCubicBezier).
| // Update pin linked states | ||
| Pin* start_pin = FindPin((*it)->GetStartPinID()); | ||
| Pin* end_pin = FindPin((*it)->GetEndPinID()); | ||
|
|
||
| if (start_pin && !IsPinLinked(start_pin->GetID())) | ||
| start_pin->SetLinked(false); | ||
|
|
||
| if (end_pin && !IsPinLinked(end_pin->GetID())) | ||
| end_pin->SetLinked(false); | ||
|
|
||
| m_links.erase(it); |
There was a problem hiding this comment.
The condition checks if the link state needs updating (!IsPinLinked) before setting SetLinked(false), but this logic is flawed. After deleting a link, the pin should be marked as not linked. However, IsPinLinked checks if there are ANY other links still connected to this pin. If there are, the pin should remain linked. The current logic correctly handles this, but it should be done for both pins before erasing the link from the list to avoid checking a deleted link.
| // Update pin linked states | |
| Pin* start_pin = FindPin((*it)->GetStartPinID()); | |
| Pin* end_pin = FindPin((*it)->GetEndPinID()); | |
| if (start_pin && !IsPinLinked(start_pin->GetID())) | |
| start_pin->SetLinked(false); | |
| if (end_pin && !IsPinLinked(end_pin->GetID())) | |
| end_pin->SetLinked(false); | |
| m_links.erase(it); | |
| Pin* start_pin = FindPin((*it)->GetStartPinID()); | |
| Pin* end_pin = FindPin((*it)->GetEndPinID()); | |
| // Erase the link first so IsPinLinked reflects the correct state | |
| m_links.erase(it); | |
| if (start_pin && !IsPinLinked(start_pin->GetID())) | |
| start_pin->SetLinked(false); | |
| if (end_pin && !IsPinLinked(end_pin->GetID())) | |
| end_pin->SetLinked(false); |
| Max, | ||
| Flow, | ||
| Circle, | ||
| Square, | ||
| Node |
There was a problem hiding this comment.
The IconType enum is being extended after the Max entry. New enum values should be added before Max to maintain its role as a sentinel value for iteration and validation purposes. Adding entries after Max breaks any code that relies on Max to determine the enum range.
| if (ImGui::IsMouseClicked(ImGuiMouseButton_Left) && m_hovered_pin && !m_link_start_pin) | ||
| { | ||
| m_link_start_pin = const_cast<Pin*>(m_hovered_pin); |
There was a problem hiding this comment.
Using const_cast to strip const-ness from m_hovered_pin is dangerous and indicates a design issue. If m_hovered_pin is const qualified, it should remain const. Consider either:
- Storing
Pin*(non-const) if mutation is needed - Separating the mutable link creation state from the hover state
- Using a separate variable for link creation that is properly typed as
Pin*
| { | ||
| m_show_create_menu = true; | ||
| m_create_menu_pos = grid_mouse_pos; | ||
| m_create_from_pin = const_cast<Pin*>(m_hovered_pin); |
There was a problem hiding this comment.
Another use of const_cast to strip const-ness. This pattern appears multiple times in the code and represents a design flaw. The member variable m_hovered_pin should be Pin* instead of const Pin* if you need to modify it.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Updated .gitignore to exclude build_scripts/__pycache__ directory and deleted file_utilities.cpython-314.pyc to keep the repository clean of compiled Python files.
- Added Doxygen-style documentation to NodeBase and its methods, including template helpers and the PinValue type. - Add Doxygen-style documentation to all major classes and enums - Moved function `GetInstance` in `NodeLibrary.h` to the source file. - Made the class constructor for `NodeProperties` explicit. - Minor formatting and code style improvements were also made. - Replaced `ImRec NodeBase::GetRect()` return with a braced based initilizer (a better C++ practice) - Enforce explicit copy/move semantics for core types - Add enum-to-string helper functions for debugging/UI - Refactor NodeWidget for clarity and better initialization - Mark APIs as [[nodiscard]] and improve const-correctness - Clean up code, add TODOs, and ensure consistency throughout
|
appreciate the work here, the ImGui node editor implementation looks really solid. However, I assume this was built with the intention of allowing artists to create custom shaders (similar to Unreal/Unity). There is a fundamental architectural mismatch here, as Spartan Engine does not support dynamic shader generation. Uber Shader vs. Shader Generation Spartan Engine utilizes a strict Uber Shader architecture (similar to id Tech). We rely on a fixed, pre-compiled set of Pipeline State Objects (currently ~29 PSOs). How Spartan works: Materials define Data (uniforms, textures, flags) that feed into a fixed shader pipeline. We do not recompile shaders per material. How Node Editors work: They generate unique HLSL/GLSL Code per material. This requires runtime compilation and results in a unique PSO for every single material graph, which defeats our optimization strategy. Moving forward because the node editor implementation itself is high quality, I am going to keep this PR open. I want to evaluate if we can repurpose this UI for a different system that relies on logic flow rather than shader compilation (e.g., Sound cues, AI Behavior Trees, or Post-Process chains). Thanks |
Thanks for reviewing! @PanosK92 Yes the original idea was to create a node editor to replace the existing text based shader editor already present in Spartan however over time I realized it would just be better to have a general node editor GUI base that can be utilized for different things and not just shaders. It was Once I began writing the node editor that by making it able to create and edit the shaders did I realize it would require an extensive refactor of the pipeline state objects for the Spartan Vulkan and DirectX 12 abstraction. So rather then do that, I decided to implement a basic node editor GUI that can be used for procedural asset creation, general asset management, scripting, AI interactions, in game events, etc. I kept the GUI style the same with how Spartan looks and functions. It has the ability to add animation and custom nodes through a node template setup.
One part I left open for future development is the creation of node libraries which contain a preset of nodes and their functions which are to be loaded in runtime. This would be a minor refactor to swap the nodes from the Editor to the Spartan runtime so its not conflicting with user created nodes. The node editor is a "Widget" like all the other ImGui widgets in Spartan with the difference being the Node Editor will pull the mouse position and selection data in a viewport that overrides the scene viewport. Tasks/ items that can be done to further enhance the Node Editor:
I hope with some time some uses can be found for this! |
commit 5aa534c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 21:02:43 2026 +0000 [car] 7 rays per wheel, and perfect wheel mesh to wheel shape matching commit 8fffe18 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 18:41:35 2026 +0000 [car] even better handling (including tire temperature) commit d344b2e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 18:02:35 2026 +0000 [car] even better handling and some more bug fixes commit 930cf77 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 17:15:36 2026 +0000 [car] fixed wheels and body not matching physics, also fixed very hard suspension commit dccf809 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 16:27:20 2026 +0000 [car] improved handling commit 2b06207 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 14:22:23 2026 +0000 [car] suspension tuning commit cd2c0ef Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 13:48:48 2026 +0000 [car] fixed telemetry bugs commit 0873e30 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 12:19:00 2026 +0000 [car] improved handling and fixed some bugs commit b74dd4d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 11:58:04 2026 +0000 [car] improved handling a custom tire friction formula and more commit fa656f8 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 11:32:07 2026 +0000 [car] fixed some handling issues commit 1f8d763 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 22:26:46 2026 +0000 [car] added anti-roll bars and more on-screen metrics commit 5461ab8 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 22:03:24 2026 +0000 [car] moved the vehicle namespace from physics.cpp into car, and renamed to car commit 418aeff Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 21:19:34 2026 +0000 [car] added suspension and improved handling commit 1e5a53e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 20:42:48 2026 +0000 [car] attached wheels commit a4c72bf Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 16:00:29 2026 +0000 [physics] added a way to control wheel transforms commit 2aa0733 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 15:30:03 2026 +0000 [game] clean up commit 48eeb39 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 14:04:00 2026 +0000 [game] car can now be driven using the arrow keys commit 90682ee Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:49:07 2026 +0000 [physics] implemented vehicle support, created a new default world for prototyping commit 1db2710 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:37:46 2026 +0000 [physics] improved cpu performance by about 1 ms in massive worlds like the forest commit 073f946 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:29:48 2026 +0000 [math] optimized matrix commit 2b80f59 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:21:49 2026 +0000 [math] optimized vector3 commit 5ffc0a1 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:15:34 2026 +0000 [shaders] removed unused function commit 98e7e89 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 12:19:11 2026 +0000 [shaders] improved ibl and atmospheric scattering commit 6670429 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 09:10:00 2026 +0000 [game] added floors to sponza and subway, so there is a frame or reference commit 80c042a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 08:38:41 2026 +0000 [atmospheric_scattering] modern re-write (ue5/frostbite) commit 1fac87d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 21:20:36 2026 +0000 [depthoffield] physically-based with automatic focus commit 271ae4a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 21:09:58 2026 +0000 [motionblur] brand new, top of the line commit 98f0b7b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:47:37 2026 +0000 [renderer] debug draw primitives (lines, spheres, etc) now have a duration parameter commit 91c491d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:36:48 2026 +0000 [premake] treat warnings as errors commit 6d83d97 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:32:31 2026 +0000 [terrain] clean up and ability to detect old terrain_cache.bin and regenerated it without user input commit 2104de4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:07:01 2026 +0000 [terrain] even faster generation (we hit the limit, the GPU upload is the bottleneck now) commit 675b076 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 08:58:44 2026 +0000 [terrain] faster generation commit cfeba36 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 20:40:22 2026 +0000 [forest] calibrated grass density commit 39ebdfd Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 20:36:24 2026 +0000 [threadpool] fixed some threading issues commit c1c9f6f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 20:18:56 2026 +0000 [terrain] removed signed of artificiality from grass and flowers commit a76f803 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 16:41:56 2026 +0000 [renderer] toned down bloom and fixed a bug where the gt7 tonemapper wouldn't enable in sdr commit 4f0c3d2 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 16:30:21 2026 +0000 [lighting] calibrated both in-game values and the gran turismo 7 tonampper commit a6859f9 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 16:10:35 2026 +0000 [lighitng] updated daytime camera settings to allow for more light commit 7dd79e8 Merge: 3ae9e45 ff1d5ec Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Sun Jan 4 15:59:58 2026 +0000 Merge pull request PanosK92#204 from DimitrisKalyvas/material [material]: tweaked texture loading assert commit ff1d5ec Author: Dimitris Kalyvas <dimitrismarioskalyvas@gmail.com> Date: Sun Jan 4 17:48:32 2026 +0200 [material]: fixed data loading assert commit 3ae9e45 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 2 09:37:28 2026 +0000 [normals] fixed broken normals (most obvious in sponza) commit b064ea6 Merge: 888404a 0bd275a Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Fri Jan 2 09:08:27 2026 +0000 Merge pull request PanosK92#202 from MrDrElliot/feature/ui-changes Fix world selection crash when no default worlds have been downloaded. commit 888404a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 2 09:06:21 2026 +0000 [contributors[ updated dimitri's contributions and gifted him BeamNG.drive commit 0bd275a Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Wed Dec 31 11:10:27 2025 -0600 Update MenuBar.cpp commit 47dbc41 Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Wed Dec 31 11:09:06 2025 -0600 Fix Crash with worlds. commit 174f3af Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 14:01:58 2025 +0000 [license] updated to 2015-2026 commit 08daa18 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 12:48:26 2025 +0000 [bloom] more spread and less intensity commit 9132ae3 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 12:32:24 2025 +0000 [bloom] upgraded to the Call of Duty: Advanced Warfare version commit caabdfe Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 08:49:57 2025 +0000 [light] simplified and adjusted light presets commit 82686ab Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 07:20:16 2025 +0000 [lighting] fixed a bug where the light count wouldn't always be correct commit 0428bae Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 06:42:55 2025 +0000 [motionblur] physically based (intensity controlled via camera's shutter speed) commit 61c2555 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 14:31:12 2025 +0000 [worlds] fixed car showroom lighting commit 1232bb0 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 09:55:06 2025 +0000 [readme] updated gran turismo 7 photometric tonemapper commit aaf632d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 09:07:56 2025 +0000 [light] introduced presets that automatically set rotation, temperature and intensity, adjusted game.cpp to simply use those preset to variety in the worlds commit cfbef8e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 08:18:50 2025 +0000 [lighting] complete overhaul, everything physically based now, some calibration is still needed to get all worlds to look perfect commit f13c240 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 07:00:32 2025 +0000 [editor] fixed an issue where not all render resolution would be listed in the renderer options for NVIDIA GPUs commit 3a50ff7 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:48:31 2025 +0000 [workflow] yet another tweak commit 14df3c3 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:42:28 2025 +0000 [workflow] removed duplicate contributor listing commit d1cea38 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:37:50 2025 +0000 [workflow] removed duplicate contributor entry in the release notes commit aa9b06d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:31:19 2025 +0000 [workflow] proper username detection commit c48ca66 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:20:53 2025 +0000 [workflow] replaced deprecated actions commit cc893cf Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:17:00 2025 +0000 [workflow] yet another tweak commit af2e566 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 15:40:30 2025 +0000 [workflow] yet another tweak commit 0bcea24 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 15:16:20 2025 +0000 [workflow] ensure that when a release has multiple commits, they are mangled together in the release notes, but listed as bullet points with hyperlinks to the commits commit 647b8a4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 13:15:34 2025 +0000 [contributors] added Bryan commit dbafa70 Merge: 8166fd1 ee03f2e Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Mon Dec 29 13:01:09 2025 +0000 Merge pull request PanosK92#199 from MrDrElliot/master Introduction of Console Variables (CVars) to Spartan Engine commit 8166fd1 Merge: f2ab4e2 175ed66 Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Mon Dec 29 12:48:02 2025 +0000 Merge pull request PanosK92#200 from George540/resource_search_field Simple Resource Viewer search bar filter commit 175ed66 Author: George Mavroeidis <gmav.graphics@gmail.com> Date: Sun Dec 28 04:08:01 2025 -0500 [editor] added case-insensitive search field in resource viewer commit ee03f2e Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 13:35:46 2025 -0600 Update a weird naming conflict. commit 5efce0c Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 13:21:31 2025 -0600 Various other fixes. commit 3b4d12b Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 13:16:19 2025 -0600 Replaced un-needed helper. commit 8c79227 Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 10:56:35 2025 -0600 Formatting fixes. commit 1edf721 Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 10:45:42 2025 -0600 Alignment fix. commit 215042f Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 10:42:51 2025 -0600 Console Variable introduction. - Adds console variables - Fixed mutex issue within logger commit f2ab4e2 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 12:28:24 2025 +0000 [debugging] fixed renderdoc not working in case where the path to out could not be found commit 3bd49a9 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 09:13:23 2025 +0000 [documentation] added an additional PR guidline commit 616d25e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:57:15 2025 +0000 [volume] improved lerpring commit b582a4d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:52:48 2025 +0000 [volume] wired component to renderer commit 4acb562 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:43:59 2025 +0000 [volume] added functionality to store user selected renderer option overrides commit 8ae9409 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:26:20 2025 +0000 [components] added volume component with ability to draw and manipulate it's shape commit dbe91fd Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 03:09:51 2025 +0000 [ibl] remove leftover shadow mask commit af52f08 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 03:08:11 2025 +0000 [ibl] added gtao multi bounce (jimenez) commit 5c628ea Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 03:01:38 2025 +0000 [ssao] improved bent normals and how they are used in the ibl pass commit 9fc91a1 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 02:03:29 2025 +0000 [shadows] removed unused parameters commit 2ad2a46 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 01:56:47 2025 +0000 [shadows] shadow mapping overhaul for maximum quality (accounting for the shadow atlas and massive scale like the forest) commit f0526aa Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:35:15 2025 +0000 [renderer] fixed an issue where disabling auto exposure would still use the last computed luminance commit 5cea86f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:31:38 2025 +0000 [renderer] fixed flickering flashlight icon in front of the camera commit 8974b77 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:06:10 2025 +0000 [hdr] removed white point, this is an old school way of defining paper white on screen, we'll use real physics to determine it while tonemapping commit ee007e3 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:02:37 2025 +0000 [lighting] removed light mask (not needed anymore) commit e795adb Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 24 07:52:35 2025 +0000 [output] added gran turismo 7 physically based tonammper commit 0b498e1 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 23:43:24 2025 +0000 [camera] removed heap allocations when picking commit 5b5d70d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 22:08:38 2025 +0000 delete PR template, not possible commit 50c387c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 22:06:11 2025 +0000 [github] added new feature PR template commit 3a7e9d5 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 21:55:46 2025 +0000 [documentation] updated with yet another PR rule commit 57f6a7b Merge: 7527c64 098b027 Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Tue Dec 23 03:49:51 2025 +0000 Merge pull request PanosK92#195 from reavencode/swapchain-resize-fix Fix crash on swapchain resize commit 098b027 Author: reavencode <antonellodrinkwater@gmail.com> Date: Wed Dec 17 10:41:58 2025 +0100 [fix] The swapchain now unsubscribes itself from the window resize event when it's destroyed. commit 7527c64 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 17 06:24:11 2025 +0000 [forest] optimised grass commit 1212927 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 16 19:55:05 2025 +0000 [event] added ability to unsubscribe from events commit 7281083 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Dec 14 02:52:58 2025 +0000 [fix] when pressing f to disable the flashlight, the intensity will be set to 0 instead of disabling it (which prevents it from updating) commit 180593e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:32:47 2025 +0000 [workflow] fixed release notes step commit ea89b3d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:16:49 2025 +0000 [workflow] fixed all warning during release publishing commit c3bd255 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:12:30 2025 +0000 [workflow] update make the build server use the vs 2022 toolset to build the solution since it doesn't support 2026 yet commit 1d788a6 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:09:12 2025 +0000 [workflow] updated solution extension to slnx which is what vs 2026 uses commit 497462b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:06:00 2025 +0000 [workflow] switch to working directory commit a29b976 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:03:32 2025 +0000 [workflow] removed hardcoded msbuild path commit e64ea90 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 21:55:53 2025 +0000 [projected] delete vs 2022 project generation scripts since vs 2026 is officaly out, updated github workflow to use vs 2026 as well, and also fixed an issue where releases would only list the last commit commit 55e4b9b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 21:49:51 2025 +0000 [editor] improved ux of intro windows, about, and controls commit e256a0d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 21:26:36 2025 +0000 [shadows] improved performance by precalculating vogel samples and improved penumbra quality
commit 268590a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 19:13:59 2026 +0000 [ray_tracing] replaced single bounce gi with restir path tracing, which is just a work in progress for now commit c31e338 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 18:37:03 2026 +0000 [memory] improved memory allocator with memory tags, marking and did some bug fixes commit 06c9f9c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 17:28:15 2026 +0000 [physics] cleanup commit 471eae2 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 17:12:06 2026 +0000 [game] adjusted showroom light intensity commit bc71475 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 16:43:35 2026 +0000 [ray_tracing] global illumination (WIP) commit d406746 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 16:34:16 2026 +0000 [ray_tracing] made ray tracing shaodws mutually exlusive to raster and screen space commit d813c70 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 16:23:41 2026 +0000 [ray_tracing] fixed an issue where if you loaded a second world, acceleration structures wouldn't update properly commit d4ece9f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 16:15:52 2026 +0000 [ray_tracing] directional light shadows commit 1061f6f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 19 15:55:33 2026 +0000 [game] different car views are now working commit 3e687be Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 22:52:40 2026 +0000 [d3d12] implemented so more, getting closer editor rendering commit 47f1447 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 21:56:47 2026 +0000 [vulkan] fixed all remaining swapchain sync issues commit b5d21d7 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 21:17:40 2026 +0000 [world] saving/loading worlds to disc is now complete commit a69e74a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 17:31:26 2026 +0000 [car] implemented aerodynamics based on the body shape commit 67bc7bd Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 17:05:03 2026 +0000 [physics] implement composite convex mesh support and used it for the car body commit 386b206 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 16:22:52 2026 +0000 [sky] improved scattering and clouds (both in terms of performance and quality) commit f7b8c19 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 04:40:39 2026 +0000 [misc] renamed twitter to x commit c1f3ddf Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 04:39:37 2026 +0000 [misc] cleaned up readme commit d568660 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 04:32:31 2026 +0000 [misc] added debug draw volume for area lights, textures will now automatically call PrepareForGpu(), cleaned up gbuffer commit f1aee71 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 03:50:17 2026 +0000 [vulkan] performance boost (optimised descriptors and barriers) commit b32c466 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 18 03:21:16 2026 +0000 [lighting] implemented area light commit 45e28e4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 19:31:42 2026 +0000 [output] calibrated GT7 tonemapper commit 35aaad3 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 19:22:06 2026 +0000 [architecture] removed RHI_Texture_DontPrepareForGpu, the user can do as they please and the engine will handle gpu uploads automatically commit 6266750 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 18:06:59 2026 +0000 [bloom] increased intensity to what it should be commit 0d5ea1b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 18:05:33 2026 +0000 [world] adjusted showroom lighting to what it needs to be now that the tone mapper works commit 04c79ac Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 17:50:15 2026 +0000 [output] fixed gran turismo 7 tone mapping commit 0577cff Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 17:34:14 2026 +0000 [vulkan] fixed an issue where disabling HDR while in the renderer options would re-create the swapchain every frame because NVIDIA supports a different backbuffer format commit 6b4ac6d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 17:14:50 2026 +0000 [clouds] indirect light bounce (they are no longer dark underneath) commit b8967e6 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 16:23:28 2026 +0000 [clouds] quality and performance improvements, enabled by default commit 11950b1 Merge: 6e87286 9d263e0 Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Fri Jan 16 15:57:12 2026 +0000 Merge pull request PanosK92#192 from DimitrisKalyvas/clouds Merging volumetric clouds pull request commit 9d263e0 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 16 15:53:02 2026 +0000 [misc] fixed compilation errors and set clouds to off by default so we can merge them now commit 0c17c22 Merge: ab5a915 6e87286 Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Fri Jan 16 15:21:10 2026 +0000 Merge branch 'master' into clouds commit 6e87286 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 19:28:16 2026 +0000 [ray_tracing] reflections for transparents commit 16b8411 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 18:46:39 2026 +0000 [misc] adjusted showroom lighting commit 80b76bf Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 18:30:22 2026 +0000 [ray_tracing] reflections now receive lighting commit 11b73ba Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 17:55:35 2026 +0000 [ray_tracing] added shadowing to reflections commit 81c340e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 01:48:19 2026 +0000 [shadows] fixed acne visible under certain light angles on the floor commit b757465 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 01:39:26 2026 +0000 [ray_tracing] improved reflections commit e6a0f0b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 01:13:59 2026 +0000 [editor] window bar fixes and visual improvements commit ea12eeb Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 00:26:21 2026 +0000 [renderer] clear reflections to black on disable commit b50b02e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 14 00:09:22 2026 +0000 [gbuffer] fixed jitter present on world space materials, like the floor in all worlds commit 8817115 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 13 17:41:19 2026 +0000 [d3d12] build fix commit b8f76aa Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 13 17:36:44 2026 +0000 [misc] ignore python temp files commit 61cd640 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 13 17:35:35 2026 +0000 [thirdparty] removed sssr commit 933ea8a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 13 14:12:53 2026 +0000 [misc] removed set_render_option helper commit 19f8150 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 13 13:49:20 2026 +0000 [third_party] removed sssr commit e06ca5c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 12 18:04:55 2026 +0000 [ray_tracing] fixed more bugs commit a1555c4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 12 16:56:13 2026 +0000 [vukan] cleaned up bindless array handling commit 310589a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 12 16:20:14 2026 +0000 [ray_tracing] fixed a lot of bugs, almost there commit 717bdf8 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 12 14:31:00 2026 +0000 [ray_tracing] fixed an issuewhere the acceleration structures expected a different matrix layout from that of the engine commit 9d78534 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 21:04:09 2026 +0000 [ray_tracing] partially working reflections (one bug left to go) commit aa8d8e2 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 19:57:43 2026 +0000 [ray_tracing] fixed, reflection pass now outputs debug colors commit 1dd03c7 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 17:45:26 2026 +0000 [editor] fixe issues and improved overall ux for the world/hierarchy view commit 2504dca Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 17:31:54 2026 +0000 [car] removed paint normal as it doesn't tile well commit 3fd1432 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 17:24:46 2026 +0000 [console] custom rendering with text selection support commit 8aeeb32 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 16:55:21 2026 +0000 [car] cleanup commit 22c0c7f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 16:44:39 2026 +0000 [editor] reduced amount of windows during editor's first start commit 685e0c9 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 16:39:28 2026 +0000 [console] console variable suggestion will now appear in a pop-up, no need to scroll commit 52b7bc8 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 16:23:28 2026 +0000 [editor] fixed close button not shutting down the engine commit c123a52 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 16:09:04 2026 +0000 [editor] custom window bar and border rendering commit 781aeee Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 15:45:49 2026 +0000 [editor] disable keyboard navigation when in play mode (fixes controlling the car and the editor accidentally) commit 21e1045 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 15:41:05 2026 +0000 [car] compute wheel physics position from the actually mesh boudning for 1 to 1 match commit 5224012 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 14:19:18 2026 +0000 [car] added turbo simulation. brake temperature (affects efficiency), seperate suspension bump and rebound ratios, wheel camber, and surface friction multipliers commit b0f774a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 14:00:35 2026 +0000 [showroom] adjusted camera position to match the new scale commit 94bd439 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 11 03:07:28 2026 +0000 [misc] reduced motion blur stutter, corected showroom car scale commit 55a9ddb Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 9 16:04:29 2026 +0000 [ray_tracing] fixed a couple of bugs commit 346673c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 9 15:35:28 2026 +0000 [modelimporter] fixed a regression where metallic wouldn't load commit a35f547 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 9 14:46:13 2026 +0000 [car] removed ferrari default wheels, since we have our own commit ea00574 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 9 14:26:20 2026 +0000 [architecture] removed all traces of the old renderer variables, everything is directly using cvars now commit 7845afb Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 9 13:35:58 2026 +0000 [modelimporter] fixed an issue where the mesh/nodes names were wrong and started using cvars commit af0518d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 9 12:46:33 2026 +0000 [material] fixed an issue where materials wouldn't always automatically map to the bindless gpu array commit c961d49 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 9 11:51:03 2026 +0000 [material] greatly simplified how texture packing is done, it's seamless to the user commit a48da6d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 23:46:20 2026 +0000 [readme] updated car simulation section commit 59f6e29 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 23:25:33 2026 +0000 [car] cleaned up commit 9fec4f4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 22:55:42 2026 +0000 [car] added gearbox, and engine simulation commit b9f0e26 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 22:29:07 2026 +0000 [car] improved suspension and steering rate (simulate human and hydraulic response rate) commit 29aa75c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 22:17:02 2026 +0000 [car] added abs and traction control (off by default because we drive properly) commit f4606c9 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 21:48:37 2026 +0000 [forest] ghost of tsushima grass view based widening commit 9f01781 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 13:50:23 2026 +0000 [camera] corrected capsule height (it was 2.8m instead of 1.8m) commit 3d77924 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 13:37:41 2026 +0000 [car] the drivable car can now be part of any world, and it has replaced the dead car in the showroom commit bdcbf62 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 09:59:05 2026 +0000 [car] improved tires so they travel (with momentum) instead of snap to new heights commit e0ad0c9 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 09:31:48 2026 +0000 [world_selection] updated car simulation title and description commit a285f19 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 09:20:16 2026 +0000 [readme] fixed typo commit f958a47 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 09:19:57 2026 +0000 [readme] paragraph correction commit 9d4639f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 09:19:14 2026 +0000 [readme] added car simulation features commit eb743c4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 09:13:43 2026 +0000 [car] fixed temperature to so that it works with the new tire friction model commit efde817 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 09:08:26 2026 +0000 [car] improved tire friction model (approaching forza, gran turismo) commit 74a1551 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 08:47:29 2026 +0000 [car] fixed an issue where the car would slide instead of coming to a stop commit be75710 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 08:40:28 2026 +0000 [car] improved handling and bug fixes commit 4957b41 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Jan 8 08:21:35 2026 +0000 [car] improved handling and cleaned up code commit 5aa534c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 21:02:43 2026 +0000 [car] 7 rays per wheel, and perfect wheel mesh to wheel shape matching commit 8fffe18 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 18:41:35 2026 +0000 [car] even better handling (including tire temperature) commit d344b2e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 18:02:35 2026 +0000 [car] even better handling and some more bug fixes commit 930cf77 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 17:15:36 2026 +0000 [car] fixed wheels and body not matching physics, also fixed very hard suspension commit dccf809 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 16:27:20 2026 +0000 [car] improved handling commit 2b06207 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 14:22:23 2026 +0000 [car] suspension tuning commit cd2c0ef Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 13:48:48 2026 +0000 [car] fixed telemetry bugs commit 0873e30 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 12:19:00 2026 +0000 [car] improved handling and fixed some bugs commit b74dd4d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 11:58:04 2026 +0000 [car] improved handling a custom tire friction formula and more commit fa656f8 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Jan 7 11:32:07 2026 +0000 [car] fixed some handling issues commit 1f8d763 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 22:26:46 2026 +0000 [car] added anti-roll bars and more on-screen metrics commit 5461ab8 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 22:03:24 2026 +0000 [car] moved the vehicle namespace from physics.cpp into car, and renamed to car commit 418aeff Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 21:19:34 2026 +0000 [car] added suspension and improved handling commit 1e5a53e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 20:42:48 2026 +0000 [car] attached wheels commit a4c72bf Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 16:00:29 2026 +0000 [physics] added a way to control wheel transforms commit 2aa0733 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 15:30:03 2026 +0000 [game] clean up commit 48eeb39 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 14:04:00 2026 +0000 [game] car can now be driven using the arrow keys commit 90682ee Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:49:07 2026 +0000 [physics] implemented vehicle support, created a new default world for prototyping commit 1db2710 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:37:46 2026 +0000 [physics] improved cpu performance by about 1 ms in massive worlds like the forest commit 073f946 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:29:48 2026 +0000 [math] optimized matrix commit 2b80f59 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:21:49 2026 +0000 [math] optimized vector3 commit 5ffc0a1 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 13:15:34 2026 +0000 [shaders] removed unused function commit 98e7e89 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 12:19:11 2026 +0000 [shaders] improved ibl and atmospheric scattering commit 6670429 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 09:10:00 2026 +0000 [game] added floors to sponza and subway, so there is a frame or reference commit 80c042a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Jan 6 08:38:41 2026 +0000 [atmospheric_scattering] modern re-write (ue5/frostbite) commit 1fac87d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 21:20:36 2026 +0000 [depthoffield] physically-based with automatic focus commit 271ae4a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 21:09:58 2026 +0000 [motionblur] brand new, top of the line commit 98f0b7b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:47:37 2026 +0000 [renderer] debug draw primitives (lines, spheres, etc) now have a duration parameter commit 91c491d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:36:48 2026 +0000 [premake] treat warnings as errors commit 6d83d97 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:32:31 2026 +0000 [terrain] clean up and ability to detect old terrain_cache.bin and regenerated it without user input commit 2104de4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 09:07:01 2026 +0000 [terrain] even faster generation (we hit the limit, the GPU upload is the bottleneck now) commit 675b076 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Jan 5 08:58:44 2026 +0000 [terrain] faster generation commit cfeba36 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 20:40:22 2026 +0000 [forest] calibrated grass density commit 39ebdfd Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 20:36:24 2026 +0000 [threadpool] fixed some threading issues commit c1c9f6f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 20:18:56 2026 +0000 [terrain] removed signed of artificiality from grass and flowers commit a76f803 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 16:41:56 2026 +0000 [renderer] toned down bloom and fixed a bug where the gt7 tonemapper wouldn't enable in sdr commit 4f0c3d2 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 16:30:21 2026 +0000 [lighting] calibrated both in-game values and the gran turismo 7 tonampper commit a6859f9 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Jan 4 16:10:35 2026 +0000 [lighitng] updated daytime camera settings to allow for more light commit 7dd79e8 Merge: 3ae9e45 ff1d5ec Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Sun Jan 4 15:59:58 2026 +0000 Merge pull request PanosK92#204 from DimitrisKalyvas/material [material]: tweaked texture loading assert commit ff1d5ec Author: Dimitris Kalyvas <dimitrismarioskalyvas@gmail.com> Date: Sun Jan 4 17:48:32 2026 +0200 [material]: fixed data loading assert commit 3ae9e45 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 2 09:37:28 2026 +0000 [normals] fixed broken normals (most obvious in sponza) commit b064ea6 Merge: 888404a 0bd275a Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Fri Jan 2 09:08:27 2026 +0000 Merge pull request PanosK92#202 from MrDrElliot/feature/ui-changes Fix world selection crash when no default worlds have been downloaded. commit 888404a Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Jan 2 09:06:21 2026 +0000 [contributors[ updated dimitri's contributions and gifted him BeamNG.drive commit 0bd275a Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Wed Dec 31 11:10:27 2025 -0600 Update MenuBar.cpp commit 47dbc41 Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Wed Dec 31 11:09:06 2025 -0600 Fix Crash with worlds. commit 174f3af Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 14:01:58 2025 +0000 [license] updated to 2015-2026 commit 08daa18 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 12:48:26 2025 +0000 [bloom] more spread and less intensity commit 9132ae3 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 12:32:24 2025 +0000 [bloom] upgraded to the Call of Duty: Advanced Warfare version commit caabdfe Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 08:49:57 2025 +0000 [light] simplified and adjusted light presets commit 82686ab Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 07:20:16 2025 +0000 [lighting] fixed a bug where the light count wouldn't always be correct commit 0428bae Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 31 06:42:55 2025 +0000 [motionblur] physically based (intensity controlled via camera's shutter speed) commit 61c2555 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 14:31:12 2025 +0000 [worlds] fixed car showroom lighting commit 1232bb0 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 09:55:06 2025 +0000 [readme] updated gran turismo 7 photometric tonemapper commit aaf632d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 09:07:56 2025 +0000 [light] introduced presets that automatically set rotation, temperature and intensity, adjusted game.cpp to simply use those preset to variety in the worlds commit cfbef8e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 08:18:50 2025 +0000 [lighting] complete overhaul, everything physically based now, some calibration is still needed to get all worlds to look perfect commit f13c240 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 30 07:00:32 2025 +0000 [editor] fixed an issue where not all render resolution would be listed in the renderer options for NVIDIA GPUs commit 3a50ff7 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:48:31 2025 +0000 [workflow] yet another tweak commit 14df3c3 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:42:28 2025 +0000 [workflow] removed duplicate contributor listing commit d1cea38 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:37:50 2025 +0000 [workflow] removed duplicate contributor entry in the release notes commit aa9b06d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:31:19 2025 +0000 [workflow] proper username detection commit c48ca66 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:20:53 2025 +0000 [workflow] replaced deprecated actions commit cc893cf Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 16:17:00 2025 +0000 [workflow] yet another tweak commit af2e566 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 15:40:30 2025 +0000 [workflow] yet another tweak commit 0bcea24 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 15:16:20 2025 +0000 [workflow] ensure that when a release has multiple commits, they are mangled together in the release notes, but listed as bullet points with hyperlinks to the commits commit 647b8a4 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Mon Dec 29 13:15:34 2025 +0000 [contributors] added Bryan commit dbafa70 Merge: 8166fd1 ee03f2e Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Mon Dec 29 13:01:09 2025 +0000 Merge pull request PanosK92#199 from MrDrElliot/master Introduction of Console Variables (CVars) to Spartan Engine commit 8166fd1 Merge: f2ab4e2 175ed66 Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Mon Dec 29 12:48:02 2025 +0000 Merge pull request PanosK92#200 from George540/resource_search_field Simple Resource Viewer search bar filter commit 175ed66 Author: George Mavroeidis <gmav.graphics@gmail.com> Date: Sun Dec 28 04:08:01 2025 -0500 [editor] added case-insensitive search field in resource viewer commit ee03f2e Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 13:35:46 2025 -0600 Update a weird naming conflict. commit 5efce0c Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 13:21:31 2025 -0600 Various other fixes. commit 3b4d12b Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 13:16:19 2025 -0600 Replaced un-needed helper. commit 8c79227 Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 10:56:35 2025 -0600 Formatting fixes. commit 1edf721 Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 10:45:42 2025 -0600 Alignment fix. commit 215042f Author: DrElliot <133075253+MrDrElliot@users.noreply.github.com> Date: Fri Dec 26 10:42:51 2025 -0600 Console Variable introduction. - Adds console variables - Fixed mutex issue within logger commit f2ab4e2 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 12:28:24 2025 +0000 [debugging] fixed renderdoc not working in case where the path to out could not be found commit 3bd49a9 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 09:13:23 2025 +0000 [documentation] added an additional PR guidline commit 616d25e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:57:15 2025 +0000 [volume] improved lerpring commit b582a4d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:52:48 2025 +0000 [volume] wired component to renderer commit 4acb562 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:43:59 2025 +0000 [volume] added functionality to store user selected renderer option overrides commit 8ae9409 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 08:26:20 2025 +0000 [components] added volume component with ability to draw and manipulate it's shape commit dbe91fd Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 03:09:51 2025 +0000 [ibl] remove leftover shadow mask commit af52f08 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 03:08:11 2025 +0000 [ibl] added gtao multi bounce (jimenez) commit 5c628ea Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 03:01:38 2025 +0000 [ssao] improved bent normals and how they are used in the ibl pass commit 9fc91a1 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 02:03:29 2025 +0000 [shadows] removed unused parameters commit 2ad2a46 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Fri Dec 26 01:56:47 2025 +0000 [shadows] shadow mapping overhaul for maximum quality (accounting for the shadow atlas and massive scale like the forest) commit f0526aa Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:35:15 2025 +0000 [renderer] fixed an issue where disabling auto exposure would still use the last computed luminance commit 5cea86f Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:31:38 2025 +0000 [renderer] fixed flickering flashlight icon in front of the camera commit 8974b77 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:06:10 2025 +0000 [hdr] removed white point, this is an old school way of defining paper white on screen, we'll use real physics to determine it while tonemapping commit ee007e3 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Thu Dec 25 14:02:37 2025 +0000 [lighting] removed light mask (not needed anymore) commit e795adb Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 24 07:52:35 2025 +0000 [output] added gran turismo 7 physically based tonammper commit 0b498e1 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 23:43:24 2025 +0000 [camera] removed heap allocations when picking commit 5b5d70d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 22:08:38 2025 +0000 delete PR template, not possible commit 50c387c Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 22:06:11 2025 +0000 [github] added new feature PR template commit 3a7e9d5 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 23 21:55:46 2025 +0000 [documentation] updated with yet another PR rule commit 57f6a7b Merge: 7527c64 098b027 Author: Panos Karabelas <PanosConroe@hotmail.com> Date: Tue Dec 23 03:49:51 2025 +0000 Merge pull request PanosK92#195 from reavencode/swapchain-resize-fix Fix crash on swapchain resize commit 098b027 Author: reavencode <antonellodrinkwater@gmail.com> Date: Wed Dec 17 10:41:58 2025 +0100 [fix] The swapchain now unsubscribes itself from the window resize event when it's destroyed. commit 7527c64 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Wed Dec 17 06:24:11 2025 +0000 [forest] optimised grass commit 1212927 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Tue Dec 16 19:55:05 2025 +0000 [event] added ability to unsubscribe from events commit 7281083 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sun Dec 14 02:52:58 2025 +0000 [fix] when pressing f to disable the flashlight, the intensity will be set to 0 instead of disabling it (which prevents it from updating) commit 180593e Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:32:47 2025 +0000 [workflow] fixed release notes step commit ea89b3d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:16:49 2025 +0000 [workflow] fixed all warning during release publishing commit c3bd255 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:12:30 2025 +0000 [workflow] update make the build server use the vs 2022 toolset to build the solution since it doesn't support 2026 yet commit 1d788a6 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:09:12 2025 +0000 [workflow] updated solution extension to slnx which is what vs 2026 uses commit 497462b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:06:00 2025 +0000 [workflow] switch to working directory commit a29b976 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 22:03:32 2025 +0000 [workflow] removed hardcoded msbuild path commit e64ea90 Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 21:55:53 2025 +0000 [projected] delete vs 2022 project generation scripts since vs 2026 is officaly out, updated github workflow to use vs 2026 as well, and also fixed an issue where releases would only list the last commit commit 55e4b9b Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 21:49:51 2025 +0000 [editor] improved ux of intro windows, about, and controls commit e256a0d Author: Panos Karabelas <panosconroe@hotmail.com> Date: Sat Dec 13 21:26:36 2025 +0000 [shadows] improved performance by precalculating vogel samples and improved penumbra quality commit ab5a915 Author: Dimitris Kalyvas <dimitrismarioskalyvas@gmail.com> Date: Sun Dec 7 15:26:56 2025 +0200 [clouds] created atmospheric cloud shader created atmospheric cloud compute shader added options to renderer tab for quick access
* master: (191 commits) [ray_tracing] replaced single bounce gi with restir path tracing, which is just a work in progress for now [memory] improved memory allocator with memory tags, marking and did some bug fixes [physics] cleanup [game] adjusted showroom light intensity [ray_tracing] global illumination (WIP) [ray_tracing] made ray tracing shaodws mutually exlusive to raster and screen space [ray_tracing] fixed an issue where if you loaded a second world, acceleration structures wouldn't update properly [ray_tracing] directional light shadows [game] different car views are now working [d3d12] implemented so more, getting closer editor rendering [vulkan] fixed all remaining swapchain sync issues [world] saving/loading worlds to disc is now complete [car] implemented aerodynamics based on the body shape [physics] implement composite convex mesh support and used it for the car body [sky] improved scattering and clouds (both in terms of performance and quality) [misc] renamed twitter to x [misc] cleaned up readme [misc] added debug draw volume for area lights, textures will now automatically call PrepareForGpu(), cleaned up gbuffer [vulkan] performance boost (optimised descriptors and barriers) [lighting] implemented area light ...

Spartan Node Editor System
This pull request introduces a new grid rendering and input handling system for node-based UI widgets in the editor, along with supporting math utilities for Bezier curves and vector operations. It also includes minor type improvements and integrates the new node widget into the editor's main interface.
Node Widget Integration & Grid System
NodeWidgetto the editor's widget stack, enabling node-based editing capabilities in the UI (Editor.cpp).Gridclass (ImGui_ViewGrid.h,ImGui_ViewGrid.cpp) that handles rendering a customizable grid background, smooth zooming, panning, and coordinate transforms for node-based interfaces. [1] [2]Math Utilities for Node UI
imgui_extra_math.handimgui_bezier_math.hfor advanced vector, rectangle, and Bezier curve math, supporting features like curve sampling, subdivision, intersection, and projection—essential for node graph connections and layout. [1] [2]Type Safety Improvements
DragPayloadTypeandButtonPressenums inImGui_Extension.hto useuint8_tfor better type safety and memory efficiency. [1] [2]Editor UI Enhancement
NodeWidgetheader in the editor source to support its instantiation and usage.Known Bugs: