SurfaceAppearance Studio Beta [Released]

Update: SurfaceAppearance is now out of Beta and enabled in all places.

Hey, Developers.

At Roblox, we are continually upgrading our technology so you can create a wider range of content. Until now, uploaded textures have been limited to a simply-shaded, low detail style. Today we are opening up much more expressive controls. We are proud to present SurfaceAppearance, a new object for assigning PBR textures to MeshParts.


What does SurfaceAppearance do?

SurfaceAppearance allows you to specify new texture inputs to our Physically Based Rendering system for MeshParts:

  • Normal maps - add details like bumps and dents to your mesh.
  • Metalness maps - make parts of your mesh metallic and highly reflective.
  • Roughness maps - control how smooth or rough parts of your mesh are, modifying specular highlights.

Because this PBR format is commonly used in 3D games, artists already familiar with these formats will be able to import their content into Roblox with minimal modification. You can also import meshes from 3rd party stores such as SketchFab, TurboSquid, CGTrader, and more if you have rights to use the content.

Meshes with partially transparent textures using SurfaceAppearance also benefit from proper distance-based occlusion and work better with various effects like DepthOfField and water reflections.

MeshPart.TextureId vs SurfaceAppearance:




How to Use SurfaceAppearance

Learn how to use SurfaceAppearance with our API documentation. (This documentation will be available on the Developer Hub soon).


Select a MeshPart in your place and press the plus button in the Explorer (or press Ctrl/Cmd + I)
Find and insert a SurfaceAppearance instance.
You should see these properties in your Properties widget. They will be hidden if you haven’t enabled the beta.

SurfaceAppearance does not support rbxgameasset:// references.

For some technical reasons, you must use rbxassetid:// format references right now. You can get an image asset’s id by right clicking on the image in the Toolbox or Game Explorer and selecting Copy ID to Clipboard.

We have created a special place where it is enabled for testing purposes. You can see it in action here.

Future Work

SurfaceAppearance does not currently work on regular Parts. The biggest use cases for PBR textures with repeated tiling on arbitrary parts are for making custom looking versions of our built in materials - grass, wood planks, floor tiles, etc. We know there’s high demand for this. Materials with physical data, in addition to custom textures, are a fundamental concept in Roblox that many future features will be built on, so we’ve been taking our time with this. We plan to ship features to support this later this year.

Thanks for reading. I’m excited to see what you all create!


I’m beyond excited to see what developers make with SurfaceAppearances. Make me proud :pleading_face:


This topic was automatically opened after 16 minutes.

Now I feel even more accomplished in getting into modelling and texture design.
Here’s some questions I want to ask:
Normally when importing a material, it will take up 100mb no matter what, is this true for surface appearance?
Does this have performance costs?
Is it optimized for low quality users?

So if I were to have a texture with neon on it, and I import it to Roblox, there will be neon the the texture, right?

Overall, this would improve realism an the overall variety of design. Keep imagining!


This is very exciting to see, I am glad Roblox introduced this. I was initially worried about the delay, and I am still a little concerned that we didn’t get an announcement sooner, but regardless the feature is here! Thanks!

Any ETA on when this will be out of beta? And with Q3 be pushed back due to the delays of Q2?

The demo looks amazing! The character is great! Is the demo place in the post using skinned meshes and bone instances? If so, is that out yet and if not, when will it be coming out?

I am so excited!


I see a bunch of people making new wooden textures and then misusing said new wooden textures.


Oh my god, I cannot wait to start experimenting with this!

When will it be available for regular parts, and will we be able to use seamless textures, like how the Texture object behaves? Do all meshes have to be UV unwrapped to make this work?


This is amazing. It’s so realistic.

It’s too bad on the lowest graphic level it looks like nothing’s changed:

Hold up. What is this. Why is there an anime girl behind my mask.


Now I can make AAA looking games, look like AAAAAAA games, better than actual game engines. Ah yes.

In all seriousness, knowing that the majority of Roblox players are on mobile, what does performance look like to these players, are we trading off playability for aesthetics? Of course we are, but to what extent?


now this, is truly epic. thank you all for this!!!


Finally, meshes won’t be singular things… details now. If any developers want an easy way to convert their already-made textures and be able to generate Normal Maps, Roughness Maps, and Metallic maps from them I recommend Materialize. It’s a PBR generator for unity, but should work fine with Studio!


Wow, another awesome update on studio that will impact games in the future! :eyes:

Anyway, this update will make meshes and I guess decal on trees and bushes to look more realistic than ever before, instead of the decal on trees/decal glitching and making it look weird when looking it at a certain angle of it.

Some examples:

Also, is this supposed to happen when you insert “SurfaceAppearence” onto a mesh, or am I using it wrong?



Here some side project I make in Avatar Evolution xd

I cannot wait to see this kind of stuff work on FIB3, I bet it might be awesome wohooo. And see another guy creativity on this kind of thing

Nice update you got there Roblox <3

Here some photo I make something using surface appear in avatar evolution and cannot wait to make this thing public xdd


We need to have a chat about your demo place. What are you hiding under my helmet?


This is absolutely huge news. Without the limitations of the default roblox textures there’s going to be a massive increase in game quality no doubt.


Any idea of what is the max Resolution file?

I have seen some really detailed textures. 1080p? or 4k support?


This is such a great update! I really feel encouraged now to get into modeling. With this update, the games earn a lot of detail. I am extremly excited to see all of the new cool stuff with it!


I’m so excited about this, I never knew this will be added but look, its here! I’m so ready make new stuff with this and also see the things other people will make, especially because they might be better than me xD.
Its an clear yes from me.


Wow! This is a huge leap in a new direction. I’m sure as soon as it gets released, many games will start to utilize this, especially showcases.

I mean, without PBRs, some games still were able to get immense realism in them, but this–this will propel the realism to a whole new dimension!

I know that builders like @thisfall manage to create super realistic environments just using textures, so this will make it much easier to create scenes like that in the future.

Possible creations with PBR:

Not only that, but I’m sure the cliche arguments of Roblox having bad graphics will cease to exist soon. I mean, it’s catering people of all computers and processors, and they’re still expanding in the higher-end computer spectrum.

Speaking of such, how will these textures be handled on mobile and lower-end computers? Will they be compressed or anything like that or will they simply not load?

I tested it out, and apparently, it starts to appear from Graphics Quality 3, which is surprising for such realism:

To be honest, I’m surprised my computer didn’t blow up…

You guys are great at making everything performat, so I guess this is no different.

Whoever worked on this is truly amazing!
Keep it up Roblox! :roblox_light: :roblox: