| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 对Unity Mesh的理解 -> 正文阅读 |
|
[游戏开发]对Unity Mesh的理解 |
目录 Mesh的组成Mesh是Unity内的一个组件,称为网格组件,是Unity 的主要图形基元。Unity 中提供了各种组件来渲染常规或蒙皮网格、轨迹或 3D 线条。
Mesh:是指模型的网格,建模就是建网格。细看Mesh,可以知道Mesh的主要属性内容包括顶点坐标,法线,纹理坐标,三角形绘制序列等其他有用属性和功能。因此建网格,就是画三角形;画三角形就是定位三个点。 Mesh Filter:内包含一个Mesh组件,可以根据MeshFilter获得模型网格的组件,也可以为MeshFilter设置Mesh内容。 Mesh Render:是用于把网格渲染出来的组件。MeshFilter的作用就是把Mesh扔给MeshRender将模型或者说是几何体绘制显示出来。 Skinned Mesh?Render:用来渲染骨骼动画;此类动画中的网格形状由动画骨骼进行变形。 它们之间的关系大概就是Unity中的对象就是GameObject,每个GameObject都可以有一个MeshFilter组件(也可以没有),该组件又有Mesh属性(这个一定有),而该属性又有顶点坐标,法线等属性。而如果GameObject里有MeshFilter,则必须要Mesh Renderer才能将此网格渲染出来,不然是看不见该网格的。 Mesh的属性Mesh的属性:
顶点坐标:顶点坐标数组存放Mesh的每个顶点的空间坐标,假设某mesh有n个顶点,则vertex的size为n 法线:法线数组存放mesh每个顶点的法线,大小与顶点坐标对应,normal[i]对应顶点vertex[i]的法线 纹理坐标:它定义了图片上每个点的位置的信息. 这些点与3D模型是相互联系的, 以决定表面纹理贴图的位置. UV就是将图像上每一个点精确对应到模型物体的表面. uv[i]对应vertex[i] 三角形序列:每个mesh都由若干个三角形组成,而三角形的三个点就是顶点坐标里的点,三角形的数组的size = 三角形个数 * 3. 例如:某mesh有四个顶点0,1,2,3, V0(1, 1, 0), 那么它们可以组成这样的一个网格: tri[0] = ver[0], ver[3], ver[1],? ? tri[1] = ver[0], ver[2], ver[3], 注意:三角形的顶点顺序必须是顺时针,顺时针表示正面,逆时针表示背面,而unity3d在渲染时默认只渲染正面,背面是看不见的。 那么该三角形可以表示为: tri ?= new int[2 * 3]{0, 3, 1, 0, 2, 3}; 如何要获取第N个三角形对应的三个顶点坐标,则: v1 = tri[N*3 + 0], v2 = tri[N*3 + 1], v3 = tir[N*3 + 2] 示例1.创建一个GameObject并添加MeshFilter以及MeshRender组件,并创建一个“CreateMesh.cs”脚本给它。 2.获取该对象的filter组件,并创建一个mesh给它。 3.为该mesh设置属性,这里先设置顶点,然后将三角形与顶点绑定。
效果如图: 3.网格已经成功生成,接下来该给网格贴图了,在Inspector视图里选中Mesh Render,并拖一个材质给它, Mesh Render是负责渲染的,将Mesh Filter里的mesh通过自身的Materials渲染出来。 设置完材质后,我们需要将纹理贴图与网格顶点一一对应起来,这样才能渲染出来。
效果如图: 本文参考: https://www.cnblogs.com/jeason1997/p/4825981.html |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/15 16:50:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |