Skip to content

kyle-robinson/non-euclidean-framework

Repository files navigation

Non-Euclidean Framework (Research Project)

MSBuild-Debug   MSBuild-Release   CodeQL  

A framework for creating various Non-Euclidean effects achieved using numerous advanced graphical methods, including RTT (render-to-texutre), recursive scene rendering, stencil masking, and with addition of porting models to a Non-Euclidean space using the appropriate forumlae for converting position and vector data.

image

List of Features

  • Stencil-Masked Geometry
  • Render-To-Texture
  • Recursive Scene Rendering
  • Porting to Non-Euclidean Space

Getting Started

The Non-Euclidean framework provides numerous tools for interacting with the graphics features that have been implemented. Refer to the following information on how to install and use the application.

Dependencies

To use the framework, the following prerequisites must be met.

  • Windows 10+
  • Visual Studio
  • Git Version Control

The framework relies on the following libraries and APIs to function.

  • DirectX 11
  • ImGui
  • Assimp

Installing

To download a copy of the framework, select "Download ZIP" from the main code repository page, or create a fork of the project. More information on forking a GitHub respository can be found here.

Executing program

As the project settings have been modified to support the addition of the aforementioned libraries and APIs, there are no additional steps required to execute the application.

Appendices

non-euclidean-geometry.gif recursive-scene-render.gif
Non-Euclidean Geometry RTT & Recursive Scene Rendering
non-euclidean-space.gif non-euclidean-optical-illusion.gif
Elliptic & Hyperbolic Spaces Optical Illusions

Credits

Code Reference
    Luna, F., (2011). Introduction to 3D Game Programming with DirectX 11, Mercury Learning & Information.
    Available at: https://files.xray-engine.org/boox/3d_game_programming_with_DirectX11.pdf

    "Mathematics for 3D Game Programmming and Computer Graphics" by Eric Lengyel

Research Reference
    Bruce, A., (2015). Antichamber: An Overnight Success, Seven Years In The Making, GDC, [video]. Available at: https://www.youtube.com/watch?v=wOlcB-JxkFw (Accessed: 26th October 2022)
    
    Möller, H., (2018). Antichamber: A strange world, Munich, Bavaria, [paper]. Available at: https://hendrik.fam-moe.de/wp-content/uploads/2019/02/Antichamber_Analysis.pdf (Accessed: 26th October 2022)
    
    Chyr, W., (2016). Manifold Garden: Level Design in Impossible Geometry, GDC, [video]. Available at: https://www.youtube.com/watch?v=ed2zmmcEryw (Accessed: 26th October 2022)
    
    L. Sandal, M., (2020). ‘The Backrooms Game’ Brings a Modern Creepypasta to Life [What We Play in the Shadows], [editorial]. Bloody-Disgusting [editoral]. Available at: https://bloody-disgusting.com/editorials/3614536/play-shadows-backrooms-game-brings-modern-creepypasta-life/ (Accessed: 26th October 2022)
    
    Ilett, D., (2019). Portals | Part 2 - Stencil-based Portals, Headache-inducing geometry, [editorial]. Available at: https://danielilett.com/2019-12-14-tut4-2-portal-rendering/ (Accessed: 26th October 2022)
    
    Rinsma, T., (2013). Rendering recursive portals with OpenGL, [editorial]. Available at: https://th0mas.nl/2013/05/19/rendering-recursive-portals-with-opengl/ (Accessed: 26th October 2022)
    
    Szirmay-Kalos, L., & Magdics, M., (2021). Adapting Game Engines to Curved Spaces, [paper]. SpringerLink, Available at: https://link.springer.com/article/10.1007/s00371-021-02303-2 (Accessed: 26th October 2022)
    
    Stone, J., (2016). OpenGL Render to Texture, Render to Texture: Fixed Function vs. Modern OpenGL, ICS, [editorial]. Available at: https://www.ics.com/blog/render-texture-fixed-function-vs-modern-opengl (Accessed: 13th November 2022)
    
    J. Kligard, M., (1999). Improving Shadows and Reflections via the Stencil Buffer, [paper]. Available at: https://www.researchgate.net/publication/238248138_Improving_Shadows_and_Reflections_via_the_Stencil_Buffer (Accessed: 13th November 2022)
    
    Cronkhite, J., (2008). Why Is Minkowski Spacetime Non-Euclidean?, [paper], American Journal of Physics. Available at: https://www.nist.gov/publications/why-minkowski-spacetime-non-euclidean (Accessed: 20th November 2022)
    
    Smith, K., (2020). Non-Euclidean Worlds Engine, CodeParade, [video]. Available at: https://www.youtube.com/watch?v=kEB11PQ9Eo8 (Accessed: 27th November 2022)
    
    Smith, K., (2020). Non-Euclidean Geometry Explained – Hyperbolica Devlog #1, CodeParade, [video]. Available at: https://www.youtube.com/watch?v=zQo_S3yNa2w (Accessed: 27th November 2022)
    
    Segerman, H., (2015). Illuminating hyperbolic geometry, [video]. Available at: https://www.youtube.com/watch?v=eGEQ_UuQtYs (Accessed: 27th November 2022)