godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

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

Open jasperbrooks79 opened 4 years ago

jasperbrooks79 commented 4 years ago

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

Calinou commented 4 years ago

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

SIsilicon commented 4 years ago

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

jasperbrooks79 commented 4 years ago

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

nonunknown commented 4 years ago

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!

SIsilicon commented 4 years ago

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

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

SIsilicon commented 4 years ago

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

jasperbrooks79 commented 4 years ago

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

TheDuriel commented 4 years ago

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.

fire commented 4 years ago

The materialx proposal is here: https://github.com/godotengine/godot-proposals/issues/714.

The osl versions of blender shaders are https://github.com/dfelinto/blender/blob/master/intern/cycles/kernel/shaders/node_principled_bsdf.osl and under apache license.

OSL for materialx https://github.com/materialx/MaterialX/tree/master/libraries/stdlib/osl.

ScribbleFen commented 3 years ago

bumping this with my frustration that I can't just automatically import from blender into godot exactly how it looks with basic procedural textures like the gradient node but instead have to either bake it or rewrite the procedural texture in godot

Calinou commented 3 years ago

@ScribbleFen Please don't bump issues without contributing significant new information. Use the :+1: reaction button on the first post instead.