目录 |
1 渲染事物 2 创建顶点网格 3 创建Mesh 4 生成附加顶点数据 |
本文主要内容:
1、创建一个点阵网格
2、用协程分析点阵网格的位置
3、用三角形定义表面
4、自动生成法线
5、增加纹理坐标和切线
在本教程中,我们将创建一个由顶点和三角形组成的简单网格。
本教程假设你已经熟悉Unity Scripting的基本知识了。如果不清楚的可以看 时钟 的章节学习Unity的基础知识。而 构建分形 的章节里也提供了协程的基本介绍。
这个章节的示例是用Unity5.0.1制作的,但是可以向上兼容更高的版本。
本教程是CatLikeCoding系列的一部分,原文地址见文章底部。“原创”标识意为原创翻译而非原创教程。
(复杂的外表下面是简单的几何学)
1 渲染事物
Unity是基于mesh去做渲染的,也就是说你想在Unity里看见东西的话,就必须要使用mesh。它可以来自于其他软件制作的3D模型进行导入,可以是由代码动态生成出来的,也可以是一个sprite、UI元素或者是粒子系统,这些统统都是要用到mesh的,就连一些屏幕的后处理特效都需要使用mesh来渲染。
所以,那么到底Mesh是什么呢?从概念上讲,mesh是图形硬件用来绘制复杂事物的的框架。它至少包含一个顶点集合(这些顶点是三维空间中的一些坐标,)以及连接这些点的一组三角形(最基本的2D形状)。这些三角形集合在一起就构成任何mesh所代表的表面形状。
由于三角形是平的,是直线的边,所以它们可以用来完美地显示平面和直线的事物,就比如一个立方体的表面。而曲面或圆曲面只能用许多小三角形来逼近的模拟。如果三角形足够小(比如小于一个像素),那么你就看不出来这是一个近似的模拟值。但通常,这是在当下的硬件设备上是不可能的,因为性能不允许。所以你看到的3D物体表面总是会出现一定程度的锯齿状。
(Unity的默认的 胶囊,立方体,球体的阴影与线框展示)
怎么显示 线框模式?(Wireframe)
在Scene的视窗下面有个下拉菜单,点击之后可以在Scene的视窗里看到不同的渲染模式。
如果你想用一个GameObject展示一个3D的模型,那么它必须要两个components才可以。第一个是mesh filter,它决定了你想展示那个mesh;第二个是mesh renderer,它决定了你应该如何渲染mesh,比如使用什么材质球,是否接受阴影或者投影等等。
(Unity默认的 cube 物体)
为什么materials是复数的?
mesh renderer