Upload Custom Materials in the New Material Service Beta

If I’m understanding your ask, you’re specifically interested in having terrain materials that are more of a “blank slate” that you can define/control beyond what Material Service allows? (I think our plans for the expanded material library and per-part variants will address any other needs: let me know if that’s wrong.)

Assuming that’s right, we’re aware of this ask, but it’s not an immediate priority for us.

4 Likes

Sorry if the communication wasn’t clear before: the thread about the upgraded materials got quite large. Delivering UGC materials became our priority after seeing community feedback on the original upgrade plan. But if you look at the phasing list in the top post above, you’ll see “upgraded materials” listed as part of this project. We’ll be doing so via a switch, too.

We’re aiming to have a beta to you soon. We’re doing extensive internal testing to make this a good release!

7 Likes

We have this on our radar, but there are some other terrain improvements we decided were more important that we’re working on first.

6 Likes

Its more of both Parts and Terrain, for parts it would allow us to have a set texture such as roads to use in mass production and as for parts it would finally fulfil the biggest request people have been asking for terrain for ages (aside from fixing the shoreline)

Now as for other objects such as recreating a rock effect if we had a the depth map you could use that as the tool it uses, I’m not really sure how yall have that part of the system setup but it’d be really neat.

Here’s a better list of what this could be used for

Terrain

  • Support for multiple colors on one material type (although you’d need to duplicate the material then change its color it’ll still get the job done even though it would be a hacky method of doing so)
  • Allow developers to create multiple variations of one ground, such as mixing different types of grass together whether it be flowers mixed with grass or just grass.
  • Will add more later

Parts

  • PBR Road Textures
  • Ability for building games to allow its players to use PBR Textures without having to create a new UV for each object
  • Will add more later
7 Likes

To give you a peek behind the curtain as to why we’re being vague, we’ve found every aspect of this project has more nuance than you could imagine. For example, defining the internal structures we use to reference material variants seemed obvious at first but as we worked through key use cases (per-part materials, materials in packages, materials in models), we found that each option for something that we thought would be simple had pros and cons: there’s no one solution that worked for every need. Figuring out the right approach adds unexpected time to our schedule. And we picked one way to do these references initially, but we think we need to switch approaches to support per-part variants. Because this beta is Studio-only, we can make that change with minimal impact to you. That’s just a hint of the nuance :slight_smile:

But please do know we are working hard, and we know you’re excited to use this in production experiences!

12 Likes

I know this is a bit off-topic but while we have you here do you happen to know any information on what happened with this update and why it was never finished? I know you weren’t apart of the team who worked on that update but I’m curious why it was abandoned at its current stage?

4 Likes

A new Vector3 property has recently been added to workspace (this week’s update, in fact) called GlobalWind. So, hopes up that it’s being worked on!

5 Likes

image
Finally!!!

5 Likes

Also an another feature
image

4 Likes

Correct me if I am wrong but the current implementation of Material Service does not support normal-based texture mapping?


Most smooth terrain maps rely on using the alternative normal based texture that Roblox materials use. As the implementation stands right now its still useless to us.

12 Likes

This, we can’t even do things like this with the current amount of materials given to us.

2 Likes

Thank you for the detailed feedback, we really appreciate it.

As noted, we are currently working on applying Terrain MaterialColor to UGC terrain materials. As you correctly pointed out, one of the complications is the different colorization scheme between Part (tint) and Terrain (hue shift).

For UGC terrain materials, we are thinking to apply the material color as tint so this will be consistent with UGC part materials. We can’t really do hue-shift because it assumes the texture has only one color tone and we can’t really guarantee this in UGC world.

Yes, you are right there’s “tint-mask” that’s present in the base materials. We understand that this is important feature for developer and rest assured this is on our radar (including SurfaceAppearance tinting).

Sometimes we do not talk about what we are planning to do not because we don’t want to collaborate as closely as possible with the community, but because there are fundamental questions about our architecture that we have not figured out, and we don’t want to show plans and features that we don’t have yet a reasonable commitment to. We also recognize that the process on UGC materials has been slow, but we cannot promise it will get better in the near future, because materials are a very core, foundational concept in Roblox, so we have to ensure we get them right - after our first full release, adding more features for materials will get much easier.

15 Likes

MaterialVariant supports normal map and it should be applied to terrain. I’ll send you DM to get more detailed information.

4 Likes

I believe what they are referring to here is the ability to specify another material for the sides of terrain cliffs. A lot of terrain materials do this to aide in realism. Without this, a whole material slot is required and developers must manually paint the sides of mountains and cliffs. For games already using every material available, it is not possible for them to override another material for the sides of cliffs because they are already using that material elsewhere in their game.

This is probably solved down the road with adding new materials, but I don’t remember if this was something Roblox wanted to do.

6 Likes

Thanks for the response! I really appreciate it. It’s great to hear Roblox is interested in providing access to the tint-mask feature.

I understand that it’s difficult to publicly bring up long-term plans and it is very unfortunate. However, I think the correct way to do this without making promises is to bring it up through surveys to judge community sentiment around ideas or to gather detailed developer use-cases/needs (e.g. like these). I believe Roblox has an internal process for this, but I don’t think the sentiment it gathers is broad enough.

Hoping that it gets easier to iterate on materials after release. I understand that this is a ludicrously complicated concept to tinker with and I really appreciate all that Roblox is doing to get it right.


It does seem like that solution (tinting UGC terrain materials) is cleaner, but then it sounds like it will still be impossible for developers to match parts to (recolored) terrain with the default materials. They would be required to override the materials.

With respect to this, UGC materials are developer-authored.

If they don’t want the behavior that comes with a hue shift, they can make their albedo greyscale or single-toned to avoid it, or not use the proposed feature at all. I think offering the ability for developers to hue shift the albedo of the material (i.e. this would be API on the Part instance) in addition to controlling part color would be the nicest way to bridge this behavior inconsistency.

E.g. to match a part to recolored terrain, the developer would set the part color to pure white, and then hue shift the part’s albedo to match the terrain material hue.

Then when Roblox provides access to the tint-mask feature, this automatically affords developers a way to have materials that take advantage of both colors for increased material reusability (important for memory optimization).

In practice I’m not sure how clean this is as far as API design + usability goes, but this functionality would be very powerful.

8 Likes

Ah I see, now I understand better, thanks @PeZsmistic for clarifying. Noted for the request to customize side/bottom layers of terrain materials.

This is probably solved down the road with adding new materials, but I don’t remember if this was something Roblox wanted to do.

Yes we will be adding new materials as part of Material Library Expansion.

12 Likes

How do we get this global wind feature you’re speaking of, it sounds very cool and very interesting or is this not a feature that is currently beta but works with studio mods?

3 Likes

I’m glad that Roblox has listened to the community and managed to add proper tiling for custom materials.

I hope this isn’t too much to ask, but PLEASE let us add different textures on certain sides of a part. If they don’t plan to add this, I hope it’ll be added in with per-part material customization as previously stated in the post. It would give us so much more freedom with materials.

image

12 Likes

there’s a reason why custom materials are not published in-game yet. Roblox is finding a way to make it more performance-friendly.

2 Likes

Yes i hope they add something like this, would help me to avoid the problem of the limit of the textures,

5 Likes