(一)mesh基础

概述

本篇为Unity Mesh基础的第一篇,通过一个最基本的平面四边形网格来进行阐述。在此之前先对网格(mesh)做一个简介。网格为最基本的模型表达,通过点构成线,再由线构成三角形,最后由三角形构成面,然后通过材质来进行网格表面的表达,如阴影,贴图等。Unity除了ui的mesh,其他都需要MeshFilter来确定网格形状,通过Material以及MeshRenderer来进行网格渲染。

Mesh的组成

Mesh由顶点组成,再有三个顶点构成。所以Mesh必须定义顶点以及顶点如何构成三角形,这是最基本的三个要素,其次还需要定义uv来确定贴图如何覆盖在图形表面,如果需要还需定义顶点的法线或者切向,法线跟光照有关,而切向则会影响纹理凹凸问题,本文以四边形为例进行阐述。

四边形顶点

顶点个数为4,即左下,右下,右上以及左上。size为正方向尺寸。

    protected override Vector3[] Vertices
    {
   
        get
        {
   
            Vector3[] vertices = new Vector3[4];
            vertices[0] = Vector3.zero * size;
            vertices[1] = Vector3.right * size;
            vertices[2] = new Vector3(1, 1, 0) * size;
            vertices[3] = Vector3.up * size;

            return vertices;
        }
    }

三角形排列

三角形排列为int类型数组,保存顶点的索引号,每三个组成一个三角形。下述代码即为左下,左上,右下组成第一个三角形,剩下组成第二个三角形,排列顺序为顺时针方向。

    protected override int[] Triangles
    {
   
        get
        {
   
            int[] triangles = new int[6]
            {
   
                0,3,1,1,3,2
            };

            return triangles;
        }
    }

Mesh的uv

如果给网格赋值贴图,则需要定义uv,如下定义则为图片左下角对应mesh的左下角,右上角对应右上角。

    protected override Vector2[] Uvs
    {
   
        get
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值