Realistic Textures In Roblox + More: Displacement Maps, Ambient Occlusion, Lighting

Roblox only supports Normal, Roughness, Metallness, and Color maps through the surface appearance object. In this tutorial, we’ll not only be looking at how to get the right lighting and studio graphics settings for PBR, but also how to import additional maps, such as Displacement and Ambient Occlusion.

Difficulty level of this tutorial: Medium. There is some hand-holding, especially when it comes to blender. I tried to make this as step-by-step as possible.

END RESULT

image

Starting up
Step 1: Setting up your tabs (optional)
  1. Toggle explorer and properties so it looks like this
    image
  2. Now set up your screen so it looks like this, or however you want it to
Step 2: Setting up lighting
  1. Select lighting in your explorer, and in the Properties tab, set your lighting settings like so:

    Important settings:

    • Ambient should be low; close to zero
    • Outdoor ambient should be lowish
    • IMPORTANT: Technology should be Future
    • IMPORTANT: EnvironmentDiffuseScale and EnvironmentSpecularScale should be high; close to 1
    • Everything else can be whatever you want
Step 3: Studio Settings
  1. Go to file → studio settings (click it)image

  2. Now select rendering, and set Quality Level and Edit Quality level to 21. You can always set this slightly lower if your pc can’t handle it.
    image

  3. You will now get a message asking you to restart studio. Save, and click restart now

Importing & Choosing the texture

PSA: IF YOU HAVE TWO OPTIONS FOR NORMAL MAPS, GL OR DX, CHOOSE GL!

image

  1. I recommend following this tutorial by my friend which explains how to get a free pbr texture, and import the maps which Roblox Supports: Normal, Metallic, Roughness, and Color. In the rest of the tutorial, I’ll be covering how to import the maps which Roblox doesn’t handle for you; mainly Displacement and Ambient Occlusion
    How to make your textures look 3D! PBR (Physics Based Rendering)
After following alex's tutorial, here's our rock material so far.

image

Hot, but it still doesn’t look like what we were promised:


This is because we still need to import the displacement and AO maps, which I will cover in the next section

Displacement map

Displacement maps are a technique where the actual geometry of an object is displaced, or moved along the surface normal, according to a black-and-white map. White pixels are pushed up and black pixels are flat. To import our displacement map, we will need to use Blender

  1. Download blender and run the file you get. Follow the instructions to set blender up.

  2. Open blender like so
    image
    image

  3. If you have no idea how to use blender, I would recommend following tutorials to get the hang of it before continuing. You could also get a friend to help you.

  4. Import your file/open your project

  5. Select your model. Press tab, this brings you into edit mode. Press A to select everything. Right click → Subdivide. Right click–> subdivide.

  6. Do this until you have tons of vertices: example:


    (I’m doing this with a sphere, so I used a subdivision surface)

  7. Now add a displace modifier

  8. Press new
    image

  9. now press the button to the right of the X
    image

  10. Almost done. You’re gonna click Open and select your image. *Protip: You can set the tiling of the image at the bottom

  1. Set the strength property of the displace modifier to 0.2.

    Result:

  2. Now add a decimate modifier. This will reduce the amount of vertices we have while keeping the shape as accurate as possible. Set the Ratio to something small, like 0.1 – triangle count cannot be over 10,000

  3. Now export your file like so

  4. Create a meshpart and import it back to Roblox
    image

Result:
image

Ambient Occlusion (AO)

Imagine rays of light being cast from the sun. They start bouncing around when they hit stuff. However, every time they hit, they lose a bit of energy. Eventually, the rays that bounce into your eyes are what you see. This is a VERY simplified model of raytracing.
Cavities are places where light may bounce into and get “trapped.” Because of this, you’ll see a soft shadow there. This is what AO, Ambient Occlusion maps, seek to replicate.
We’ll be using paint.net for this, but you can use any photo editor you like.

  1. download paint.net if you want: getpaint.net

  2. Open paint.net (:exploding_head: )

  3. Open the colormap

  4. Layers → Import from file → choose the AO map
    image

  5. Press f4, and in the layer properties choose multiply
    image

  6. Export your image
    image

  7. Go to studio, select your model’s Surface Appearance texture, and import the new ColorMapimage

Make sure to leave a :heart: if this helped. I’d love to see what you guys make using this!

EDIT: Added tiling to displacement texture

68 Likes

this is a very inefficient way to do displacement maps and will defo decrease your game’s performance to a crumble, it’s also not worth the time to do this

7 Likes
  1. If your mesh already has many vertices, this may not impact performance that much. If you want realism you may need to accept that your game will be targeted at pcs. Not only that, but showcases need this.
  2. I’ve done this a lot, so I know the process. It takes me literally 1 minute.
  3. When I look through your replies all I see is a bunch of posts on community resources/tutorials where you’re insulting the OP

This tutorial also covers much more than displacement maps for ultimate realism. Your post makes no sense lol

20 Likes

This is a great addition to my tutorial, and is very useful!

2 Likes

??? what? He’s my friend not my alt lol.

Oh wait, you have dif usernames, my bad.

1 Like

Guys please make videos on the blenders best settings because I have a poor pc to get enough performance. This tutorial was really help full.:smile::smile:

By the way roblox do not support AO maps.

1 Like

Thanks! I’ll make sure to do that.

Yeah, you can follow the instructions under AO to bake it into your colormap, then import it under the ColorMap property of the Surface Appearance.

2 Likes

My textures look 10 times better now with AO, honestly thank you so much for posting this!

4 Likes

If @alexfinger21 was my alt why would we have the same usernames dum dum

Man really responded over 3 years later

1 Like