Let's say I have an albedo texture with a grayscale color map meant to be changed by the code and overlayed on top. In the standard material I set the base albedo image: How can I overlay the color map and give it a color from a color field?

The obvious action is to fork StandardMaterial3D in its entirety. But that's a complex basic shader subject to updated which I'd rather not copy in its entirety just to make a small change; Is there a way to add custom functionality like that on top of the default surface shader?

  • xyz replied to this.

    xyz Wouldn't I need to copy or rewrite all basic features, like normal maps and parallax and metallicity and more? I played with visual shaders a while ago, I think they had outputs for recreating some of those features but not all as some things from StandardMaterial3D were still missing.

    • xyz replied to this.

      MirceaKitsune No, a shader can do everything that standard material does. Enable all features in a standard material and convert it to a shader material. You'll be able to see how everything is done by looking at that shader's code. Add your stuff on top of it.