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:
Comparison
MeshPart.TextureId:
SurfaceAppearance:
How to Use SurfaceAppearance
Learn how to use SurfaceAppearance with our API documentation. (This documentation will be available on the Developer Hub soon).
Usage
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!