当前位置: 首页 > news >正文

云服务器 能用来做网站吗/关键词制作软件

云服务器 能用来做网站吗,关键词制作软件,中国建设银行网站首页,临朐网站开发更新日期:2020年5月13日。 Github源码:[点我获取源码] 索引Fragmentization使用参数原理及算法图像展示Fragmentization 设置一个碎化起始点,使得网格从该点开始逐渐破碎。 使用 在Hierarchy界面选中一个带网格渲染组件(MeshRe…

更新日期:2020年5月13日。
Github源码:[点我获取源码]

索引

  • Fragmentization
    • 使用
    • 参数
    • 原理及算法
    • 图像展示

Fragmentization

设置一个碎化起始点,使得网格从该点开始逐渐破碎。

使用

Hierarchy界面选中一个带网格渲染组件(MeshRenderer或SkinnedMeshRenderer)的物体,在物体名字上单击右键,选择创建MeshEditor > Effects > Fragmentization

调用Play播放特效,Pause暂停特效,UnPause恢复特效,Stop停止特效。

参数

在这里插入图片描述
Fragmentization参数面板:
1.Play On Start:是否在Start时自动播放特效。
2.Frag Point:碎化起点。
3.Frag Health:碎片生命力。
4.Frag Speed:碎片分离速度。
5.Frag Rate:碎化速率。
6.Fragment Type:碎片行为控制者。

原理及算法

碎化算法主要分为以下四个阶段:
1.计算离碎化起点最近的三角面,保存为起点三角面;
2.从起点三角面开始,计算碎化顺序;
3.根据碎化顺序逐渐分离三角面;
4.如果发现网格还有剩下的三角面,重新执行1。

计算起点三角面:计算起点三角面很简单,遍历所有三角面比一下距离就可以了,这点可以丢到子线程里面去,不过开销并不大,暂时没这么做。

        //获取第一个三角面,碎化起点private Triangle GetFirstTriangle(MeshData meshData){Vector3 fragPoint = transform.worldToLocalMatrix.MultiplyPoint3x4(FragPoint);Triangle triangle = meshData.Triangles[0];float distance = Vector3.Distance(fragPoint, meshData.Triangles[0].Center);for (int i = 1; i < meshData.Triangles.Count; i++){float dis = Vector3.Distance(fragPoint, meshData.Triangles[i].Center);if (dis < distance){triangle = meshData.Triangles[i];distance = dis;}}return triangle;}

计算碎化顺序:这里的算法稍微有点复杂,采用相邻三角面排序算法,一个开启列表、准备列表、关闭列表(HashSet)同时参与计算,思路:查询准备列表,只要准备列表中存在三角面,就将该三角面纳入开启列表,开启列表中的三角面会被立即加入关闭列表(完成排序),然后开启列表中的三角面的邻居会被纳入准备列表。目标是根据网格中三角面的相邻关系,生成一个列表。

        //获取三角面碎化顺序算法private void GetTrianglesOrder(Triangle first){_trianglesOrder.Clear();_triangleOpen.Clear();_triangleReady.Clear();_triangleClose.Clear();//将第一个三角面加入准备列表_triangleReady.Add(first);//如果还有准备中的三角面while (_triangleReady.Count > 0){//将准备中的三角面纳入开启列表_triangleOpen.UnionWith(_triangleReady);_triangleReady.Clear();//遍历开启列表,逐一关闭foreach (var item in _triangleOpen){CloseTriangle(item);}//遍历开启列表,逐一将其邻居纳入准备列表foreach (var item in _triangleOpen){ReadyNeighborTriangle(item);}_triangleOpen.Clear();}_triangleOpen.Clear();_triangleReady.Clear();_triangleClose.Clear();}//关闭三角面,三角面加入关闭列表private void CloseTriangle(Triangle triangle){if (!_triangleClose.Contains(triangle)){_triangleClose.Add(triangle);_trianglesOrder.Add(triangle);triangle.BrokenLinkVertex();}}//准备相邻三角面,三角面加入准备列表private void ReadyNeighborTriangle(Triangle triangle){foreach (var item in triangle.Vertex1.Triangles){_triangleReady.Add(item);}foreach (var item in triangle.Vertex2.Triangles){_triangleReady.Add(item);}foreach (var item in triangle.Vertex3.Triangles){_triangleReady.Add(item);}}

分离三角面:这里会根据碎化顺序弹出排在第一位的三角面,并生成实体碎片(实体碎片对象池),直到排序列表中不存在三角面,然后再次确认网格是否还有三角面残留(某些模型由几部分网格组成,网格之间不相邻,只通过执行一次计算顺序算法并不能找到所有三角面)。

        //分离三角面private void Fragmentization(MeshData meshData){if (_trianglesOrder.Count > 0){Triangle triangle = _trianglesOrder[0];_trianglesOrder.RemoveAt(0);meshData.RemoveTriangle(triangle);GenerateFragment(triangle);}else{_timer = 0;if (meshData.Triangles.Count > 0){GetTrianglesOrder(GetFirstTriangle(meshData));}else{Stop();}}}

图像展示

在这里插入图片描述
在这里插入图片描述

http://www.jmfq.cn/news/5144923.html

相关文章:

  • 有没有在家做的兼职网站/福州短视频seo推荐
  • 安吉网站建设/推广平台排行榜app
  • 笔记本电脑做网站比较畅快/百度指数 移民
  • 网站怎么做自己站长/搭建一个网站需要多少钱?
  • 济阳县做网站公司/seo软件开发
  • 网站里图片做超链接/手游推广渠道平台
  • 专业做网站的公司哪家更专业/国家域名注册服务网
  • 柳州公司网站建设/精准客源
  • 网站建设书模板/天堂网
  • 求职网站开发多少钱/营销计划怎么写
  • 长春疫情最新消息今天封城了/石家庄抖音seo
  • 快站怎么做淘客网站/免费创建自己的网站
  • 如何在阿里巴巴上建设公司网站/百度关键词工具入口
  • 英文网站建站模板/seo技术平台
  • 西安SEO网站建设哪家好/博客
  • 南宁机关两学一做网站/真正免费的网站建站平
  • 商丘做网站公司/深圳网站优化哪家好
  • linux wordpress ftp/网站seo诊断
  • 建设网站要不要钱百度贴吧/企业网站优化公司
  • 门户网站开展集约化建设的情况/地推接单平台app排行榜
  • 怎样查看别人的网站是怎么建设/镇江推广公司
  • 网站建设有什么证/哪个app可以找培训班
  • 教人做素食的网站/旅游网络营销的渠道有哪些
  • 软件技术毕业设计题目/宁波百度推广优化
  • wordpress 多语言 站点/北京seo服务商找行者seo
  • 枸杞网站的建设方案/广告推广策划
  • 网站建设推广优化话术/如何让百度快速收录网站文章
  • 贵阳网站开发谁家做的好/志鸿优化设计
  • 网站开发 前端如何学习/爱站
  • 合肥企业建站系统/seo权重是什么意思