All Projects → xiaoxianrouzhiyou → BBearEditor-2.0

xiaoxianrouzhiyou / BBearEditor-2.0

Licence: MIT License
My own 3D engine & editor in order to learn graphics algorithms and game engine architecture.

Programming Languages

C++
36643 projects - #6 most used programming language
GLSL
2045 projects
c
50402 projects - #5 most used programming language
QMake
1090 projects
python
139335 projects - #7 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to BBearEditor-2.0

android-3d-model-viewer
Android app to load 3D models in obj, stl, dae & gltf format using pure OpenGL ES 2.0. Published on Play Store https://play.google.com/store/apps/details?id=org.andresoviedo.dddmodel2
Stars: ✭ 150 (+368.75%)
Mutual labels:  renderer, lighting, 3d-engine
DuEngine
An efficient interactive C++ renderer for ShaderToy-alike demos with 2D/3D/CubeMap/Video/Camera/LightField/Volume textures. (Partially used in my I3D 2018 papers)
Stars: ✭ 62 (+93.75%)
Mutual labels:  glsl, shader, renderer
C3de
C3DE is a 3D Game Engine powered by MonoGame
Stars: ✭ 78 (+143.75%)
Mutual labels:  physics, lighting, 3d-engine
AndroidGLKit
AndroidGLKit provides OpenGL ES 2.0 boilerplate codes for Android.
Stars: ✭ 22 (-31.25%)
Mutual labels:  glsl, shader
shaping-functions
Visualisation of shaping functions
Stars: ✭ 75 (+134.38%)
Mutual labels:  glsl, shader
glsl-cos-palette
glsl function for making cosine palettes
Stars: ✭ 26 (-18.75%)
Mutual labels:  glsl, shader
nuance
A tool to run your shaders on the gpu. Also a good demo application for wgpu-rs.
Stars: ✭ 26 (-18.75%)
Mutual labels:  glsl, shader
Legion-Engine
Rythe is a data-oriented C++17 game engine built to make optimal use of modern hardware.
Stars: ✭ 502 (+1468.75%)
Mutual labels:  physics, 3d-engine
minimal gl
PC 4K Intro Editor
Stars: ✭ 36 (+12.5%)
Mutual labels:  glsl, shader
card-game-GLSL
card game in the single GLSL shader
Stars: ✭ 20 (-37.5%)
Mutual labels:  glsl, shader
qt5-tutorials
graphics dojo Qt5
Stars: ✭ 29 (-9.37%)
Mutual labels:  qtcreator, qt5
limitless-engine
OpenGL C++ Graphics Engine
Stars: ✭ 95 (+196.88%)
Mutual labels:  glsl, lighting
ios-spritekit-shader-sandbox
👾 Collection of custom effects for SpriteKit implemented using GLSL/Metal shaders.
Stars: ✭ 63 (+96.88%)
Mutual labels:  glsl, shader
ShaderBoy
Simple text editor that lets you write Shadertoy shaders more comfortably, anytime, anywhere.
Stars: ✭ 133 (+315.63%)
Mutual labels:  glsl, shader
sparksl-noise
minimum proof of concept about procedural noise generation in SparkAR's shader language (SparkSL).
Stars: ✭ 16 (-50%)
Mutual labels:  glsl, shader
ada
A general porpose OpenGL app library
Stars: ✭ 105 (+228.13%)
Mutual labels:  glsl, shader
GLSLShaderShrinker
Optimizes the size of GLSL shader code.
Stars: ✭ 39 (+21.88%)
Mutual labels:  glsl, shader
gopem
GUI for OPEM library
Stars: ✭ 20 (-37.5%)
Mutual labels:  physics, qt5
raymarching
Code for my raymarching in GLSL workshop series
Stars: ✭ 17 (-46.87%)
Mutual labels:  glsl, shader
webgl-noise-examples
examples about noise
Stars: ✭ 72 (+125%)
Mutual labels:  glsl, shader

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
    • Physics
      • Fluid: SSF
    • 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
    • Mesh Subdivision: Catmull-Clark
  • 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
  • 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 Scene

Contacts and Links

I really look forward to making friends with related interests, and we will share experience and learn together! I'm Big Bear (● ̄(エ) ̄●)

Screen Shot

  • PBR Material
    131350577-20c40653-8f73-4351-a082-0c459e8a5923_副本_副本 38FCC5FFFE520709A82F9B12BDA1662F
  • Shadows
    image 134385270-89fba7aa-2299-4f6f-9a4b-b18cae218e0a_副本_副本
  • SH_lighting
    Y(T@48LWH9 2TGQ %GZ3(SE
  • Photon Mapping
    A temporary progress, there are still some problems, which will be corrected later~ T.T
    The left figure shows the position of photons. Red photons are the nearest K photons around a point tested. {84A H%5_SB` SBFED03BN
  • Volume Cloud
    Volume Cloud
  • SPH Fluid
    fluid
  • Marching Cubes
    fluid2
  • Cartoon Rendering
    Make do with it. Please forgive me for not having art resources...
    B$)FZ(V$)QNN$ %`26%OXJ5
  • Main interface
    V%BRYKJB E9I0JK(YGZ7ZMM

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].