Godot-proposals: Make the visual shader in Godot 1-to-1 match (open source) Blender system, add copy-paste . .

Created on 12 Aug 2020  路  9Comments  路  Source: godotengine/godot-proposals

Describe the project you are working on:
I'm working on a Tomb Raider game . .

Describe the problem or limitation you are having in your project:
There are so many cool shaders being made, by Blender users, but they don't copy well into Godot . . Maybe Godot could implement the exact same system, or match it closely, so one could copy the many awesome Blender shaders, more easily . . .

Describe the feature / enhancement and how it helps to overcome the problem or limitation:
It would be nice after watching a Blender tutorial, one could copy paste it, it would give all Godot games a massive visual boost, since there are many cool ones, see here . . .

https://www.reddit.com/r/blender/comments/i7xhk7/tried_making_a_procedural_lava_river/

2020-08-12 0913

Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:
It's not something a beginner can do, but if the two matched better, like Godot has the Disney Principled shader, it would instantly mean all Godot users could find a tutorial, and also use Blender tutorials, giving the engine a massive leap forward, visually, for the community, as well . . . <3

If this enhancement will not be used often, can it be worked around with a few lines of script?:
I'm a beginner, it's really complicated, to make visual shaders, atm . .

Is there a reason why this should be core and not an add-on in the asset library?:
Why not, Godot already uses the principled shader, and Blender is open source, it would be a nice work-flow, also to encourage users to use open source software, when using Godot, as well . .

It would also lower the need by engine makers, to make documentation, since there'd instantly be many tutorials, for many cool effects, very easily . .

Thanks . . .

shaders

Most helpful comment

Technically one _could_ make a plugin that exports blender materials as visual shaders. Infact I believe a certain ESCN exporter already does that, but as text based shaders.
https://docs.godotengine.org/en/stable/getting_started/workflow/assets/escn_exporter/material.html

All 9 comments

Blender is licensed under the GPLv2. We can't legally take any of its code as Godot is a MIT-licensed codebase (with no GPL dependencies).

Technically one _could_ make a plugin that exports blender materials as visual shaders. Infact I believe a certain ESCN exporter already does that, but as text based shaders.
https://docs.godotengine.org/en/stable/getting_started/workflow/assets/escn_exporter/material.html

Sucks, Blender has a much more artistic community, with focus on effects, or so . . Godot can do that, but it's not the main focus :(( . .

Having a plug-in, so one could import Blender shaders directly into Godot, would be awesome, copy-paste glory . . . .

I dont know about blender, if the shader graph of it has a text code generated by the visual graph, if so, a plugin can be made to convert to godot shaders!

By the way, a 1 to 1 conversation would be pretty much impossible with Godot's shading capabilities.

  • In blender, you can have multiple BSDFs being used in one shader (principled, diffuse, glossy, etc...). In Godot however, only _one_ BSDF is calculated per light (not counting clearcoat). This could be worked around by either approximating the BSDF combinations, or calculating with a custom light shader. The latter approach would not have any effect on environment lighting however.
  • Blender Eevee has this unique Shader to RGB node that allows the final color of the material to be processed some more. This is impossible to achieve in Godot without rewriting some of how shaders should work.
  • the Ambient Occlusion node allows user to use ambient occlusion as _input_ into their shader. Godot doesn't work that way (ao maps don't count here).

In summary, a complete _1 to 1_ wouldn't be possible, but close approximation with some limitations is.

@jasperbrooks79 What's confusing about it? Any questions you wanna ask?

No, I thought you could just copy the shader logic in Blender, since it's also free :( . .

Thanks, for all the answers, help . . You're super-good, at Godot, wow, props . .

On a more serious note. It would technically be possible to implement materialx and or nvidials material and shader formats in both blender and godot, and thus achieve greater cross compatibility in general.

Was this page helpful?
0 / 5 - 0 ratings