Git Product home page Git Product logo

ilum's Introduction

Ilum(WIP)

Windows Codacy Badge

Ilum Graphics Playground, name after Planet Ilum from [Star Wars](

image-20220424103827290

Build

  • Windows 10
  • Visual Studio 2022
  • C++17
  • CMake 3.14+

Run script build.bat

Hardware requirement

NVIDIA Turing GPUs (GeForce RTX 30/20 Series, GeForce GTX 16 Series) are the best, due to supporting for

  • Mesh Shader
  • Ray Tracing Pipeline
  • GPU Acceleration Structure
  • Descriptor Indexing

Feature

  • Architecture

    • Render Dependency Graph
      • Customize Render Pass (Graphics, Compute, Ray Tracing)
      • Render Pass Visualization
      • Auto Resource Transition
    • Runtime Shader Compilation and Reflection
      • GLSL -> glslang -> SPIR-V
      • HLSL -> DXC -> SPIR-V
      • SPIR-V -> spirv-cross -> Reflection Info
    • Entity Component System
    • Asynchronous Resource Loading
    • Scene Serialization
  • Rendering

    • Mesh Shading Pipeline

      • Meshlet Rendering
      • GPU Frustum Culling
      • GPU Back-Face Cone Culling
      • Bindless Texture
      • GPU Hierarchy Z Buffer Occlusion Culling (Deprecated)
    • Deferred Shading

      GBuffer Format R G B A
      0 RGBA8U Albedo.r Albedo.g Albedo.b Metallic
      1 RGBA16F Normal.x Normal.y Normal.z Linear Depth
      2 RGBA8U Emissive.r Emissive.g Emissive.b Roughness
      3 RGBA16F Entity ID Instance ID Motion Vector.x Motion Vector.y
    • Material

      • For Real Time
        • Lambert Diffuse BRDF
          • Lambertian Reflection
        • Matte BRDF
          • Oren Nayar Reflection
          • Lambertian Reflection
        • Disney Principle BRDF
          • Kulla-Conty Approximation for Multi-Bounce Correction
      • For Offline
        • Matte BRDF
          • Oren Nayar Reflection
          • Lambertian Reflection
        • Plastic BRDF
          • Microfacet Reflection
          • Lambertian Reflection
        • Metal BRDF
          • Microfacet Reflection
        • Mirror BRDF
          • Specular Reflection
        • Glass BSDF
          • Fresnel Specular
          • Microfacet Reflection
          • Microfacet Transmission
        • Disney Principle BSDF
          • Disney Diffuse
          • Disney Fake Subsurface Scattering
          • Specular Transmission
          • Disney Retro
          • Disney Sheen
          • Disney Clearcoat
          • Microfacet Reflection
          • Microfacet Transmission
          • Lambertian Transmission
    • Image Based Lighting

      • Diffuse Term: Spherical Harmonics Projection
      • Specular Term: Split Sum Method
    • Shadow Mapping

      • Spot Light: Shadow Map
      • Directional Light: Cascade Shadow Map
      • Point Light: Omnidirectional Shadow Map
    • Soft Shadow

      • Percentage Closer Filtering (PCF)
      • Percentage Closer Soft Shadows (PCSS)
    • Anti-Aliasing

      • Fast approximate Anti-Aliasing (FXAA)
    • Path Tracing

      • Next Event Estimation
      • Light Source & BSDF Importance Sampling
      • Multi Importance Sampling
      • Russian Roulette
  • Geometry

    • Curve Modeling
      • Bézier Curve
      • Cubic Spline Curve
      • B Spline Curve
      • Rational Bézier Curve
      • Rational B Spline Curve
    • Tensor Product Surface Modeling
      • Bézier Surface
      • B Spline Surface
      • Rational Bézier Surface
      • Rational B Spline Surface
    • Triangle Mesh Processing
      • Data Structure
        • Face Based Mesh
        • Edge Based Mesh
        • Half-Edge Mesh
      • Subdivision
        • Loop Subdivision

Demo

Render Pass Visualization

image-20220424111033580

Mesh Shading

image-20211130105935862

Hierarchy Z Buffer Generation

image-20220424111109937

Deferred Shading

GBuffer0 GBuffer1 GBuffer2 Result
image-20220424114224795 image-20220424114147426 image-20220424114309646 image-20220424114350879

Shadow Map(Spot Light Shadow)

image-20220424114606665

Cascade Shadow Map(Directional Light Shadow)

image-20220424114627387

Omnidirectional Shadow Map(Point Light Shadow)

image-20220424114641418

Percentage Closer Filtering

PCF OFF Uniform Sampling Poisson Sampling
no_pcf uniform_pcf poisson_pcf

Percentage Closer Soft Shadows

PCSS OFF Uniform Sampling Poisson Sampling
no_pcf uniform_pcss poisson_pcss

Image Based Lighting

IBL

Spherical Harmonic Projection

sh

Split Sum

Roughness=0.8 Roughness=0.6 Roughness=0.4 Roughness=0.2 Roughness=0.0
roughness0.8 roughness0.6 roughness0.4 roughness0.2 roughness0.0

Path Tracing (Render in 1000 SPP)

Matte Metal Plastic Mirror
matte metal plastic mirror
Substrate Glass Disney
substrate glass disney

spaceship

coffee

Bloom

Bloom OFF Bloom ON
bloom_off bloom_on

Fast Approximate Anti-Aliasing (FXAA)

FXAA OFF FXAA ON
fxaa_off fxaa_on

Curve Modeling

image-20220108150839809

Surface Modeling

image-20220108151149909

Loop Subdivision

Origin Iteration #1 Iteration #2 Iteration #3 Iteration #4
loop0 loop1 loop2 loop3 loop4

Minimum Surface

Origin Minimum Surface
face mini_surface

Tutte Parameterization

Origin Mesh

origin

UV Visualization Parameterization Visualization
Circle Boundary + Uniform Weight uniform_circle uniform_circle_vis
Rectangle Boundary + Uniform Weight uniform_rectange uniform_rectange_vis
Circle Boundary + Cotangent Weight cotangent_circle cotangent_circle_vis
Rectangle Boundary + Cotangent Weight cotangent_rectange_vis cotangent_rectange

Dependencies

Reference

ilum's People

Contributors

chaphlagical avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.