• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ErfanMo77/Syndra: 3D Game Engine/Renderer

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

ErfanMo77/Syndra

开源软件地址:

https://github.com/ErfanMo77/Syndra

开源编程语言:

C++ 64.6%

开源软件介绍:

Syndra Engine

Syndra is an early-stage 3D game engine with a focus on real-time rendering. Syndra uses OpenGL graphics API and is being developed for the Windows platform.

Motivation

Syndra is my bachelor's thesis project, where I wanted to study how to build 3D game engines. The purpose of this project is not to make 3D games; rather, my primary motivation for making Syndra is to test and learn new algorithms and techniques used mainly in graphics and real-time rendering.

Download

Syndra-Engine v1.1.1-alpha

Showcase

Features

  • Engine

    • Editor (with docking support)
    • Entity Component System (ECS)
    • Event system
    • Console logging
    • Model and texture loading (40+ model file formats support using Assimp)
    • Scene saving and loading using YAML serialization and deserialization
    • Debug visualizer (GBuffer, HDRI map, ...)
    • Immediate mode GUI
    • Component editor (material, mesh, light, tag and camera)
    • Viewport gizmos
    • HDRI skymap loading
  • Rendering

    • Deferred Rendering
    • PBR Rendering (Cook–Torrance BRDF)
    • Materials (with texture loading)
    • Dynamic shadows
    • Different light types (directional, point lights and spot lights)
    • Soft shadows using PCSS algorithm
    • Image Based Lighting (IBL)
    • Fast Approximate Anti-Aliasing (FXAA)
    • Normal mapping

Future

  • Trello Page contains all the upcoming features.

  • Engine

    • Asset manager and content Browser
    • Physics engine
    • CPU and GPU profiling
    • Scripting system
  • Rendering

    • More debug visualizers (grid, wireframe, ...)
    • SSAO (Screen Space Ambient Occlusion)
    • SSR (Screen Space Reflection)
    • Procedural atmospheric sky
    • Point light shadows
    • Bloom
    • Compute shaders for IBL calculations

Compiling

Syndra only supports windows for now. Visual Studio 2019+ is recommended.

Start by cloning the repository with git clone --recursive https://github.com/ErfanMo77/Syndra. If the repository was cloned non-recursively previously, use git submodule update --init to clone the necessary submodules.

Syndra requires Vulkan SDK to compile shaders, so first, you have to run scripts/setup.py to install Vulkan SDK on your device. Then, you can execute GenerateProjects.bat to generate a visual studio solution file and compile the engine.

Third Party Libraries

  • GLFW : Handling windows and mouse and keyboard events.
  • Glad : OpenGL functions loader.
  • spdlog : Console debugger logging.
  • stb_image : Reading and loading textures.
  • ImGui : Immediate mode GUI used in editor UI.
  • ImGuizmo : Editor gizmos.
  • Entt : Used in Entity Component System (ECS).
  • GLM : Matrix and vector operations.
  • Assimp : Loading 3D models with support for more than 40 file formats.
  • yaml-cpp : Scene serialization and deserialization.
  • Vulkan SDK : Shader compilation and reflection.
  • Premake : Projects configuration and visual studio solution generator.

Dependencies

Authors

ErfanMo77 - Erfan Momeni

Acknowledgments

LearnOpenGL Great OpenGL tutorials!

The Cherno game engine series

Logo design : AmirMohammad Abedini

License

Licensed under the Apache License 2.0, see LICENSE for details.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap