首先要确保模型是低模,如果模型精度较高只通过这样改变mesh的顶点三角索引效果就不明显

获取模型的mesh网格,非蒙皮模型通过获取MeshFilter组件得到Mesh,带有蒙皮的模型通过Skinned Mesh Renderer组件获取Mesh。

MeshFilter meshFilter = GetComponent<MeshFilter>();
Mesh mesh = meshFilter.mesh;

修改模型mesh顶点索引然后重新计算法线,使三角面上三个顶点的法线与三角面的法线平行,这样整个三角面光照效果相同(颜色相同),就有了Low Poly效果:

Vector3[] oldVerts = mesh.vertices;//保存当前Mesh顶点int[] triangles = mesh.triangles;//三角索引数组Vector3[] verts = new Vector3[triangles.Length];//用于保存新的顶点信息for (int i = 0; i < triangles.Length; i++){verts[i] = oldVerts[triangles[i]];triangles[i] = i;}mesh.vertices = verts;//更新Mesh顶点mesh.triangles = triangles;//更新索引mesh.RecalculateBounds();//重新计算边界mesh.RecalculateNormals();//重新计算法线

将脚本赋予模型,运行即可得到low poly效果。为了避免每次执行进行顶点的计算以及修改,可以加上下面代码将修改后的Mesh保存成文件:

string fileName = "Assets/FileName.asset";//要保存成的文件路径及文件名 文件格式为.assetAssetDatabase.CreateAsset(meshFilter.sharedMesh, fileName);//创建文件AssetDatabase.SaveAssets();//保存数据

运行程序后会在Assets下生成Mesh文件,将此文件拖到该模型Mesh Filter组件下的Mesh,此时生成low poly的脚本组件已经无用了,记得移除

完整代码:

using UnityEngine;
using System.Collections;
using UnityEditor;
public class FlatShading : MonoBehaviour
{private Mesh mesh;void Start(){var meshFilter = GetComponent<MeshFilter>();mesh = meshFilter.mesh;Vector3[] oldVerts = mesh.vertices;int[] triangles = mesh.triangles;Vector3[] verts = new Vector3[triangles.Length];for (int i = 0; i < triangles.Length; i++){verts[i] = oldVerts[triangles[i]];triangles[i] = i;}mesh.vertices = verts;mesh.triangles = triangles;mesh.RecalculateBounds();mesh.RecalculateNormals();//save filestring fileName = "Assets/" + System.DateTime.Now.Year.ToString()+ System.DateTime.Now.Month.ToString()+ System.DateTime.Now.Day.ToString()+ System.DateTime.Now.Hour.ToString()+ System.DateTime.Now.Minute.ToString()+ System.DateTime.Now.Second.ToString() + ".asset";AssetDatabase.CreateAsset(meshFilter.sharedMesh, fileName);AssetDatabase.SaveAssets();}
}

Unity Flat Shading实现低多边形(low-poly)效果相关推荐

  1. Unity Asset Store精品Low Poly风格素材资源合集

    本文介绍Unity Asset Store里优质的Low Poly风格素材,会从人物.环境.动物和通用四个方面的素材分别进行介绍. 一:人物素材 本部分包含幻想类.城市类和Q版人物素材三个子类别. O ...

  2. 一键制作低多边形海报效果教程

    效果还是非常漂亮的哦,个人相对比较喜欢,所以就写了一下这个PS动作教程,动作到陌鱼社区搜一下"厚涂手绘低多边形人物海报效果PS动作"就可以找到,下面是一些效果: 01.载入相关预设 ...

  3. php 画low poly,五分钟教你明白高大上LOW-POLY风格图片生成术

    有没有看到看到效果高大上的图片,觉得离自己很远,望而生畏?今天给大家介绍一种名为LOW-POLY的风格图片,让所有人都一起来LOW-POLY一把,高大上一把! 感谢新浪微博朋友@创意农民 授权分享.本 ...

  4. php 画low poly,用canvas 实现个图片三角化(LOW POLY)效果_javascript技巧

    之前无意中看到Ovilia 用threejs做了个LOW POLY,也就是图片平面三角化的效果,觉得很惊艳,然后就自己花了点时间尝试了一下. 我是没怎么用过threejs,所以就直接用canvas的2 ...

  5. js生成图片的多边形科技感效果

    js将图片转换为无数多边形组成的科技感图片 low poly 效果 用多边形拟合一张图片,这种凹凸有致的科技感令人着迷,这就上图  这种效果既能保护隐私,又能对形象有一个科技感的良好展示. 在线dem ...

  6. CSS3 低多边形(Low Poly)设计及开发实例 - 简单的字母

    Low Poly是计算机主流设计风格的一种. 当前主流设计风格包括: 1.拟物(Skeuomorph) 2.平面化(Flat Design) 3.长阴影(Long Shadow) 4.响应式(Resp ...

  7. Blender从头到尾创建低多边形角色学习教程 Low Poly Characters – Blender Bitesize Course

    从头到尾创建低多边形角色. 你会学到: Blender界面的基础. 基本建模技术. 如何遵循字符引用? 如何创造和塑造自己的角色(不同风格.发型和服装). 纹理字符. 索具和动画介绍(用于你的游戏引擎 ...

  8. 低多边形(Low Poly)风格会不会成为移动游戏时代的8bit像素

    在iPhone进入游戏市场之前,大家都认为PC和主机游戏的画面的进化趋势是变得越来越逼真.有越来越多的多边形数.让游戏更贴近现实是游戏的核心进化趋势,所以制作者们在游戏中塞进更多的多边形,以实现更逼真 ...

  9. Unity Shader - ddx/ddy偏导函数测试,实现:锐化、高度图、Flat shading应用、高度生成法线

    文章目录 ddx, ddy 说明 DirectX - ddx, ddy OpenGL - dFdx, dFdy 伪代码表示 可用它来做什么 简单的边缘突出应用 Shader 边缘突出-锐化-增加差值 ...

最新文章

  1. 关于Oracle数据库用户密码过期的预防和解决办法
  2. 视频会议老走神?试试VR会议的真·沉浸式体验!HTC、IEEE纷纷试水,云开会也能拥抱、自拍...
  3. Linux CentOS各大网站镜像资源地址展示,各种rpm资源包下载地址,rpm安装包大全
  4. 多重背包单调队列优化思路_动态规划入门——多重背包与单调优化
  5. eclipse报错: Could not generate secret
  6. html5--6-13 CSS3中的颜色表示方式
  7. C语言基础--字符串
  8. Flutter进阶—简单平台插件实例
  9. 导航动态避让算法RVO的优化ORCA(Optimal Reciprocal Collision Avoidance)
  10. 解剖caffe mode:Blobs, Layers和Nets
  11. scp 传输文件到另一台服务器
  12. 一秒快速修正 mysql ERROR 1406 (22001): Data too long for column ‘name‘ at row 1
  13. 500 内部服务器错误 解决方法
  14. Unity AssetBundle的打包 发布 下载与加载
  15. IoC Containers and the DI pattern
  16. 【imessage苹果群发】推送安装软件苹果推使用通配符
  17. [开源]Qt图片调整之饱和度调节
  18. MatLab矩阵的创建、寻访和运算
  19. Linux常用工具介绍
  20. 前端html学习记录

热门文章

  1. 渝北统景碑口规划开发_渝北区碑口水库主体工程开建
  2. 滤波电容/去耦电容,怎么选型?
  3. php微信摇一摇,申请开通微信摇一摇
  4. android 环信 emmessagelistener,集成环信实现简单聊天功能
  5. 【配准】2020年“基于深度学习的医学影像配准”期刊论文速览(PR,TMI,MIA)
  6. 百度测试开发岗面试题(2019秋招)
  7. 云计算供应商在合同谈判时可能拒绝的三个事项以及要求
  8. (附源码)音乐播放小程序 毕业设计 031306
  9. VMware 扩展硬盘大小提示 指定的虚拟磁盘需要进行修复
  10. 转载:一名程序员的磨练