本篇讲述的是使用代码来修改的方法,其实unity已经给我们提供了设置的方法:Normals选择Calculate,Smoothing Angle调整为0即可。

这里的内容是在这篇文章的基础上进行的修改:https://blog.csdn.net/final5788/article/details/50574055

原文章中主要是没有提到UV以及骨骼与定点的绑定方法。

由于实现lowpoly的风格其实就是将原来的1个点复制为多个点,所以我们只要在复制定点的过程中将相应的顶点属性一同复制即可。

这里直接给出完整代码:

using UnityEngine;
using UnityEditor;public class LowPolyTool : MonoBehaviour {//制作Unity顶部菜单栏[MenuItem("LowPolyTool/LowPoly")]static void LowPoly(){Transform[] transforms = Selection.transforms;for (int i = 0; i < transforms.Length; i++){LowPoly(transforms[i]);}}static void LowPoly(Transform t){MeshFilter meshFilter = t.GetComponent<MeshFilter>();  Mesh mesh = meshFilter.sharedMesh;  Vector3[] oldVerts = mesh.vertices;//保存当前Mesh顶点  int[] triangles = mesh.triangles;//三角索引数组  Vector2[] olduvs = mesh.uv;BoneWeight[] oldBoneWeights = mesh.boneWeights;Vector3[] verts = new Vector3[triangles.Length];//用于保存新的顶点信息 Vector2[] uvs = new Vector2[triangles.Length];//用于保存新的uv信息 BoneWeight[] boneWeights = new BoneWeight[triangles.Length];//用于保存新的骨骼信息 for (int i = 0; i < triangles.Length; i++){verts[i] = oldVerts[triangles[i]];uvs[i] = olduvs[triangles[i]];boneWeights[i] = oldBoneWeights[triangles[i]];triangles[i] = i;}mesh.vertices = verts;//更新Mesh顶点  mesh.triangles = triangles;//更新索引 mesh.uv = uvs;//更新uv信息mesh.boneWeights = boneWeights;//更新骨骼信息mesh.RecalculateBounds();//重新计算边界  mesh.RecalculateNormals();//重新计算法线  }}

将脚本放到任意Editor文件夹中,会在菜单栏看到LowPolyTool/LowPoly选贤,将模型文件拖入场景中并选中,点击LowPoly既可。

注意这里会直接修改原模型文件的数据,所以在修改之前请做好备份。

效果:

这里我只是随便找了一个模型,实际上模型的顶点数越少实现出来的效果会越好,就是所谓的低模。

unity 中带贴图以及动画的模型文件转为 lowpoly 风格的方法相关推荐

  1. Unity中播放序列图

    目录 一.目的 1.想知道:Unity中播放序列图 二.参考 1.unity序列帧的播放方法 1.Unity自定义组件之序列帧播放组件 1.Unity播放序列帧 三.操作:完成:直接在场景中播放,占据 ...

  2. Unity使用c#开发遇上的问题(六)(3dmax围绕指定中心旋转,unity中动态调用预制体并根据模型旋转指定角度)

    文章目录 前言 一.3dmax创建子弹.炮塔及武器库 1.相关模型 2.炮塔模型引入unity,无法绕旋转球旋转,重新调整 1.3dmax中默认炮管的中心点 2.选择层次界面 3.选择编辑工作轴 4. ...

  3. origin修复中_从Word文档中的Origin图恢复误删的Origin文件数据的方法

    在平时工作中,由于不小心将原始的Origin文件删掉了或找不到了,万幸的是Word文件中还有一份图,如何恢复数据呢?本文就教大家一种从Word文档中的Origin图恢复误删的Origin文件数据的方法 ...

  4. unity中凹凸贴图、法线贴图、视差贴图和位移贴图

    凹凸贴图 ((更多资源资料下载群:193521697邀请码:10026)) 对于凹凸贴图在计算机图形领域中的研究,最早开始于70年代末,至今已经有接近30年历史了.NormalMap只是一种目前很流行 ...

  5. 随笔-Unity中一个简易的Spine动画控制器

    我们在Unity中使用Spine动画时,调整一个属性可能调用的是不同类,可能简简单单启动一个动画需要写很多个函数,于是我这边对Spine的动画控制做了一个简易的封装,在目前来说使用还是很方便的,也并不 ...

  6. 【unity游戏开发教程】Unity+Umotion Pro+VRoid+Blender制作人物模型和动画,在unity中简单制作二次元人物动画

    前言 大家好!本期教程教大家在unity中制作二次元人物模型和动画 文章目录 前言 0.环境准备 1.下载VRoid Studio 2.Umotion Pro下载 3.Mixamo网站 4.blend ...

  7. unity中UI界面的一些动画实现总结

    在做unity的ui界面的时候,美术通常会实现一些动画效果.这里列举几个: 1.位置的变化 2.旋转的变化 3.缩放的变化 4.alpha的变化 5.颜色的变化 我们举一个例子: 位置的变化: (1) ...

  8. tensorflow打印模型图_从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)...

    最近看到一个巨牛的人工智能教程,分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.平时碎片时间可以当小说看,[点这里可以去膜拜一下大神的" ...

  9. Unity 中带你写MVC架构

    1.什么是MVC MVC分别代表Model - View - Controller Model - 模型层,也就是说,他只负责数据 View - 视图层,也就是说,他只负责更新UI Controlle ...

最新文章

  1. 判断一个python字符串中是否包含中文字符
  2. 漫画 | 程序员的悲哀是什么?
  3. UnixLinux技术文章目录(2015-12-22更新)
  4. Arduino学习笔记-新的按键控制方式
  5. java程序样例_一个完整的java程序示例
  6. 使用python Selenium实现智慧树界面化自动刷网课 chromehandless实现智慧树无界面化自动刷网课
  7. cv2 imread函数 python_opencv-python图形图像处理入门基础知识
  8. 每日内涵微信小程序-2-轮播图圆角
  9. vb6.0企业版win7_教你安装纯净版windows系统
  10. 134. 加油站(JS实现)
  11. 家庭教师服务器维护,成立首家“家庭教师服务中心”
  12. WC2007 剪刀石头布【补集转化+比赛问题费用流】
  13. 区块链/BlockChain+ProofOfWork
  14. 分享几套免费漫画字体和卡通字体
  15. 数控铣削图案及编程_数控铣床漂亮编程图案 数控铣床编程100例
  16. 我的平安健康生活---师旭平
  17. opencv-人眼检测,人眼跟踪
  18. 视频批量添加透明水印,必须用这个方法
  19. StackOverflow上87万访问量的问题:什么是“找不到符号”?
  20. Openairinterface从零开始搭建5G核心网——Basic版

热门文章

  1. 基于Proteus无实物STM32入门自学教程(二)--LED流水灯
  2. u盘加密 linux,kali linux 持久加密U盘安装
  3. 1362 小Y的悲剧
  4. 第2章第9节:标题设计技巧:制作抖音风格的标题样式 [PowerPoint精美幻灯片实战教程]
  5. 摘录 - 与人相处之道
  6. 下拉推广系统立择火星推荐_下拉框软件都择火星下拉下拉框软件速来火星下拉...
  7. 最简单的方式构建 Tkinter 图形界面
  8. 仿美团(1)--接口分析
  9. ICMAX八大方法教你快速分清什么是SD卡与TF卡
  10. 网众linux无盘服务器,网众无盘Linux常用命令介绍