godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.12k stars 69 forks source link

Add common shaders as presets to the shader editor #354

Closed ca3games closed 4 years ago

ca3games commented 4 years ago

Describe the project you are working on: A Basic 3D JRPG.

Describe the problem or limitation you are having in your project: I'm not that great at shader creation and is really confusing to make a shader from scratch.

Describe how this feature / enhancement will help you overcome this problem or limitation: Will help a lot of begginers like me in terms of shaders.

Show a mock up screenshots/video or a flow diagram explaining how your proposal will work: A preset list of common shaders and useful shaders in the visual editor.

Describe implementation detail for your proposal (in code), if possible: A menu or button to just create a shader from a list of common and most useful shaders.

If this enhancement will not be used often, can it be worked around with a few lines of script?: Not sure ready, is more a basic improvement that will help a lot of devs.

Is there a reason why this should be core and not an add-on in the asset library?: Having by default access to a list of common basic shaders to modify will make the visual shader editor a lot more useful.

Calinou commented 4 years ago

I'm sure a library of example shaders can be provided on the asset library :slightly_smiling_face:

arkology commented 4 years ago

What is meant by "common and useful"?

tengkuizdihar commented 4 years ago

I'm quite sure you can already use other people's shader and copy paste it in to your game (as long as it's in the format of the godot's shader language).

nezvers commented 4 years ago

@balenol Please provide some because it's not that easy to find Godot ready shaders. I am for the inclusion of basic or common used shaders, at least as an Asset library. As common I think something like: Color overly, outline, saturation, chromatic aberration, white noise, Perlin noise, some useful shaders for transition, etc.

ghost commented 4 years ago

I can make a repo, what shaders should I include? Engine versions ?, 2D, 3D ?, visual shader, shader?

Calinou commented 4 years ago

@Ekho7 I'd advise having one repository for 2D shaders and one for 3D shaders as you typically won't need both in the same project. Text-based shaders are more friendly to version control, so I'd favor that as well.

ghost commented 4 years ago

In this repository I will upload the shaders, the focus will be as learning material, first I will focus on 3d and then on 2d.

I will work on this on weekends, it will take me about a month to have it ready, and send it to the asset-library.

nezvers commented 4 years ago

@Ekho7, these are ones I've been able to find on the GitHub - GoogleDoc And THERE are some I started and some I wrote down from youtube (HeartBeast).

ghost commented 4 years ago

@nezvers Great.

I divided this into categories.

I will add some examples to each category, for v4.0 (#include, preprocessor) I will create a complete library based on a library that I made for my game on hlsl and shaderlab (Unity).

nezvers commented 4 years ago

@Ekho7 you should make a repository and use issue for collecting submissions like Awesome Godot. Or submit through pull requests. I'm working on few simle transition shaders I would add there.

ghost commented 4 years ago

@nezvers Repos: https://github.com/Ekho7/Godot-Example-Shaders-2D https://github.com/Ekho7/Godot-Example-Shaders-3D

ghost commented 4 years ago

I think this solution is better for this issue. https://github.com/Maujoe/Godot-Visual-Shader-Node-Library

Calinou commented 4 years ago

As far as visual shader plugins go, there's also ShaderV.

I'll close this proposal as people above have demonstrated it can be reasonably implemented by third-party resources. This is now possible with the visual shader custom nodes/plugin system, which is available since Godot 3.2.