CodeBlanks Logo Icon CodeBlanks

Summary - 3D model

Reinforce 3D model usage with a summary task.

3D Model Architecture Summary

3D models consist of vertices storing spatial points and triangles linking them into surfaces. An in-scene model stores its geometry using MeshFilter and renders its appearance on screen with MeshRenderer and an associated Material. While primitives serve basic forms, complex models are imported externally via .fbx.

MeshFilter mf = GetComponent<MeshFilter>();
MeshRenderer mr = GetComponent<MeshRenderer>();
Debug.Log(mf.sharedMesh.vertexCount);

Practice 3D Model Inspection Task

Assign filter.sharedMesh.vertexCount to variable kose and renderer.materialCount to variable malzeme. Print results with Debug.Log("Kose: " + kose); and Debug.Log("Malzeme: " + malzeme); respectively.

Starter code

Player.cs
using System;

public class Mesh
{
    public int vertexCount = 8;
}

public class MeshFilter
{
    public Mesh sharedMesh = new Mesh();
}

public class MeshRenderer
{
    public int materialCount = 1;
}

public static class Debug
{
    public static void Log(object message) => Console.WriteLine(message);
}

public class Program
{
    public static void Main()
    {
        MeshFilter filter = new MeshFilter();
        MeshRenderer renderer = new MeshRenderer();
        // kose ve malzeme sayilarini alip ekrana yazdir
    }
}

Sample solution

Player.cs
using System;

public class Mesh
{
    public int vertexCount = 8;
}

public class MeshFilter
{
    public Mesh sharedMesh = new Mesh();
}

public class MeshRenderer
{
    public int materialCount = 1;
}

public static class Debug
{
    public static void Log(object message) => Console.WriteLine(message);
}

public class Program
{
    public static void Main()
    {
        MeshFilter filter = new MeshFilter();
        MeshRenderer renderer = new MeshRenderer();
        int kose = filter.sharedMesh.vertexCount;
        int malzeme = renderer.materialCount;
        Debug.Log("Kose: " + kose);
        Debug.Log("Malzeme: " + malzeme);
    }
}

Expected output

Kose: 8
Malzeme: 1

Questions and answers

Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.

1 Which two components must exist together for a 3D object to retain geometry in memory and appear on screen with color and material?

  • AudioSource and Rigidbody
  • Transform and BoxCollider
  • Camera and Light
  • MeshFilter and MeshRenderer Correct answer

Explanation: MeshFilter holds the geometry data, while MeshRenderer renders this geometry to screen with materials.

2 Read Mesh Geometry

Question
Mesh geometri = filter.____;
Answer
Mesh geometri = filter.sharedMesh;

Explanation: The original mesh reference on MeshFilter is accessed via the sharedMesh property.

3 All 3D Model Concepts

Term Meaning
Mesh Holds vertex and triangle geometry data
MeshFilter Connects mesh geometry to GameObject
MeshRenderer Draws geometry with materials
.fbx 3D model file imported from outside

All lessons in Intermediate