Skip to content

Platform for the implementation of creative ideas through computer graphics.

License

Notifications You must be signed in to change notification settings

sabitov-kirill/sculpto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About [sculpto]

Sculpto - full featured render engine with non-programmer friendly API. Distributing with scene editor forms platform for creativity & design & code learning & game engine. Allows implement your ideas through computer graphics via native C++ code/scripts/GUI.

Features

  • possibility to create cross-platform applications
  • high-level render engine abstracted from specific render APIs
  • render pipeline that allows you to create photorealistic images (Blin-Phong shading, shadows, bloom, HDR, exposure tone mapping), it is also possible to create your own pipelines
  • scene system, using ECS pattern (9 diffrent components)
  • ability to create windows with custom GUI Widgets

Roadmap

- [x] so much things                                           |
- [x] blin-phong                                               |
- [x] transfer frame buffers to store textures instead ids     |
- [x] add get id funtion to all render primitives classes      |
- [x] shadow caster component                                  |
- [x] GLSL shaders preprocessor                                |
- [x] normal mapping                                           |
- [x] models loading                                           |
- [x] assets manager                                           |
- [x] single color material and shader (color/texture)         |
- [x] UI panels:                                               |
    - [x] Scene hierarchy                                      |
    - [x] Objects components configuration:                    | 
        - [x] Name component                                   |
        - [x] Transform component                              |
        - [x] Native script component                          |
        - [x] Mesh component                                   |
        - [x] Camera controller component                      |
        - [x] Point light component                            |
        - [x] Directional light component                      |
        - [x] Spot light component                             |
- [x] Add/delete components                                    |
- [x] Create/delete objects                                    |
- [x] Renderer configuration                                   |
- [x] Profiling (FPS)                                          |
- [x] HDR                                                      |
- [x] bloom                                                    |
- [x] render architecture redisgn                              |
- [x] fix memory leaks while window resize                     |
- [x] deffered rendering                                       |
- [x] propeper mesh component configuration                    |
        (problems with meshes in whole application)            |
- [x] scene cameras system                                     |
- [x] GPU ray tracing (client app example)                     |
- [x] scene serialization (save/load)                          |

- [ ] embeded C++/Py scriping                                  |                                          
- [ ] create guide for learning code, using sculpto            |
- [ ] intrinsic functions based optimized math module          |
- [ ] mesh saving                                              |
- [ ] mesh editor using marching cubes                         |
- [ ] optimized models render in Path Tracer using voxel tree  |
- [ ] sceletal animation                                       |
- [ ] PBR render pipeline                                      |
- [ ] sound module                                             |
- [ ] 3D collision system                                      |
- [ ] physics module                                           |
- [ ] screen space SSAO                                        |
- [ ] global illumination based on surfels                     |
- [ ] render context implementation for DirectX, Vulkan, Metal |
- [ ] order independent transparensy                           |
- [ ] full featured 2D renderer                                |
- [ ] android/ios support                                      |                                                         

Rendered Images

Knight model with normal mapping and bloom technices on in Editor. Model with normal maps

Sponza scene with multiple lights Sponza

Cornell Box (using GPU path tracer) Cornell Box

Multiples spheres with diffrent materials (using GPU path tracer) Spheres