steaklive / everyray-rendering-engine Goto Github PK
View Code? Open in Web Editor NEWRobust real-time rendering engine on DX11, DX12 with many advanced graphical features for quick prototyping
License: MIT License
Robust real-time rendering engine on DX11, DX12 with many advanced graphical features for quick prototyping
License: MIT License
the logic of rendering to shadow maps can be completely moved to the shadow mapper
Currently, post effects stack is bound to specific levels. The behavior should be changed by moving it into RenderGame.cpp. Potential problems: rework RTs, level-specific imgui will be affected by post effects
Currently, they are created in Terrain.cpp, however, an existing TerrainMaterial class should be used for that
After the creation of RenderObject class, we should get rid of old code for render objects in all demo levels.
I have realized that sometimes I am deleting/re-allocating new instances of Keyboard which is a global game component/service of Game.cpp. I should remove all instances of "mKeyboard" from levels and use an existing code when needed "(Keyboard*)mGame->Services().GetService(Keyboard::TypeIdClass());"
Heap corruption detected while destroying RenderObject.
Might be connected with "mMeshesMaterials".
look into double normals maybe?
also possible issues with IBL (Specular or Diffuse) component...
move collision tests from a hardcoded cpp level into a loadable system (i.e., attach a component to RenderinObject).
this will take a lot of work, which is why not a priority atm
Some RenderingObjects (i.e., trees) might need "alpha-to-coverage" blend state (otherwise, Gbuffer has useless alpha geometry, GI is breaking a bit, etc). A possibility to set and read this flag from the scene's file should be added. Currently, only the foliage system has "alpha-to-coverage" by default.
Currently, RenderObject supports only one material per mesh
Move the event callbacks for material updates from level code to material-specific code.
sometimes alpha tests stop working, also volumetric clouds etc.
redundant since there is a generic "CustomRenderTarget"
The engine fallbacks into default textures and overflows in RenderingObject::LoadTexture()
probably something is wrong with DepthMapMaterial that should be created for every cascade
there should be a container of materials in the scene, duplicates should not be parsed/instantiated from scene's data
make a modular system for rendering gizmos etc.
refactored code a bit but only for TerrainDemo and SponzaMainDemo levels, would be nice to update the rest
seems like a world matrix of aabb is incorrect sometimes... probably due to the mess with two world matrices in renderingobject class
Maybe make a class for shadow mapper or smth like that
Would be nice to transition existing techniques there as well (CSM, i.e.)
After refactoring the codebase it is now possible to use relative paths to the files in code. However, this should be changed in every .cpp by hand (replacing in VS won't help)
The current implementation of EveryRay uses Forward Rendering. It would be nice to have Hybrid Rendering (Deferred + Forward) for some potential features (i.e. SSR). We do not need a full deferred pipeline - only some Gbuffers. The inspiration might be coming from the rendering pipeline of "Doom" (2016)
Just an FYI, came across your engine and with a fresh git clone it built right out of the box. One issue is commit 2d06ccf, the Sponza and Terrain scenes don't load properly. Sponza stays on the test scene and Terrain loads two trees. I'll be digging into seeing if I can help debug what's going on, but just wanted to give you a heads up.
check StandardLighting material
I have a feeling that the values for tone mapping are incorrect. Thus, the results are "dark" in some scenes.
At the moment if the object is instanced, it is not possible to transform it in the editor mode. It would be nice to have an object marked as "instanced" in the global level's/scene's objects list and be able to click on it and then have a new UI window popup with the list of instances of that object that are clickable/controllable through the editor.
Also do not forget to add AABB support/wireframe mode!
refactor the whole system, move it to the existing ForwardLighting.hlsl/DeferredLighting.hlsl; not a priority
I should move the hardcoded logic out of the deprecated TerrainDemo.cpp (which should be completely deleted) into the configurable logic in scene's json file (i.e., texture paths for heightmaps, etc.). I should also refactor the existing Terrain.cpp (haven't checked if its broken atm or not)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.