Skip to content

Commit 216496f

Browse files
P0k3rf4ceNoahFreeloveMauoHardyraynimishHaseebManzoor6
authored
Editor (#217)
* Added logger and basic shader * Safe uniform setting * Fixed segfault * Added vibe tests * oops test fix * Updated for PR requested changes * Add Shader + Logger class (#25) * Deriv Function implementation for ODE solver, (default gravity applied) (#26) * Implement derivative functions and testing framework for animation module * Add default gravity affect on derivative functions and unit tests for animation module * Add computeCOM method to AnimationProperties for centre of mass computation (#19) * Update class declaration for COM computation * Implement computeCentreOfMassAndVolume * Make computeCentreOfMassAndVolume static * Add computeCenterOfMassAndVolume tests * Add coverage related files to gitignore * Implement ODE solver (Euler method) (#23) * made ODE solver and test folders * made ODE solver and test folders * finished ODE Classs * fixed fractional time left * actually fixed it --------- Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> * Fixed compiler warning * 16 modeling meshclass (#33) * Mesh class textbook code * mesh class tests * Remove Textures vector from Mesh class Textures should be handled in the Model, not the Mesh --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Basic draft for material class (#27) * draft for material class * v2 design. Uses textures instead of pure colors * fixed include error * should not compile * Added model class * Reworked material texture names * Added additional object constructors * Changed Texture Names for Material * 4 inertia tensor (#41) * Inertia tensor and inverse added * Added inertia tests * Removed redundant comments * 4 - Rewrote the function to use the Eigen Library. Also got rid of the constructor stuff * 4 - Added inverse functionality * 4-Modified the corresponding header file * Fix the code so it compiles * 4-Rewrote to use indices * 4 - Changed the header to match * 4-Rewrote the unit tests, and modified the function accordingly * removed unnessisary print statement * Bug fix --------- Co-authored-by: Tymofiy Sompura <tsompura2@gmail.com> * 50 camera (#52) * Camera class * Rotation functions * Camera: Switch to Eigen from glm * Added update method for model props * Added skeleton for model loading * Added camera to scene * mesh loading, generation of normal vectors WIP * Draft for asset-management-system (#66) * Mesh Loading * Add collision detection and response for rigid bodies (#64) * 41 bounding box (#74) * 41 - Initial Ideas for bounding box * 41- bounding box logic added * 41- Added tests * 41 Now uses eigen's alignedBox * Added Tag extraction (#77) * implemented Material loading (#75) * implemented Material loading * Fixed texture loads & logging improvements --------- Co-authored-by: QA1S <qais.alkhatib@mail.utoronto.ca> Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * ModelLoader Hotfix * Removed some debug comments, modified face count * Model Loader Bugfixez * Ode solver PLUS QP all in one (#84) * Add OSQP as submodule * finished qp and ode solver * finished making ode solver with odeint * Remove unused Boost submodules, keeping only odeint-v2 and osqp * sync (#114) * bug: fix return for getModelMatrix * Add Shader + Logger class (#25) (#31) ok * Fix Issue #29 (#30) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * feat: add quad rendering (#32) * add: method to set matrix4f uniform * Feat: Implement bloom (#35) * feat: implement bloom * fix: fix logger fmt * Fix linking errors * fix: rename test dir for utils * fix: address comments --------- Co-authored-by: Tymofiy Sompura <tsompura2@gmail.com> * add: method to set matrix4f uniform (#36) * fix: rename shaders and change paths (#43) * 18 model loading (#42) * Added logger and basic shader * Safe uniform setting * Fixed segfault * Added vibe tests * oops test fix * Updated for PR requested changes * Add Shader + Logger class (#25) * Fixed compiler warning * 16 modeling meshclass (#33) * Mesh class textbook code * mesh class tests * Remove Textures vector from Mesh class Textures should be handled in the Model, not the Mesh --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Implemented model loader. Testing remaining still. Update ModelProperties to better fit the structure for the loader * Implemented model loader. Testing remaining still. Update ModelProperties to better fit the structure for the loader * quick CMakeLists.txt fix --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: HaseebManzoor6 <42979246+HaseebManzoor6@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-3MLASM6.localdomain> * feat: implement #14 (#38) * add pbr shaders * implements #14 (mostly) * add: define pi constant locally * [#13] feat: implement genIrradianceMap (#20) * Initial skeleton for genIrradianceMap * Configuring viewport to capture irradiance dimensions after binding FBO * Integrating shader into irradiance map generator * Created frag/vert for irradiancemap, decoupled irradiancemap logic off of renderproperties * Update RenderProperties.hpp * Implement genBRDFLUT (#40) * Implement genBRDFLUT * Cherrypicked Emmy's brdf shaders and restructured shader files * Render quad with coords * Gen prefilter map method implementation Resolves #11 (#37) * Pushing prefilter implementation * refactor: clean up (#44) * shader de-duplication + cleanup * reorganize default shaders * refactor genIrradianceMap into pbrPreProcessing * refactor genBRDFLUT into pbrPreProcessing * refactor genPrefilterMap + clean up documentation * fix: change shader names to reflect refactoring * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * model loader patch (#69) (#70) hotfix: Removed irrelevant files, patched model props Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * ff team branch (#97) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Whatsgoingon (#107) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * i thought this was fixed * update team branch... again...? (#108) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Fix: Use SSBO for lights (#67) * fix: use UBOs for lights * switch to ssbo for light data * update OpenGL to version 4.3 * Jarvis, revert that change * Add shadow test for directional lights * Add support for point lights * sync (#109) * model loader patch (#69) (#70) hotfix: Removed irrelevant files, patched model props Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * ff team branch (#97) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Whatsgoingon (#107) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * i thought this was fixed * update team branch... again...? (#108) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Ethan Vince-Budan <ethan.vince.budan@gmail.com> Co-authored-by: su-ah <emmrald4@gmail.com> Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * 56 - Write shadow pass shaders (#79) * Copy over joey's shaders for shadow mapping * Update shadow_mapping_depth.frag * remove extra shaders --------- Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: su-ah <emmrald4@gmail.com> * Fix build errors (#102) * Update scene object architecture (#103) * Swicth update methods for Object * Update the main file architecture * Fix infinite loop --------- Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Revert "Merge branch 'rendering-team-dev' into main" This reverts commit fcce2a4, reversing changes made to 6232759. yo github wtf was that * add workflow automation (#65) * Create branch-on-issue.yml add a workflow to automatically create a new branch whenever an issue is opened - the name of the branch is formatted as `[team]-#[issue no.]`, where the team is detected from the labels - this means that every new issue requires a team label on creation - the `nobranch` label can be used to prevent creation of a branch for certain issues * fix: new branch sources from team branch * add: workflow also creates draft pr. also uses github cli where convenient * add: workflow which marks issues as "in progress" on commit to its pr * fix: set token correctly * add: adds comment on new issue to reference generated pr * add: bot id * add: workflow to delete issue branches on merge * fix: easier way to get issue closed by pr * implemented stuff * copy over actions, change ids, remove unnecessary debug vars * accidentally did rendering ticket on this branch lmao --------- Co-authored-by: Eric Ryu <ericryu19@gmail.com> Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> Co-authored-by: Eric Ryu <47423409+ryu-kyu@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <tsompura2@gmail.com> Co-authored-by: QA1S <77554399+QA1S@users.noreply.github.com> Co-authored-by: HaseebManzoor6 <42979246+HaseebManzoor6@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-3MLASM6.localdomain> Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: Rowel Eshan <94141074+rowel-eshan@users.noreply.github.com> Co-authored-by: TrueDescription <65911416+TrueDescription@users.noreply.github.com> Co-authored-by: Ethan Vince-Budan <ethan.vince.budan@gmail.com> * fix (#117) * bug: fix return for getModelMatrix * Add Shader + Logger class (#25) (#31) ok * Fix Issue #29 (#30) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * feat: add quad rendering (#32) * add: method to set matrix4f uniform * Feat: Implement bloom (#35) * feat: implement bloom * fix: fix logger fmt * Fix linking errors * fix: rename test dir for utils * fix: address comments --------- Co-authored-by: Tymofiy Sompura <tsompura2@gmail.com> * add: method to set matrix4f uniform (#36) * fix: rename shaders and change paths (#43) * 18 model loading (#42) * Added logger and basic shader * Safe uniform setting * Fixed segfault * Added vibe tests * oops test fix * Updated for PR requested changes * Add Shader + Logger class (#25) * Fixed compiler warning * 16 modeling meshclass (#33) * Mesh class textbook code * mesh class tests * Remove Textures vector from Mesh class Textures should be handled in the Model, not the Mesh --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Implemented model loader. Testing remaining still. Update ModelProperties to better fit the structure for the loader * Implemented model loader. Testing remaining still. Update ModelProperties to better fit the structure for the loader * quick CMakeLists.txt fix --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: HaseebManzoor6 <42979246+HaseebManzoor6@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-3MLASM6.localdomain> * feat: implement #14 (#38) * add pbr shaders * implements #14 (mostly) * add: define pi constant locally * [#13] feat: implement genIrradianceMap (#20) * Initial skeleton for genIrradianceMap * Configuring viewport to capture irradiance dimensions after binding FBO * Integrating shader into irradiance map generator * Created frag/vert for irradiancemap, decoupled irradiancemap logic off of renderproperties * Update RenderProperties.hpp * Implement genBRDFLUT (#40) * Implement genBRDFLUT * Cherrypicked Emmy's brdf shaders and restructured shader files * Render quad with coords * Gen prefilter map method implementation Resolves #11 (#37) * Pushing prefilter implementation * refactor: clean up (#44) * shader de-duplication + cleanup * reorganize default shaders * refactor genIrradianceMap into pbrPreProcessing * refactor genBRDFLUT into pbrPreProcessing * refactor genPrefilterMap + clean up documentation * fix: change shader names to reflect refactoring * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * model loader patch (#69) (#70) hotfix: Removed irrelevant files, patched model props Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * ff team branch (#97) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Whatsgoingon (#107) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * i thought this was fixed * update team branch... again...? (#108) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Fix: Use SSBO for lights (#67) * fix: use UBOs for lights * switch to ssbo for light data * update OpenGL to version 4.3 * Jarvis, revert that change * Add shadow test for directional lights * Add support for point lights * sync (#109) * model loader patch (#69) (#70) hotfix: Removed irrelevant files, patched model props Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * ff team branch (#97) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Whatsgoingon (#107) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * i thought this was fixed * update team branch... again...? (#108) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Ethan Vince-Budan <ethan.vince.budan@gmail.com> Co-authored-by: su-ah <emmrald4@gmail.com> Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * 56 - Write shadow pass shaders (#79) * Copy over joey's shaders for shadow mapping * Update shadow_mapping_depth.frag * remove extra shaders --------- Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: su-ah <emmrald4@gmail.com> * Fix build errors (#102) * Update scene object architecture (#103) * Swicth update methods for Object * Update the main file architecture * Fix infinite loop --------- Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Revert "Merge branch 'rendering-team-dev' into main" This reverts commit fcce2a4, reversing changes made to 6232759. yo github wtf was that * add workflow automation (#65) * Create branch-on-issue.yml add a workflow to automatically create a new branch whenever an issue is opened - the name of the branch is formatted as `[team]-#[issue no.]`, where the team is detected from the labels - this means that every new issue requires a team label on creation - the `nobranch` label can be used to prevent creation of a branch for certain issues * fix: new branch sources from team branch * add: workflow also creates draft pr. also uses github cli where convenient * add: workflow which marks issues as "in progress" on commit to its pr * fix: set token correctly * add: adds comment on new issue to reference generated pr * add: bot id * add: workflow to delete issue branches on merge * fix: easier way to get issue closed by pr * implemented stuff * copy over actions, change ids, remove unnecessary debug vars * accidentally did rendering ticket on this branch lmao * fix project info --------- Co-authored-by: Eric Ryu <ericryu19@gmail.com> Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> Co-authored-by: Eric Ryu <47423409+ryu-kyu@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <tsompura2@gmail.com> Co-authored-by: QA1S <77554399+QA1S@users.noreply.github.com> Co-authored-by: HaseebManzoor6 <42979246+HaseebManzoor6@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-3MLASM6.localdomain> Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: Rowel Eshan <94141074+rowel-eshan@users.noreply.github.com> Co-authored-by: TrueDescription <65911416+TrueDescription@users.noreply.github.com> Co-authored-by: Ethan Vince-Budan <ethan.vince.budan@gmail.com> * ee (#118) * bug: fix return for getModelMatrix * Add Shader + Logger class (#25) (#31) ok * Fix Issue #29 (#30) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * feat: add quad rendering (#32) * add: method to set matrix4f uniform * Feat: Implement bloom (#35) * feat: implement bloom * fix: fix logger fmt * Fix linking errors * fix: rename test dir for utils * fix: address comments --------- Co-authored-by: Tymofiy Sompura <tsompura2@gmail.com> * add: method to set matrix4f uniform (#36) * fix: rename shaders and change paths (#43) * 18 model loading (#42) * Added logger and basic shader * Safe uniform setting * Fixed segfault * Added vibe tests * oops test fix * Updated for PR requested changes * Add Shader + Logger class (#25) * Fixed compiler warning * 16 modeling meshclass (#33) * Mesh class textbook code * mesh class tests * Remove Textures vector from Mesh class Textures should be handled in the Model, not the Mesh --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Implemented model loader. Testing remaining still. Update ModelProperties to better fit the structure for the loader * Implemented model loader. Testing remaining still. Update ModelProperties to better fit the structure for the loader * quick CMakeLists.txt fix --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: HaseebManzoor6 <42979246+HaseebManzoor6@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-3MLASM6.localdomain> * feat: implement #14 (#38) * add pbr shaders * implements #14 (mostly) * add: define pi constant locally * [#13] feat: implement genIrradianceMap (#20) * Initial skeleton for genIrradianceMap * Configuring viewport to capture irradiance dimensions after binding FBO * Integrating shader into irradiance map generator * Created frag/vert for irradiancemap, decoupled irradiancemap logic off of renderproperties * Update RenderProperties.hpp * Implement genBRDFLUT (#40) * Implement genBRDFLUT * Cherrypicked Emmy's brdf shaders and restructured shader files * Render quad with coords * Gen prefilter map method implementation Resolves #11 (#37) * Pushing prefilter implementation * refactor: clean up (#44) * shader de-duplication + cleanup * reorganize default shaders * refactor genIrradianceMap into pbrPreProcessing * refactor genBRDFLUT into pbrPreProcessing * refactor genPrefilterMap + clean up documentation * fix: change shader names to reflect refactoring * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * model loader patch (#69) (#70) hotfix: Removed irrelevant files, patched model props Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * ff team branch (#97) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Whatsgoingon (#107) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * i thought this was fixed * update team branch... again...? (#108) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Fix: Use SSBO for lights (#67) * fix: use UBOs for lights * switch to ssbo for light data * update OpenGL to version 4.3 * Jarvis, revert that change * Add shadow test for directional lights * Add support for point lights * sync (#109) * model loader patch (#69) (#70) hotfix: Removed irrelevant files, patched model props Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * ff team branch (#97) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Whatsgoingon (#107) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * i thought this was fixed * update team branch... again...? (#108) * model loader patch (#69) hotfix: Removed irrelevant files, patched model props * Make libraries static (#80) This should fix the build error occuring on Windows systems where the linker was having trouble dealing with some of our circular dependencies * Make AnimationProperties::getModelMatrix const (#96) Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> --------- Co-authored-by: Ethan Vince-Budan <ethan.vince.budan@gmail.com> Co-authored-by: su-ah <emmrald4@gmail.com> Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * 56 - Write shadow pass shaders (#79) * Copy over joey's shaders for shadow mapping * Update shadow_mapping_depth.frag * remove extra shaders --------- Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: su-ah <emmrald4@gmail.com> * Fix build errors (#102) * Update scene object architecture (#103) * Swicth update methods for Object * Update the main file architecture * Fix infinite loop --------- Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * Revert "Merge branch 'rendering-team-dev' into main" This reverts commit fcce2a4, reversing changes made to 6232759. yo github wtf was that * add workflow automation (#65) * Create branch-on-issue.yml add a workflow to automatically create a new branch whenever an issue is opened - the name of the branch is formatted as `[team]-#[issue no.]`, where the team is detected from the labels - this means that every new issue requires a team label on creation - the `nobranch` label can be used to prevent creation of a branch for certain issues * fix: new branch sources from team branch * add: workflow also creates draft pr. also uses github cli where convenient * add: workflow which marks issues as "in progress" on commit to its pr * fix: set token correctly * add: adds comment on new issue to reference generated pr * add: bot id * add: workflow to delete issue branches on merge * fix: easier way to get issue closed by pr * implemented stuff * copy over actions, change ids, remove unnecessary debug vars * accidentally did rendering ticket on this branch lmao * fix project info * increase limit on project item query --------- Co-authored-by: Eric Ryu <ericryu19@gmail.com> Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> Co-authored-by: Eric Ryu <47423409+ryu-kyu@users.noreply.github.com> Co-authored-by: Tymofiy Sompura <tsompura2@gmail.com> Co-authored-by: QA1S <77554399+QA1S@users.noreply.github.com> Co-authored-by: HaseebManzoor6 <42979246+HaseebManzoor6@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-3MLASM6.localdomain> Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: Rowel Eshan <94141074+rowel-eshan@users.noreply.github.com> Co-authored-by: TrueDescription <65911416+TrueDescription@users.noreply.github.com> Co-authored-by: Ethan Vince-Budan <ethan.vince.budan@gmail.com> * Implement #115 (#116) * Branch autogenerated (empty commit) * empty --------- Co-authored-by: GitHub Actions <actions@github.com> Co-authored-by: su-ah <emmrald4@gmail.com> * Implement #119 (#120) * Branch autogenerated (empty commit) * hi --------- Co-authored-by: GitHub Actions <actions@github.com> Co-authored-by: su-ah <emmrald4@gmail.com> * Created utils * Make all libraries static to fix linking errors * Prank'd * #90 modelprops camera (#93) * Send Camera's view matrix in modelprops update * update for new utils --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * AassetManager: model loading integration (#101) * reworked asset-manager + model loading integration * added logging + new ile handling * added tests * fixed bug --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Integrated model loader * Fix compilation errors and warnings on mac * Issue #105 - Add cmd options for common app parameters (#123) * Implement option parsing * Fix warning in optionParser tests * Remove unistd.h import * Compute delta step from options --------- Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> * add launcher files * workflows * builds? * object drawing * set most uniforms - builds, not tested * Fix compiler error on MSVC with M_PI constant * Change AnimProp functions to use Meshes * modeling update * bind textures * debugging attempt * fixed model matrix type (asterisk) * kind of figured it out * test * temp movement code * broken mouse movement * fix crash on window close * CUBEEE * fix camera * move prejection matrix function to camera class * Claude fix for scaling. * Add bunny assets * Pre-Renderer * Pre-Renderer 2 * remove "vulkan-sdk-components" * Update README.md * Modify Vulkan SDK setup instructions in README * Fix vulkan compilation * fix order of some things * update pbr-dev with base changes (#139) * Rearrange drawing code into Renderer * Documentation for Renderer.hpp functions drawFrame and updateUniformBuffer * Documentation for RenderSurface and SwapChain --------- Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: Aaron <57018940+0dm@users.noreply.github.com> * Add base component class * entity class outline * added javadocs * Add camera empty implementation * rearranged todo comments * Purge Qt6 * fixed missing chrono include * basic frame for light calcs in shader * Hook up camera * Clean up Entity and Component classes * Create scene class and move camera logic to it * Added functions for camera movement. Had to move SauceEngineApp into namespace sauce to get RW ref to camera * model loader * Removed palantir malware * Added base imgui config * Removed more palantir spyware * implemented component methods for Entity * Revert "implemented component methods for Entity" This reverts commit cfca809. * implement entity component methods * Changed deltatime calculation to use std::Chrono * fix signatures * Removed herobrine * #144 Dir Light Implementation (#157) * #144 Dir Light Implementation * add future comment re: shininess * added color uniform --------- Co-authored-by: su-ah <emmrald4@gmail.com> * Maks is a king, finished making the function that combines all the lights (#149) * 140 camera impl (#156) * camera implementation * fix lookAt * euler angles stuff * Basic Button * Checkbox * Finished Components (still editing) * Oops I fixed a lot of bugs sorry... * undo unintended change to imgui.ini * also revert cmakelists.txt * undo the undos to cmakelists.txt * remove ui component demo code * draw cube and fix camera * [#145] Basic Spot Light Shader Functionality (#147) * Implemented standard functionality for spot light shader * Small comment for question * Changing light choking logic for spotlight * add note for future change for a param * Slight modifications based on feedback * re-add range into attenuation --------- Co-authored-by: su-ah <emmrald4@gmail.com> * slide to the left slide to the right (#160) * complete #151 (#164) * Point light methods (#162) * point light method * small change * Add ImGui Layout & Containers component abstractions (#163) - Window (Begin/End) - ChildWindow (BeginChild/EndChild) - TreeNode (TreeNode/TreePop) - CollapsingHeader - Separator - Spacing - SameLine - Columns (BeginColumns/EndColumns) - Group (BeginGroup/EndGroup) * Abstract ui components (#159) * Abstract ui components * Update CMakeLists.txt --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * Add Vulkan resources to Mesh class (#169) * Add Vulkan resources to Mesh class * Fix error * Added vulkan resources to the texture class, hooray (#170) * added look at, physical device stuff, migrate sauceengine from hpp to cpp file * ImGui Validation layer fixes * editor initial commit * Lit and unlit mode, and some vulkan bugfixes * made the changes required as per the ticket (#171) * made the changes required as per the ticket * Add Vulkan resources to Mesh class (#169) * Add Vulkan resources to Mesh class * Fix error * Added vulkan resources to the texture class, hooray (#170) * maks is a king fr fr --------- Co-authored-by: Rowel Eshan <94141074+rowel-eshan@users.noreply.github.com> Co-authored-by: Luis <luisf.vbarro@gmail.com> * UI (#176) * Added base imgui config * Removed more palantir spyware * Removed herobrine * Basic Button * Checkbox * Finished Components (still editing) * Oops I fixed a lot of bugs sorry... * undo unintended change to imgui.ini * also revert cmakelists.txt * undo the undos to cmakelists.txt * remove ui component demo code * slide to the left slide to the right (#160) * complete #151 (#164) * Add ImGui Layout & Containers component abstractions (#163) - Window (Begin/End) - ChildWindow (BeginChild/EndChild) - TreeNode (TreeNode/TreePop) - CollapsingHeader - Separator - Spacing - SameLine - Columns (BeginColumns/EndColumns) - Group (BeginGroup/EndGroup) * Abstract ui components (#159) * Abstract ui components * Update CMakeLists.txt --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> * added look at, physical device stuff, migrate sauceengine from hpp to cpp file * ImGui Validation layer fixes --------- Co-authored-by: Damon Ma <damondma@gmail.com> Co-authored-by: Damon Ma <76179763+Damon-D-Ma@users.noreply.github.com> Co-authored-by: Aaron <57018940+0dm@users.noreply.github.com> Co-authored-by: git-commit-rm-rf <ray.nguyen@mail.utoronto.ca> Co-authored-by: K.Aujla <142739679+FriedricNietzsche@users.noreply.github.com> Co-authored-by: Rowel Eshan <94141074+rowel-eshan@users.noreply.github.com> * Changed code to use PBR shader (#182) * feat(shaders): add PBR shader with SSBO lights (task 8) Add shader_pbr.slang implementing a Cook-Torrance specular BRDF for physically based rendering with dynamic lights via SSBO. Shader features: - GGX/Trowbridge-Reitz Normal Distribution Function - Smith-Schlick Geometry Function (direct-lighting k remapping) - Fresnel-Schlick approximation - Energy-conserving Lambertian diffuse - TBN matrix construction from vertex tangent (w = handedness) - Normal mapping with configurable scale Light system: - Unified Light struct (directional, point, spot) in a single StructuredBuffer (SSBO, binding 2) replacing the old separate ConstantBuffer arrays from shader_lights.slang - Dynamic light count via push constant - Smooth range windowing and spotlight cone falloff Material system: - MaterialData UBO (binding 1) mirroring MaterialProperties from Material.hpp: baseColorFactor, metallicFactor, roughnessFactor, emissiveFactor, normalScale, occlusionStrength - 5 PBR texture samplers (bindings 3-12): baseColor, normal, metallicRoughness, occlusion, emissive - glTF 2.0 metallic-roughness packing (G=roughness, B=metallic) Outputs linear HDR; tonemapping and gamma correction are handled by the post-processing pass (postprocess.slang, tasks 11-12). IBL note: The shader contains a TODO and hardcoded constant ambient term (0.03 * albedo * ao). Task 10 IBL pre-compute shaders (ibl_irradiance, ibl_prefilter, ibl_brdf_lut) are now available. The TODO is kept as a reference point for when IBL sampling is integrated into the PBR shader. Descriptor layout (set 0): 0 - ConstantBuffer<UniformBuffer> (vert+frag) 1 - ConstantBuffer<MaterialData> (frag) 2 - StructuredBuffer<Light> (frag, SSBO) 3 - Texture2D baseColorMap (frag) 4 - SamplerState baseColorSampler (frag) 5 - Texture2D normalMap (frag) 6 - SamplerState normalSampler (frag) 7 - Texture2D metallicRoughnessMap (frag) 8 - SamplerState metallicRoughnessSampler (frag) 9 - Texture2D occlusionMap (frag) 10 - SamplerState occlusionSampler (frag) 11 - Texture2D emissiveMap (frag) 12 - SamplerState emissiveSampler (frag) push_constant - uint lightCount Build: registered shaderPBRTarget in shaders/CMakeLists.txt. Validated: compiles cleanly with slangc, passes spirv-val. * fix(shaders): re-add tonemap and gamma with TODOs for post-process integration Post-process shader (postprocess.slang) exists but is not yet wired into the renderer pipeline. Re-adding Reinhard tonemap and gamma correction in shader_pbr.slang so output is viewable in the meantime. Marked with TODO(tasks 11-12) for removal once integrated. * Updated shader to use the PBR shader --------- Co-authored-by: Krisvir Aujla <krisviraujla@gmail.com> * [PBR] shader with SSBO lights (task 8) (#180) * feat(shaders): add PBR shader with SSBO lights (task 8) Add shader_pbr.slang implementing a Cook-Torrance specular BRDF for physically based rendering with dynamic lights via SSBO. Shader features: - GGX/Trowbridge-Reitz Normal Distribution Function - Smith-Schlick Geometry Function (direct-lighting k remapping) - Fresnel-Schlick approximation - Energy-conserving Lambertian diffuse - TBN matrix construction from vertex tangent (w = handedness) - Normal mapping with configurable scale Light system: - Unified Light struct (directional, point, spot) in a single StructuredBuffer (SSBO, binding 2) replacing the old separate ConstantBuffer arrays from shader_lights.slang - Dynamic light count via push constant - Smooth range windowing and spotlight cone falloff Material system: - MaterialData UBO (binding 1) mirroring MaterialProperties from Material.hpp: baseColorFactor, metallicFactor, roughnessFactor, emissiveFactor, normalScale, occlusionStrength - 5 PBR texture samplers (bindings 3-12): baseColor, normal, metallicRoughness, occlusion, emissive - glTF 2.0 metallic-roughness packing (G=roughness, B=metallic) Outputs linear HDR; tonemapping and gamma correction are handled by the post-processing pass (postprocess.slang, tasks 11-12). IBL note: The shader contains a TODO and hardcoded constant ambient term (0.03 * albedo * ao). Task 10 IBL pre-compute shaders (ibl_irradiance, ibl_prefilter, ibl_brdf_lut) are now available. The TODO is kept as a reference point for when IBL sampling is integrated into the PBR shader. Descriptor layout (set 0): 0 - ConstantBuffer<UniformBuffer> (vert+frag) 1 - ConstantBuffer<MaterialData> (frag) 2 - StructuredBuffer<Light> (frag, SSBO) 3 - Texture2D baseColorMap (frag) 4 - SamplerState baseColorSampler (frag) 5 - Texture2D normalMap (frag) 6 - SamplerState normalSampler (frag) 7 - Texture2D metallicRoughnessMap (frag) 8 - SamplerState metallicRoughnessSampler (frag) 9 - Texture2D occlusionMap (frag) 10 - SamplerState occlusionSampler (frag) 11 - Texture2D emissiveMap (frag) 12 - SamplerState emissiveSampler (frag) push_constant - uint lightCount Build: registered shaderPBRTarget in shaders/CMakeLists.txt. Validated: compiles cleanly with slangc, passes spirv-val. * fix(shaders): re-add tonemap and gamma with TODOs for post-process integration Post-process shader (postprocess.slang) exists but is not yet wired into the renderer pipeline. Re-adding Reinhard tonemap and gamma correction in shader_pbr.slang so output is viewable in the meantime. Marked with TODO(tasks 11-12) for removal once integrated. * Update shaders/shader_pbr.slang Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update shaders/shader_pbr.slang hmm good catch clanker Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: su-ah <emmrald4@gmail.com> * Scene loading and saving * fix merge target (#192) * Add collider stuff * Add unimplemented collision methods/classes * solver? i hardly know 'er * Update XPBD.hpp * Pushing bloom shader file * Pushing cmake file change --------- Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> Co-authored-by: Aaron <57018940+0dm@users.noreply.github.com> Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> * Load scenes from command line * im not gui anymore * 168 vulkan model (#199) * Starting to figure out the model vulkan thing * modified material and model to help * Fix compilation errors * Fix post-merge compilation error --------- Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> Co-authored-by: Tymofiy Sompura <77696830+P0k3rf4ce@users.noreply.github.com> * Implement HDR Environment Map Loading (#200) * Implement HDR Environment Map Loading * seg fault workaround * Revert "seg fault workaround" This reverts commit 29cdaee. * capitalized the HDR in getHDRData() bc thats acc probably a good idea --------- Co-authored-by: su-ah <emmrald4@gmail.com> * Implemented skeleton functionality for integrating IBL Map Generation * finished shape presets buttons (#201) * [#184] Add remove component button to editor inspector (#204) * Added a way to replace current Model. Modified function signatures to include filepath (#203) * FIX --------- Co-authored-by: Noah Freelove <90488068+NoahFreelove@users.noreply.github.com> Co-authored-by: MauoHardy <113133868+MauoHardy@users.noreply.github.com> Co-authored-by: raynimish <66944002+raynimish@users.noreply.github.com> Co-authored-by: HaseebManzoor6 <42979246+HaseebManzoor6@users.noreply.github.com> Co-authored-by: git-commit-rm-rf <ray.nguyen@mail.utoronto.ca> Co-authored-by: Maksym-W <113399768+Maksym-W@users.noreply.github.com> Co-authored-by: Haseeb <haseebmanzoor6@gmail.com> Co-authored-by: QA1S <77554399+QA1S@users.noreply.github.com> Co-authored-by: QA1S <qais.alkhatib@mail.utoronto.ca> Co-authored-by: su-ah <emmrald4@gmail.com> Co-authored-by: Eric Ryu <ericryu19@gmail.com> Co-authored-by: Tymofiy Sompura <sompurat@mail.utoronto.ca> Co-authored-by: Eric Ryu <47423409+ryu-kyu@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-3MLASM6.localdomain> Co-authored-by: Ziad Zananiri <ziadzananirii@gmail.com> Co-authored-by: Rowel Eshan <94141074+rowel-eshan@users.noreply.github.com> Co-authored-by: TrueDescription <65911416+TrueDescription@users.noreply.github.com> Co-authored-by: Ethan Vince-Budan <ethan.vince.budan@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: GitHub Actions <actions@github.com> Co-authored-by: Aaron <57018940+0dm@users.noreply.github.com> Co-authored-by: varoniba <luis.varoni@mail.utoronto.ca> Co-authored-by: James McCallum <jamesgrm081@gmail.com> Co-authored-by: James <119550406+jamesgrm-mccallum@users.noreply.github.com> Co-authored-by: Luis <luisf.vbarro@gmail.com> Co-authored-by: Damon Ma <damondma@gmail.com> Co-authored-by: Damon Ma <76179763+Damon-D-Ma@users.noreply.github.com> Co-authored-by: K.Aujla <142739679+FriedricNietzsche@users.noreply.github.com> Co-authored-by: Krisvir Aujla <krisviraujla@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent aee0100 commit 216496f

212 files changed

Lines changed: 15011 additions & 2783 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
2+
name: Manage issue/PR on review submission
3+
4+
on:
5+
pull_request_review:
6+
types: [submitted]
7+
8+
jobs:
9+
merge:
10+
if: github.event.review.state == 'approved'
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout repository
15+
uses: actions/checkout@v3
16+
with:
17+
ref: ${{ github.head_ref }}
18+
19+
- name: Set up Git
20+
run: |
21+
git config --global user.name "GitHub Actions"
22+
git config --global user.email "actions@github.com"
23+
24+
- name: merge pr
25+
id: merge_pr
26+
env:
27+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
run: |
29+
gh pr merge --squash ${{ github.event.pull_request.number }}
30+
31+
- name: close issue
32+
id: close_issue
33+
env:
34+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
run: |
36+
37+
# get issue num
38+
TITLE="${{ github.event.pull_request.title }}"
39+
[[ $TITLE =~ \#([0-9]+) ]]
40+
NUM=${BASH_REMATCH[1]}
41+
42+
# close issue
43+
gh issue close $NUM \
44+
--reason 'completed' \
45+
--comment "Implemented by PR \#${{ github.event.pull_request.number }}"
46+
47+
48+
set_ipr:
49+
if: github.event.review.state == 'changes_requested'
50+
runs-on: ubuntu-latest
51+
52+
steps:
53+
- name: Checkout repository
54+
uses: actions/checkout@v3
55+
with:
56+
ref: ${{ github.head_ref }}
57+
58+
- name: Set up Git
59+
run: |
60+
git config --global user.name "GitHub Actions"
61+
git config --global user.email "actions@github.com"
62+
63+
- name: mark pr as draft
64+
id: make_draft
65+
env:
66+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
67+
run: |
68+
gh pr ready --undo ${{ github.event.pull_request.number }}
69+
70+
- name: get issue number
71+
id: get_issue_num
72+
env:
73+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74+
run: |
75+
TITLE="${{ github.event.pull_request.title }}"
76+
[[ $TITLE =~ \#([0-9]+) ]]
77+
NUM=${BASH_REMATCH[1]}
78+
echo "ISSUE_NUM=$NUM" >> $GITHUB_ENV
79+
80+
- name: get issue item id
81+
id: get_issue_item_id
82+
env:
83+
GH_TOKEN: ${{ secrets.EMMY_TOKEN }}
84+
run: |
85+
86+
# get issue item id
87+
ID=$(gh project item-list 5 --owner "P0k3rf4ce" --limit 2000 --format json | jq -r \
88+
'.items[] | select(.content.number == ${{ env.ISSUE_NUM }}) | .id')
89+
echo "ITEM_ID=$ID" >> $GITHUB_ENV
90+
91+
- name: move to ipr
92+
id: move_to_ipr
93+
env:
94+
GH_TOKEN: ${{ secrets.EMMY_TOKEN }}
95+
run: |
96+
gh project item-edit \
97+
--project-id "PVT_kwHOBKGPPs4BDYld" \
98+
--field-id "PVTSSF_lAHOBKGPPs4BDYldzg1UalY" \
99+
--single-select-option-id "47fc9ee4" \
100+
--id "${{ env.ITEM_ID }}"
101+
102+

.gitignore

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,19 @@ run.sh
88
build_and_run.sh
99
build.sh
1010
.idea/
11-
.cmake/
11+
.cmake/
12+
test_coverage.sh
13+
CLAUDE.md
14+
scripts
15+
coverage*
16+
*.log
17+
*.profraw
18+
.cache
19+
shaders/*.spv
20+
21+
22+
23+
# Experimental/temporary files
24+
ModelLoader.cpp
25+
26+
imgui.ini

CMakeLists.txt

Lines changed: 143 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
# CMakeLists.txt (top of file, BEFORE project())
2-
cmake_minimum_required(VERSION 3.20)
1+
cmake_minimum_required(VERSION 3.7)
32

4-
set(CMAKE_CXX_STANDARD 17)
3+
set(CMAKE_CXX_STANDARD 23)
54
set(CMAKE_CXX_STANDARD_REQUIRED ON)
65
set(CMAKE_CXX_EXTENSIONS OFF)
76

@@ -14,47 +13,160 @@ if(WIN32)
1413
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
1514
endif()
1615

17-
add_executable(SauceEngine src/main.cpp)
16+
set(EXEC_NAME SauceEngine)
17+
add_executable(${EXEC_NAME} src/main.cpp)
18+
19+
if (!WIN32)
20+
target_compile_options(${EXEC_NAME} PUBLIC -Wall -Wpedantic -Wextra -Wreorder-init-list -g -O2)
21+
endif()
22+
23+
find_package(Vulkan REQUIRED)
24+
target_link_libraries(${EXEC_NAME} PUBLIC Vulkan::Vulkan)
25+
26+
find_package(Boost REQUIRED COMPONENTS program_options)
27+
target_link_libraries(${EXEC_NAME} PUBLIC Boost::program_options)
28+
29+
find_package(glfw3 CONFIG REQUIRED)
30+
target_link_libraries(${EXEC_NAME} PRIVATE glfw)
31+
32+
find_package(imgui CONFIG REQUIRED)
33+
target_link_libraries(${EXEC_NAME} PRIVATE imgui::imgui)
34+
35+
find_path(TINYGLTF_INCLUDE_DIRS "tiny_gltf.h")
36+
target_include_directories(${EXEC_NAME} PRIVATE ${TINYGLTF_INCLUDE_DIRS})
1837

1938
target_include_directories(SauceEngine PRIVATE
2039
${PROJECT_SOURCE_DIR}/include
2140
)
2241

23-
find_package(glad CONFIG REQUIRED)
24-
target_link_libraries(${PROJECT_NAME} PRIVATE glad::glad)
42+
file(GLOB_RECURSE UI_COMPONENT_SOURCES
43+
"${PROJECT_SOURCE_DIR}/src/app/ui/*.cpp"
44+
)
2545

26-
find_package(glfw3 CONFIG REQUIRED)
27-
target_link_libraries(${PROJECT_NAME} PRIVATE glfw)
46+
target_sources(${EXEC_NAME} PRIVATE
47+
src/app/modeling/Transform.cpp
48+
src/app/modeling/Texture.cpp
49+
src/app/modeling/TextureCache.cpp
50+
src/app/modeling/Material.cpp
51+
src/app/modeling/Mesh.cpp
52+
src/app/modeling/ModelNode.cpp
53+
src/app/modeling/Model.cpp
54+
src/app/modeling/GLTFLoader.cpp
55+
src/app/modeling/GLTFExporter.cpp
56+
src/app/components/TransformComponent.cpp
57+
src/app/components/MeshRendererComponent.cpp
58+
src/app/Scene.cpp
59+
src/app/ImGuiRenderer.cpp
60+
src/app/SauceEngineApp.cpp
61+
src/app/IBLGenerator.cpp
62+
src/app/ui/ImGuiComponentManager.cpp
63+
${UI_COMPONENT_SOURCES}
64+
)
2865

29-
find_package(Eigen3 CONFIG REQUIRED NO_MODULE)
30-
target_link_libraries(${PROJECT_NAME} PRIVATE Eigen3::Eigen)
66+
add_subdirectory(${PROJECT_SOURCE_DIR}/shaders)
67+
# add_dependencies(${EXEC_NAME} shaders) # Requires slangc; pre-compiled .spv files used instead
3168

32-
find_package(Boost REQUIRED COMPONENTS program_options)
33-
target_link_libraries(${PROJECT_NAME} PRIVATE Boost::program_options)
69+
# Model test executable
70+
add_executable(modeltest src/modeltest.cpp)
71+
target_include_directories(modeltest PRIVATE ${PROJECT_SOURCE_DIR}/include)
72+
target_include_directories(modeltest PRIVATE ${TINYGLTF_INCLUDE_DIRS})
3473

35-
find_package(Qt6Widgets CONFIG REQUIRED)
36-
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets)
74+
if (!WIN32)
75+
target_compile_options(modeltest PUBLIC -Wall -Wpedantic -Wextra -Wreorder-init-list -g -O2)
76+
endif()
3777

38-
# Deploy Qt runtime dependencies (DLLs and plugins)
39-
if(WIN32)
40-
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
41-
COMMAND ${CMAKE_COMMAND} -E echo "Deploying Qt dependencies..."
42-
COMMAND Qt6::windeployqt --no-compiler-runtime --no-translations "$<TARGET_FILE:${PROJECT_NAME}>"
43-
COMMENT "Running windeployqt to deploy Qt dependencies"
44-
)
78+
target_sources(modeltest PRIVATE
79+
src/app/modeling/Transform.cpp
80+
src/app/modeling/Texture.cpp
81+
src/app/modeling/TextureCache.cpp
82+
src/app/modeling/Material.cpp
83+
src/app/modeling/Mesh.cpp
84+
src/app/modeling/ModelNode.cpp
85+
src/app/modeling/Model.cpp
86+
src/app/modeling/GLTFLoader.cpp
87+
)
88+
89+
# We need Vulkan headers (but won't initialize Vulkan)
90+
target_link_libraries(modeltest PUBLIC Vulkan::Vulkan)
91+
92+
# ModelViewer executable
93+
add_executable(modelviewer src/modelviewer.cpp)
94+
95+
target_include_directories(modelviewer PRIVATE
96+
${PROJECT_SOURCE_DIR}/include
97+
${TINYGLTF_INCLUDE_DIRS}
98+
)
99+
100+
if (!WIN32)
101+
target_compile_options(modelviewer PUBLIC -Wall -Wpedantic -Wextra -Wreorder-init-list -g -O2)
102+
endif()
103+
104+
target_sources(modelviewer PRIVATE
105+
src/app/ModelViewerRenderer.cpp
106+
src/app/modeling/Transform.cpp
107+
src/app/modeling/Texture.cpp
108+
src/app/modeling/TextureCache.cpp
109+
src/app/modeling/Material.cpp
110+
src/app/modeling/Mesh.cpp
111+
src/app/modeling/ModelNode.cpp
112+
src/app/modeling/Model.cpp
113+
src/app/modeling/GLTFLoader.cpp
114+
src/app/ImGuiRenderer.cpp
115+
)
116+
117+
target_link_libraries(modelviewer PUBLIC Vulkan::Vulkan)
118+
target_link_libraries(modelviewer PRIVATE glfw)
119+
target_link_libraries(modelviewer PRIVATE imgui::imgui)
120+
121+
add_dependencies(modelviewer shaders)
122+
123+
# SauceEditor executable
124+
add_executable(sauceeditor src/editor/main.cpp)
125+
126+
target_include_directories(sauceeditor PRIVATE
127+
${PROJECT_SOURCE_DIR}/include
128+
${TINYGLTF_INCLUDE_DIRS}
129+
)
130+
131+
if (!WIN32)
132+
target_compile_options(sauceeditor PUBLIC -Wall -Wpedantic -Wextra -Wreorder-init-list -g -O2)
133+
endif()
134+
135+
file(GLOB_RECURSE EDITOR_SOURCES
136+
"${PROJECT_SOURCE_DIR}/src/editor/*.cpp"
137+
)
138+
139+
target_sources(sauceeditor PRIVATE
140+
${EDITOR_SOURCES}
141+
src/app/modeling/Transform.cpp
142+
src/app/modeling/Texture.cpp
143+
src/app/modeling/TextureCache.cpp
144+
src/app/modeling/Material.cpp
145+
src/app/modeling/Mesh.cpp
146+
src/app/modeling/ModelNode.cpp
147+
src/app/modeling/Model.cpp
148+
src/app/modeling/GLTFLoader.cpp
149+
src/app/modeling/GLTFExporter.cpp
150+
src/app/components/TransformComponent.cpp
151+
src/app/components/MeshRendererComponent.cpp
152+
src/app/Scene.cpp
153+
src/app/ImGuiRenderer.cpp
154+
)
155+
156+
target_link_libraries(sauceeditor PUBLIC Vulkan::Vulkan)
157+
target_link_libraries(sauceeditor PRIVATE glfw)
158+
target_link_libraries(sauceeditor PRIVATE imgui::imgui)
159+
160+
# Editor only needs GLSL shaders, not the Slang ones
161+
if(TARGET editorGridVert)
162+
add_dependencies(sauceeditor editorGridVert editorGridFrag editorUnlitVert editorUnlitFrag)
45163
endif()
46164

47-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/animation)
48-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/modeling)
49-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/rendering)
50-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/shared)
51165
add_subdirectory(${PROJECT_SOURCE_DIR}/src/launcher)
52166

53-
target_link_libraries(${PROJECT_NAME} PRIVATE launcherLib sharedLib animationLib modelingLib renderingLib)
167+
target_link_libraries(${EXEC_NAME} PRIVATE launcherLib)
54168

55-
find_package(assimp CONFIG REQUIRED)
56-
target_link_libraries(modelingLib PRIVATE assimp::assimp)
169+
if(APPLE)
170+
target_link_options(${EXEC_NAME} PRIVATE "LINKER:-no_warn_duplicate_libraries")
171+
endif()
57172

58-
if (BUILD_TESTS)
59-
add_subdirectory(${PROJECT_SOURCE_DIR}/test)
60-
endif()

CMakePresets.json

100644100755
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
{
2-
"version": 2,
2+
"version": 3,
33
"configurePresets": [
44
{
55
"name": "vcpkg",
66
"binaryDir": "${sourceDir}/build",
77
"cacheVariables": {
88
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
9-
"BUILD_TESTS": "ON"
9+
"VCPKG_INSTALLED_DIR": "${sourceDir}/build/vcpkg_installed",
10+
"BUILD_TESTS": "OFF"
1011
}
1112
}
1213
]
13-
}
14+
}

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@ https://cmake.org/download/
1414

1515
download the source distribution and then use the default install settings.
1616

17+
### Step 0.5: Install Vulkan SDK
18+
19+
Download the Vulkan SDK from here: https://vulkan.lunarg.com/sdk/home
20+
21+
After installing, you need to enable the environment variables so CMake and the application can find the Vulkan headers and libraries.
22+
23+
(For Mac users) Add the following to your shell configuration (e.g., `~/.zshrc` or `~/.bashrc`), replacing the path with your actual installation path and version:
24+
25+
```sh
26+
source ".../VulkanSDK/<VulkanSDK-version>/setup-env.sh"
27+
```
28+
1729
### Step 1: Download and set up vcpkg
1830

1931
Download vcpkg anywhere on your computer (not in our repo):

assets/default-2.frag

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#version 330 core
2+
3+
// Input from vertex shader
4+
in vec3 FragPos; // Fragment position in world space
5+
in vec3 Normal; // Fragment normal in world space
6+
in vec2 TexCoord; // Texture coordinates
7+
8+
// Output color
9+
out vec4 FragColor;
10+
11+
void main()
12+
{
13+
FragColor = vec4(1.0, 1.0, 1.0, 1.0);
14+
}

0 commit comments

Comments
 (0)