SurfaceAppearance Studio Beta [Released]

I’ve forwarded this special case to an internal team. Hopefully it will be resolved soon :slight_smile:

9 Likes

But, a question, for surfaceappearence work the same like mesh or, u need make a new model?

This issue, and the issue where nothing gets moderated but you still don’t see the PBR maps showing up in game, should be resolved. If you still see an issue in your place outside of studio, you need to take a one time action to reopen in Studio and publish.

1 Like

Is there a reason for why SurfaceAppearance properties cannot be modified in-game? And why can SurfaceAppearance properly detect color behind transparent textures whilst MeshPart.TextureID’s can’t?

Let me set an example of my issue:

Here is a blood decal with a transparent background, on a flat brick:

In the image below, the left part of the roblox limb is using a SurfaceAppearance property with that same blood decal applied to the colormap, while the right part is using MeshPart.TextureID with the blood decal’s ID.

Both are using the same color. The left part is how it SHOULD look (but can’t use this because you can’t change ColorMaps ingame to apply, lets say, the current player’s shirt), yet for some reason MeshPart.TextureID won’t show the part’s color behind the transparent texture. It’s blocked me off from being able to add a couple of features (like custom liveries people can put on their UV maps with the car’s color underneath).

Here’s another example for another post I’ve made, not sure if this can describe it better or worse for the staff/other developers MeshPart TextureID doesn't support transparent textures?

With that in mind, I’d like to know whether if you guys will fix MeshPart.TextureID’s transparency, and/or explain why SurfaceAppearance properties cannot be run in-game.

Please just unlock ColorMaps ingame for SurfaceAppearance I need them so bad :frowning:

3 Likes

You can put 2 parts in the same Position and use Transparency to get around this.

Set the AlphaMode property from Overlay to Transparancy on the SurfaceAppearance asset. That should fix it.
Desktop Screenshot 2021.07.07 - 08.15.33.49

It would be pretty cool if we had more options, like tiling, emision maps, occlusion maps, detail map (bascially a second normal map).

4 Likes

My issue isn’t with SurfaceAppearance, my issue is with coloring a MeshPart with a TextureId. You can’t modify any of these things ingame, and if you want to apply a shirt from the player into the meshpart in game, the skin color won’t show because 1. MeshPart.TextureID simply does not support a proper transparency and 2. Colormaps on SurfaceAppearance cannot be changed on runtime, therefore I can’t just replace the ColorMap ID with the shirt of the player who just joined.

EDIT: I have made another discovery about this annoying bug thanks to a friend, and it baffles me even further why it’s never been reported.

Here you can see the Explorer to demonstrate how the color behind transparent textures can be shown ONLY if a Humanoid and a part named Head is present. I am comparing between a regular player character’s model and my meshpart to demonstrate that yes, the textures ARE transparent and that it CAN show the meshpart’s color.

Yet, as soon as I remove the humanoid/rename the part, it will revert back to its broken MeshPart behavior. This bug needs to be fixed, or I literally can’t complete and fully implement this feature into the game.

3 Likes

Please add support for 4k textures, and support for layering surfaceappearances, those would greatly improve this feature.

2 Likes

When is this gonna release and get more settings for more material mapping and sliders for the title i want this exactly how textures work but instead it can work on both meshes and parts. It can be used as a texture but you can add a few other things to it to make it a material… Or will they just improve textures by adding some of these options too it so we can have materials on meshes and parts? without any trouble

1 Like

Does using just the ColorMap SurfaceAppearence negatively affected performance? Or will it have the same performance gain as using the regular TextureID?

There is a shading difference in using JUST the PBR Colormap and using the mesh textureID.

Several things to consider:

  • SurfaceAppearances are being designed to support alpha textures whereas native MeshParts don’t.

  • There shouldn’t be a significant impact on performance by using SurfaceAppearances with just a ColorMap, but if you’re going to do so you may as well forego SurfaceAppearances and use Meshes’ TextureID properties for tidiness.

  • Going forward, Roblox may be looking to deprecate TextureID in favor of SurfaceAppearance, so it may not hurt to rely on them even just for color. I’m personally not sure why they don’t just add SurfaceAppearance properties to MeshParts.

They should not be looking forward to that because of how much more surfaceappearance compresses Colormaps than the traditional TextureIDs do

Compressing color maps? I’ve seen no actual change in visuals with surfaceappearance vs textureID

Time for me to demonstrate…

These are the letters of a food item I drew, using SurfaceAppearance Colormaps:

And here are the same letters, but I’m using Mesh.TextureID instead:

Do you see any difference on the letter A of “ROYAL”? Because I do, and it’s bothering the hell out of me…

Here’s another example on the back of this food item.

First image is the one with surfaceappearance:

Second image is using Mesh.TextureID:

ColorMaps are clearly compressing a lot, and on top of all that you can’t even change their values on the fly in-game unlike Meshpart.TextureID.

1 Like

When you say clearly, ypu mean you have to right next to it and look for the compression, I can’t even find compression in the second pic.

2 Likes

This is a good thing though. With texture id, you are just using 1 diffuse texture. With surface appearance you can have up to 4 textures.

Downloading 1 diffuse texture compared to downloading 1 diffuse map, 1 metalness map, 1 normal map, and 1 roughness map I’d imagine would be a lot shorter. If you compress those 4 textures tho you can decrease download times at the cost of slight quality loss.

If the compression really bothers you that much (I doubt players in game will notice it at all) then just use TextureID

They’re the same picture.

In fact, the 1st image is actually better with SurfaceAppearance due to it having a shadow.

Um, the shadow part is still there with or without surfaceappearance, I was just accidentally hovering over the item with mouse

I would really love if i can change at least one of those 4 properties while in-game like MeshPart.TextureID…

While yes the compression can be extremely minimal if the image is large enough (which it wasn’t on this food item, the entire thing is one single image), there is one thing I really do prefer MeshPart.TextureID over SurfaceAppearance, and that’s the ability to change its texture ingame.

That’s useful for applying the current player’s clothing, changing a car’s livery to a custom player-made one, or even just to store textures in a table the traditional way rather than storing these SurfaceAppearance objects in folders and then copy-pasting them into the game…