3D Product Design Tutorial - Part 3: Procedural Shading + Photoshop Techniques

This tutorial builds on the previous stage of UV mapping. With UVs complete, the next objective is to develop surface detail through texturing. Textures define the visual character of your model, including color, reflectivity, roughness, and surface imperfections. This step is critical for realism and prepares the asset for lighting and rendering.

Learning Outcomes

By the end of this tutorial you should be able to:

  • Differentiate between procedural shading and bitmap texturing.

  • Apply and control Maya’s procedural shaders.

  • Export and edit UV snapshots in Photoshop to create custom texture maps.

  • Assign textures to UVs through shading networks.

  • Organize shaders for production-ready models.

Prerequisites

  • A UV-mapped model from Part 2.

  • Autodesk Maya 2022 or later.

  • Adobe Photoshop (or equivalent raster editor).

  • Basic understanding of the Hypershade editor in Maya.

Step 1 — Overview of Procedural Shading

Procedural shaders generate texture information mathematically rather than relying on bitmap images. They are resolution-independent and highly adjustable.

  • Common procedural nodes in Maya include:

    • Checker (test patterns, UV validation).

    • Noise and Fractal (organic surface variation).

    • Ramp (gradients, masks, label effects).

    • Solid Fractal (complex organic detail).

  • Procedural shaders are ideal for prototypes, early visualization, or surfaces with repeating detail.

Step 2 — Assigning a Procedural Shader

  1. Select the model.

  2. Create a new material: Right-Click → Assign New Material → aiStandardSurface (if using Arnold).

  3. Open Hypershade (Windows → Rendering Editors → Hypershade).

  4. In the material attributes:

    • Assign a procedural node to Base Color or Roughness.

    • For example, connect a Noise node to Roughness to simulate micro-surface scattering.

    • Use a Ramp node for product labels or multi-color patterns.

  5. Adjust procedural parameters (scale, contrast, threshold) to achieve desired results.

Step 3 — Photoshop Workflow for Custom Textures

Procedural shaders have limitations when realism is required (logos, packaging graphics, detailed imperfections). For this, bitmaps are prepared in Photoshop.

  1. In the UV Editor, export a UV Snapshot:

    • Image → UV Snapshot → Save as PNG or TIFF.

    • Set resolution (2048×2048 or 4096×4096 for high-resolution assets).

  2. Open the UV Snapshot in Photoshop.

  3. Use the UV outlines as guides to paint or composite textures:

    • Base Color (Albedo): Product color, logos, packaging graphics.

    • Roughness/Specular Maps: White = glossy, black = rough.

    • Bump/Normal Maps: Subtle surface detail such as embossing or scratches.

  4. Save each map as a separate file (PNG, TIFF, or EXR depending on pipeline).

Step 4 — Applying Textures to UVs

  1. In Maya, assign an aiStandardSurface shader if not already done.

  2. In the Attribute Editor:

    • Connect the Base Color to the Photoshop albedo texture.

    • Connect the Roughness to the corresponding grayscale map.

    • Connect the Normal Map via a Normal Map node to the shader’s Normal Camera input.

  3. Preview the result in the viewport (set to Arnold → GPU Render View or Viewport 2.0 High Quality).

Step 5 — Shader Organization and Optimization

  • Use naming conventions (e.g., product_shader_base, product_roughness_map).

  • Keep textures organized in the sourceimages folder for portability.

  • Apply Material IDs if different parts of the product require different materials (e.g., plastic body vs. metallic cap).

  • For prototypes, keep materials procedural for speed; for final visualization, rely on Photoshop or Substance textures for realism.

Step 6 — Preparing the Model for Rendering

  1. Test textures with a basic light setup (e.g., three-point lights).

  2. Verify texture resolution at the expected render output size.

  3. Freeze transformations, delete construction history, and save incrementally (product_model_texture_v01.mb).