Giter Site home page Giter Site logo

brucelevis / realengine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zhaijialong/realengine

0.0 0.0 0.0 284.54 MB

My toy engine, mainly for rendering expariment and prototyping.

License: MIT License

C++ 48.90% C 27.98% HLSL 22.27% Python 0.85%

realengine's Introduction

RealEngine

My toy engine, mainly for rendering experiment and prototyping. It requires a GPU which supports DX12 Ultimate with latest driver. It is not supposed to be used in production, and prefers clean design and code over being heavily optimized.

some highlights

  • utilize latest DX12 features, such as raytracing, mesh shaders, HLSL 2021, etc.
  • render graph based architecture, with automatically barriers and transient resources management rendergraph
  • fully bindless resources with SM6.6
  • two-phase occlusion culling (like Ubi's GPU driven pipeline). no matter how many different meshes and textures, always two drawcalls(indirect DispatchMesh) per PSO.
  • hybrid rendering with raytracing
  • Print, DrawLine functions in shaders which can be very useful for debugging

planned features

  • render graph(barriers, resource aliasing, async compute)
  • GTAO
  • diffuse & specular GI
  • clustered shading
  • Bloom
  • Auto Exposure
  • TAA
  • CAS
  • meshlet
  • RTX
  • a reference pathtracer
  • maybe volumetric cloud/fog, water/ocean simulation, large-scale landscape, or any random things

AMD related issues

tested on RX6600(win11, Adrenalin 21.12.1)

  • indirect DispatchMesh results in GPU hang after a few seconds
    void GpuDrivenDebugPrint::Draw(IGfxCommandList* pCommandList)
    {
        ...
    
        if (m_pRenderer->GetDevice()->GetVendor() == GfxVendor::AMD)
        {
            pCommandList->DispatchMesh(100, 1, 1);
        }
        else
        {
            pCommandList->DispatchMeshIndirect(m_pDrawArugumentsBuffer->GetBuffer(), 0);
        }
    }
  • using SV_IsFrontFace in an AS-MS-PS combine results in DXGI_ERROR_DRIVER_INTERNAL_ERROR when creating the PSO
    D3D12: Removing Device.
    D3D12 WARNING: ID3D12Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DRIVER_INTERNAL_ERROR: There is strong evidence that the driver has performed an undefined operation; but it may be because the application performed an illegal or undefined operation to begin with.). [ EXECUTION WARNING #233: DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT]
    

realengine's People

Contributors

zhaijialong 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.