Unity3D中如何具体实现地形绘制功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2703个文字,预计阅读时间需要11分钟。
项目可能需要用户自定义地形的需求,进而根据地形自动生成房间。以下是我在绘制地形时的实现方法。
我们可以在百度上找到许多关于如何自行创建mesh的博客,mesh的生成需要三个顶点。
项目中肯定会遇到需要用户自己绘制地形的需求,然后根据地形自动生成房间。下面说说我在绘制地形的实现方法。
我们百度可以看到很多关于自己创建mesh的博客,mesh的生成需要三角面顶点坐标以及顶点序列。所以,想要创建我们想要的mesh,首先要获取到绘制mesh的顶点。我们用户在绘制自己想创建的地形时会有很大的自由性。他是随心所欲想怎么画就怎么画。这也造就了很大的错误风险性,要求程序更加智能。好了,下面说下我们给自己程序设定的一些规则。
首先我们设置在绘制的时候摄像头的forward朝向Y轴向上,即我们可以俯视到的就是xz轴组成的平面。其次我们要使用linerenderer来画线,linerenderer组合起来必须是一个封闭的区间,否则有无限种可能。
而画房间不仅有最外层的墙,还有内部一个个小房间,他们也组成了闭合区间。而我们在画地形时需要抓取的是最外层闭合区间的顶点。本文画复杂多边形使用的算法是耳切法分割多边形,所以我们选择操作的方向是逆时针方向。算法链接。下面就说下在做项目时遇到的核心问题处理。还是老套路,先放效果图吸睛。
一、选取第一个处理的顶点
如上我们指定的规则是摄像机沿Y轴向下俯视。所以我们获取所有顶点,然后选取这些定点中x值最小的,选取出X值最小的点,有可能有一个,也有可能有多个,所以我们要接着筛选。在获取的这些点中我们设置筛选的条件是z值最小,这样就能获取到唯一的一个点。此时,该点即为凸点。
本文共计2703个文字,预计阅读时间需要11分钟。
项目可能需要用户自定义地形的需求,进而根据地形自动生成房间。以下是我在绘制地形时的实现方法。
我们可以在百度上找到许多关于如何自行创建mesh的博客,mesh的生成需要三个顶点。
项目中肯定会遇到需要用户自己绘制地形的需求,然后根据地形自动生成房间。下面说说我在绘制地形的实现方法。
我们百度可以看到很多关于自己创建mesh的博客,mesh的生成需要三角面顶点坐标以及顶点序列。所以,想要创建我们想要的mesh,首先要获取到绘制mesh的顶点。我们用户在绘制自己想创建的地形时会有很大的自由性。他是随心所欲想怎么画就怎么画。这也造就了很大的错误风险性,要求程序更加智能。好了,下面说下我们给自己程序设定的一些规则。
首先我们设置在绘制的时候摄像头的forward朝向Y轴向上,即我们可以俯视到的就是xz轴组成的平面。其次我们要使用linerenderer来画线,linerenderer组合起来必须是一个封闭的区间,否则有无限种可能。
而画房间不仅有最外层的墙,还有内部一个个小房间,他们也组成了闭合区间。而我们在画地形时需要抓取的是最外层闭合区间的顶点。本文画复杂多边形使用的算法是耳切法分割多边形,所以我们选择操作的方向是逆时针方向。算法链接。下面就说下在做项目时遇到的核心问题处理。还是老套路,先放效果图吸睛。
一、选取第一个处理的顶点
如上我们指定的规则是摄像机沿Y轴向下俯视。所以我们获取所有顶点,然后选取这些定点中x值最小的,选取出X值最小的点,有可能有一个,也有可能有多个,所以我们要接着筛选。在获取的这些点中我们设置筛选的条件是z值最小,这样就能获取到唯一的一个点。此时,该点即为凸点。

