项目作者: xiaoxianrouzhiyou

项目描述 :
My own 3D editor in order to learn graphics algorithms and game engine architecture.
高级语言: C++
项目地址: git://github.com/xiaoxianrouzhiyou/BBearEditor-2.0.git
创建时间: 2021-05-07T11:00:32Z
项目社区:https://github.com/xiaoxianrouzhiyou/BBearEditor-2.0

开源协议:MIT License

下载


BigBear Editor 2.0 - 3D Learning-Oriented Engine

BigBear Editor is a free 3D learning-oriented engine project built by me, Bear X. Originally, I started to build it in 2018 during my master’s degree of computer science. It was intended as a project in which I can organize my knowledge of C++ and OpenGL. After that, I suspended this project because of my busy work and exams. About May, I passed the exam successfully, and I started working on this project again. I discovered how terrible the project I wrote before. So I studied some related knowledge and resources, including rendering, engine architecture, etc., and reconstructed this project. So I named it 2.0. Whenever I learn a piece of knowledge, I will reproduce it in this project. I believe that this is a good way to learn, accumulate and consolidate knowledge! In addition, this project has implemented some basic functions. When I need to reproduce a new technology, I can use many implemented or integrated functions, which greatly improves my learning efficiency! Compared to learning complex engines, such as the source code of Unreal Engine 4, (that’s too complicated). It is a better choice to continously build our own micro-engine during the learning process. Anyway, I want to share my source code with other friends or developers who might be going down the same path as mine and need a reference or just something to look up.

Disclaimer

Although this version 2.0 of the project has indeed undergone a reconstruction, due to time constraints, the code is still somewhat ugly.

  • Some buttons or menu items on the interface are just interfaces, and I do not implement their functions.
  • Some operations is not considered with various situations, nor does it do various troubleshooting work for possible misoperations.
  • Some memory is not released properly.
  • There are many bugs, and it is easy to crash.

The problems I have listed are the ones that can be easily corrected and realized through simple techniques, but this could take a lot of time. As I said before, this project is just a learning-oriented project. Its purpose is considered to organize and accumulate knowledge, not to provide users with comfortable use. So when these problems did not hinder my study and research, I did not have enough time to correct them for the time being.
In addition, I referred to some code, learning resources, UI designs, and art resources. I’m pretty thankful!

Environment

  • Windows 10. Although I built version 1.0 in Mac, version 2.0 is built on Windows. I do not consider Mac compatibility for the time being.
  • QT 5.7.2
  • Qt Creator 4.11.1
  • MinGW 5.3.0 32bit for C++
  • OpenGL. The higher the version, the more effects you can use.
  • Python 3.7.9 32bit. Please copy …/Python/Python37-32/Lib into Code/BBearEditor/Engine/Python!

    Features

    Here lists the features that already exists in my engine. (Some contents need to be improved) o(╥﹏╥)o
  • Fully featured viewer and editor application
    • Object create/delete/set-parent
    • Scene hierarchy viewing
    • Coordinate system and object transformation
    • Movable camera
    • GUI object/material inspector for viewing/editing
    • Drag & Drop operation
  • Rendering System
    • Pipeline
      • Forward Rendering
      • Deferred Rendering
    • 2D & 3D
      • Sprite, Canvas, Full screen quad
      • Mesh, Terrain, TBN, Sky box
    • Lighting & Shadows
      • Multiple types of lighting: Directional light, Point light, Spotlight, Arealight
      • Soft Shadow: PCF, PCSS, VSM
      • Spherical Harmonic Lighting: Zonal Harmonics
      • Ray Tracing: Efficient GPU Screen-Space Ray Tracing
      • Photon Mapping
      • GI: SSAO, SSDO, FLC
      • Anisotropic Lighting: KajiyaKay Hair
      • Volume Rendering: Cloud
    • PBR with IBL support
    • Common Shader
      • Water
      • Heat Distort
      • Normal Mapping
      • Translucency
      • Cartoon Rendering
      • Fog
    • High Performance Rendering
      • Tiled & Clustered LightCulling
      • Balanced K-D Tree
      • Compute Shader
  • Physics
    • Fluid: SPH, PCISPH
    • Cloth: PBD
  • Math & Geometry
    • Ray
    • Bounding Box
    • Collision Detection
    • Frustum
    • Marching Cubes
    • Perlin Noise
  • 3D FBX Skeletal Animation (version 1.0, It hasn’t been reconstructed yet ~ T.T)
  • Asset Manager
    • Asset Import & Management
      • Texture
      • OBJ
      • FBX (version 1.0)
      • Python Script
    • Serialization & Deserialization
      • Scene
      • Material
  • Memory Pool: TLSF
  • Python Virtual Machine

    TODO

    Due to limited time, the functions I listed above may not be as cool as the words seem. Of course, I still have many plans. There are a lot of knowledge gaps I have to fill, and I will continue to improve my project!
  • Continuous reproduction of papers
  • Vulkan
  • Improve Photon Mapping
  • Bézier curve
  • Improve Volume Rendering
  • More constraints for cloth
  • Improve PBR
  • Animation System
  • TFO Particle System
  • Extension of Python
  • Font Rendering
  • LOD SceneI really look forward to making friends with related interests, and we will share experience and learn together! I’m Big Bear (● ̄(エ) ̄●)