docs.unity3d.com
    Show / Hide Table of Contents

    Materials, Shaders, Textures, and UVs

    In Unity, materials allow you to specify which shader to use on a Mesh. Shaders perform a set of calculations that tell Unity how to render (draw) your Meshes based on properties specific to that shader.

    You can apply materials to make your floor look like it's made of tile, wood, stone, or anything else that you want. ProBuilder allows you to apply a material to the entire Mesh, or only on selected faces. This allows you to provide more realistic-looking surfaces during game play or while grey-boxing. For example, you might decide to use tiles on the floor, brick on some walls, and stone on others.

    Materials Example

    Some materials use Textures, which are bitmap images (for example, Unity can import BMP, JPEG, PNG, and most standard 2-dimensional image formats). Unity projects these images on the surfaces of your Mesh to achieve a more realistic result.

    The Mesh stores the texture mapping data as UVs. These are 2D fold-outs of the actual 3D Mesh, as if you peeled back the skin of an object and laid it out flat, like the image below.

    Textures unwrapped in the UV Editor

    UV coordinates (also sometimes called texture coordinates) are references to specific locations on the image. They only use two dimensions (u,v). Texture mapping is the list of 2D UV coordinates mapped to their 3D vertex counterparts on the surface in three dimensions (x,y,z). This mapping tells Unity exactly how and where to project the image on the Mesh.

    Note: For more in-depth information on these concepts and the relationship between rendering and GameObjects in Unity, see Materials, Shaders & Textures in the Unity User Manual.

    The Smooth Group editor lets you smooth the seams on portions of your Meshes and leaves others sharper. This can be very useful when creating organic Meshes, such as terrain objects.

    For Materials containing Textures, you can use ProBuilder's texture mapping to fine-tune the appearance. For example, if you apply a brick material to a wall, you can adjust the offset, rotation, and tiling of the object's UVs.

    Before and after adjusting the Texture mapping in the UV Editor

    This image shows the Textures before adjustments on the left and after adjustments on the right. On the right, the brick Texture is scaled down and tiled on the wall Mesh, and the wooden Texture is rotated to match the alignment of the signpost Mesh, so that the grain appears to be moving in a natural direction. The grass Texture on the right has been repositioned and smoothed.


    Did you find this page useful? Please give it a rating:

    Thanks for rating this page!

    Report a problem on this page

    What kind of problem would you like to report?

    • This page needs code samples
    • Code samples do not work
    • Information is missing
    • Information is incorrect
    • Information is unclear or confusing
    • There is a spelling/grammar error on this page
    • Something else

    Thanks for letting us know! This page has been marked for review based on your feedback.

    If you have time, you can provide more information to help us fix the problem faster.

    Provide more information

    You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:

    You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:

    You've told us there is information missing from this page. Please tell us more about what's missing:

    You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:

    You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:

    You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:

    You've told us this page has a problem. Please tell us more about what's wrong:

    Thank you for helping to make the Unity documentation better!

    Your feedback has been submitted as a ticket for our documentation team to review.

    We are not able to reply to every ticket submitted.

    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023