Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support standard Godot materials #199

Closed
krazyjakee opened this issue Sep 5, 2023 · 2 comments
Closed

Support standard Godot materials #199

krazyjakee opened this issue Sep 5, 2023 · 2 comments
Labels
wontfix This will not be worked on

Comments

@krazyjakee
Copy link

This plugin introduces a duplicate set of steps in the asset pipeline. Godot already has tools and settings to manage textures, normal, height and rough maps etc. Those should be supported when adding paintable textures to the pallet.

@TokisanGames
Copy link
Owner

I think if you were implementing it, you would find as we have that StandardMaterials are both inadequate and overkill for terrain.

Inadequate because it doesn't provide all the functionality we need. Materials are just a shader and we'd have to rewrite it anyway.

Overkill because we don't need SSS, refraction, rim, clearcoat, backlighting, and many other features on the terrain. If your thought is that doing this would allow one to use any and all features of a StandardMaterial on the terrain, then you really haven't thought about the complexity of implementation.

The base material shader is integrated into the renderer and is designed for 1 material. It is not designed to merge 32 materials. That code doesn't exist in the engine anywhere. Someone has to write it. We wrote a far, far simpler version focused on the needs of a terrain. Supporting the entire base material would make our already complex shader 10x more complex for unnecessary features like vertex color, billboard and the others I mentioned.

Ignoring implementation, we could possibly take in materials then take the textures and settings we need from it. We'd only use the needed features, which means this choice would provide the user with 50 material options yet only 10 would be functional and they'll have to guess or read the docs to figure out which ones work. That's not an improvement on usability.

Finally, there are things needed that are not in the current terrain shader. Some will make their way into the default shader, others can be added by custom shaders and custom uniforms. For instance, we have a lava texture with emission. It would be a big waste of memory and processing to enable emission for all textures. But a custom shader and custom uniform will allow us to add an emission texture for that one material. You could do the same thing with metal.

So, no standard materials will not be used. A better request would be to express your need, rather than an implementation. Here are things on the roadmap that might fulfill needs:

@TokisanGames TokisanGames added the wontfix This will not be worked on label Sep 5, 2023
@TokisanGames TokisanGames closed this as not planned Won't fix, can't repro, duplicate, stale Sep 5, 2023
@krazyjakee
Copy link
Author

Great explanation!

As mentioned the main issue is the asset pipeline workflow so #125 seems most appropriate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants