Skip to content

CleanroomMC/Kirino-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kirino Engine

The project is highly WIP - contributions are welcome to help accelerate development!

Kirino-Engine is a CPU-GPU dual pipeline rendering engine that combines ECS paradigm and modern rendering techniques. Its primary goal is to overhaul most of the Minecraft's rendering in a future-proof and elegant manner and provide a set of clean rendering APIs to mod devs.

Q&A

  • Why is Kirino-Engine different compared to OptiFine / Sodium / Iris / Canvas?

    • Because Kirino-Engine is fundamentally GPU-driven and ECS-driven, unlike traditional optimizers or shader mods
    • Kirino-Engine reimagines the entire rendering pipeline
    • Kirino-Engine pays a huge attention to its architecture
    • Kirino-Engine isn't simply an optimizer or shader mod
  • What's the most exciting features in dev?

    • GPU-Driven Meshlet Rendering & Virtual Geometry
    • Vulkan-like / Modern paradigms (like Multi-Draw Indirect, Pipeline State Objects, etc.)
    • Semi-Static Global Illumination Driven by Surface Cards & Temporal Accumulation
    • ECS & Parallel Job System
    • Async GPU Resource System
    • Multi-resolution & HDR & Post-processing Pipeline
  • What can I expect as a player?

    • Performance wise: smoother performance and FPS improvements
    • Shader wise: modern lighting techniques and better global illumination
    • Configurability: optional HDR, optional resolution up-scaling or down-scaling, optional post-processing, etc.
  • What can I expect as a mod developer?

    • Clean rendering APIs that hide OpenGL completely
    • Versatile rendering APIs that focus on the concept of render commands
    • Will be able to create emissive blocks, PBR, fogs, decals, any post-processing effects
    • Future-proof architecture

Roadmap & Todos

View Project Board to track development progress, features and ideas.

How It Works?

If you are curious about the tech/code details, check out Engine Overview Page!

Contributing

If you would like to contribute, check out our Contributing Page!

MVP Goals

It's a bit outdated, Project Board takes precedence.

GL Abstraction

Goal: a semantic abstraction layer that preserves the meaning of GL operations instead of a black-box GL wrapper

  • GL Resource Abstraction 🚧
    • Resource manager 🚧
  • Shader Abstraction 🚧
    • Only support vert + frag for now, but design with tess, compute, etc. in mind
    • Global shader registry
      • Compile and store shaders ✅
      • Shader source hashing
    • Uniform
      • Parse uniforms from shader source
      • Uniform location and type memorization
      • UBO support
    • ShaderProgram
      • Uniform input type widening
  • Buffer Abstraction 🚧
    • Generic buffer object + View ✅
    • VAO (VBO + EBO) ✅
    • Vertex attribute layout ✅
    • UBO, SSBO
    • PBO pack & unpack
    • TBO
    • Upload hint + access hint ✅
    • Persistent buffer ✅
    • Framebuffer ✅
      • Attachment ✅
      • RenderBuffer ✅
  • Texture Abstraction 🚧
    • Sampler
    • Generic texture object + View ✅
    • Texture 🚧
      • Texture2D (for common uses) ✅
      • Texture2DMultisample (for multisampling fbo) 🚧
      • Texture2DArray (for texture atlas)
      • ...
  • Debug Abstraction ✅
    • KHR_debug ✅
  • Material Abstraction
    • MaterialTemplate to describe layout and shaders
    • MaterialInstance to hold actual parameters
ECS
  • Overall ECS structure ✅
    • CleanWorld, CleanEntity, CleanComponent, CleanSystem ✅
  • Entity ✅
    • Entity manager (utilizes archetype) ✅
  • Component ✅
    • Component schema ✅
    • Class scan via ClassGraph ✅
  • Storage ✅
    • Archetype ✅
  • Runtime 🚧
    • SystemExeGraph to coordinate different systems
      • Execution priority
      • Async execution & barrier
  • Job ✅
    • Job is a unit of work that can be split and executed in parallel ✅
Engine
  • CPU & GPU hybrid dual pipeline 🚧
  • DrawCommand decorating mechanism 🚧
  • RenderPass / Subpass architecture ✅
  • Built-in Multi-resolution & Super-sampling 🚧
  • Immutable Pipeline State Object ✅
  • Meshlets 🚧
  • Scriptable pipeline
  • ...

Credits

Kirino Engine is made possible thanks to the efforts of all contributors!

  • tttsaurus - Core maintainer, architecture design, and overall project coordination
  • Eerie - Feature development and algorithmic contributions
  • ChaosStrikez - Code refactoring, call-site improvements, and algorithm fixes

License

This project is licensed under Mod Permissions License published by Jbredwards.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published