8000 GitHub - hexahero/gfxren: Simplistic 3D graphics renderer
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

hexahero/gfxren

Repository files navigation

gfxren

Simplistic 3D graphics renderer implemented in C++ and OpenGL 3.3 API
Current project state: core functionality is implemented, awaiting further feature extension (in development)


Credits: "Grey Knight" by LamedeFeu, "DNA" by Holoxica. (more at the end of the readme)

Build Requirements (tested)

  • Windows 64-bit operating system
  • Windows SDK 8.0 or newer
  • Visual Studio Community 2015 or newer
  • OpenGL 3.3 compatible video adapter

Build application with your Visual Studio IDE using soluton file gfxren.sln
For an IDE agnostic build use buildnrun.bat, release only (msbuild path has to be set)

Controls

W, A, S, D - Moves camera forwards, to the left, backwards and to the right respectively
Spacebar - Moves camera upwards
F - Toggle borderless fullscreen mode
G - Toggle GUI
Mouse left button - Camera control
Mouse right button - Toggle cursor and camera mode
Mouse scroll - Zoom in/out

Features Implemented

  • Keyboard and mouse input
  • Scene camera
  • Construction of primitive models (geometric shapes)
  • Support for model transformations in 3D space
  • Shader building and interaction system
  • Logging system and other utility features

Module Info

Directory Information
asset Functionality necessary for importing textures, constructing meshes and models. Model 3D transformations.
context Provides application's front-end with components, needed to create window and rendering context. Interacts with operating system/window-specific stuff.
gpudata Components allowing data transition between system and GPU memory. Data buffer creation.
Data upload and description.
input Keyboard and mouse input handling. Key binding.
rendering Contains component responsible for drawing graphics and interaction with shader programs.
scene Provides transformations for camera-like behaviour.
shader Shader program compilation and linkage. Provides interface between C++ and GLSL programs.
util Logging, exception handling etc.

Roadmap

Nearest future

  • Implement model import feature (implemented)
  • GUI (implemented)
  • Lighting and antialiasing (partially implemented)

Long-term perspective

  • Basic physics
  • Software ray-tracing
  • Skeletal animations


Credits to the authors of the assets used in this project
"Grey Knight" (https://sketchfab.com/3d-models/grey-knight-0885c00ffa75478e9c6abe6b0370d285) by LamedeFeu (https://sketchfab.com/lamedefeu) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
"DNA" (https://sketchfab.com/3d-models/dna-60e95170b37549e3b45ee490b74bb112) by Holoxica (https://sketchfab.com/holoxica) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)

About

Simplistic 3D graphics renderer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0