godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.05k stars 65 forks source link

Add a RenderGraph Editor #9629

Open biswas08433 opened 2 weeks ago

biswas08433 commented 2 weeks ago

Describe the project you are working on

A stealth sniper-game

Describe the problem or limitation you are having in your project

As many game relies heavily on the post-processing stack, implementing advanced post-processing using viewports is cumbersome and has a lot of overhead (Lots of copying around). Instead rendering effects which are rendering callbacks has been implemented. But it has a lot of nitty-gritty details. Pretty hard for beginners, who has no or little knowledge of Godot Rendering Architecture.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

The RenderGraph Editor will abstract it out. It will handle all the initialization, the passes, timings and also it will describe the current architecture or the pipeline, the rendering engine uses.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

render_graph passes can be created, named, modified, input_ouput definitions etc.

If this enhancement will not be used often, can it be worked around with a few lines of script?

No

Is there a reason why this should be core and not an add-on in the asset library?

It should be pretty fundamental. It will provide the modular tools, so that people (like me) can build amazing complex things or whatever from them.

Calinou commented 2 weeks ago

See the FAQ in the linked proposal:

Q: Why not a compositor graph? A: We gave this idea a spin many times and really tried to make the case for a compositor graph. But, to be honest, in far most cases you just want to plug something and expect it to work as intended. A graph for an engine like Godot would make it harder for non-rendering folk to use this because you would not understand where to plug compositor effects.

biswas08433 commented 2 weeks ago

As Godot is a general purpose engine, it should balance between usability and performance. Graph will simplify the compositor. People always love node graphs, and godot has a well built node-graph ui functionality, should use it. Blender have a compositor graph. People love it. There are amazing post-effects which are just plug-and-play.And the beauty of graphs are it conveys a lot of data within a very limited space. Its intuitive also. Now you guys are pro. You'll know better.

Give it one more thought. I hardly find any graph based schematic of Godot's rendering pipeline. Its like a big black-box, monolithic (I know someone will tell me that the source code is open, but I have neither the skill, nor the time to study the source code and change it).... This Graph will solve it too. So noobs like me can approach the big bad renderer, and tinker with it.