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

企业网站设计思路北京网站开发建设 58同城

企业网站设计思路,北京网站开发建设 58同城,wordpress 所有函数,范文网站学校技防 物防建设最近在做项目优化#xff0c;注意到动态创建Mesh时#xff0c;Unity提供了一套高级方法用于快速创建模型#xff0c;特此记录学习一下。 前言 关于Mesh的基本概念再次不在阐述#xff0c;可以参考Unity Mesh 官方文档#xff0c;介绍的很详细#xff0c;其中 基础方法…最近在做项目优化注意到动态创建Mesh时Unity提供了一套高级方法用于快速创建模型特此记录学习一下。 前言 关于Mesh的基本概念再次不在阐述可以参考Unity Mesh 官方文档介绍的很详细其中 基础方法包括SetVertices、SetNormals、SetUVs、SetTriangles、SetIndices、SetColors、SetTangents、SetBoneWeights 高级方法包括SetVertexBufferParams、SetVertexBufferData、SetIndexBufferParams、SetIndexBufferData、SetSubMesh。 优势 使用基础方法有个限制就是Mesh的最大顶点数量不能超过65535而高级方法则没有这个限制。高级方法跳过了一些检查创建速度更快尤其模型顶点数量较多的情况下有性能提升实测时间缩短将近1/3。 示例 基础方法 需要提前准备好模型的数据 属性名含义类型vertices顶点坐标Verctor3[]normals法线Verctor3[]triangles顶点索引int[]uv纹理坐标Verctor2[] //创建Mesh并赋值相当于调用SetVertices、SetNormals、SetTriangles、SetUVsMesh mesh new Mesh();mesh.vertices myMeshes[i].vertices;mesh.normals myMeshes[i].normals;mesh.triangles myMeshes[i].triangles;mesh.uv myMeshes[i].uv;//将Mesh赋值给MeshFilter组件GameObject gameObject new GameObject();MeshFilter mf gameObject.AddComponentMeshFilter();mf.sharedMesh mesh;//给模型赋予材质MeshRenderer mr gameObject.AddComponentMeshRenderer();mr.material material; 高级方法推荐 同上先准备好模型的基础数据 ////顶点属性描述中添加该模型具有哪些属性该例中有顶点、法线、一个uv其中//顶点坐标 Position 用 3 个 Float32 数据表示//法线向量 Normal 用 3 个 Float32 数据表示//纹理坐标 TexCoord0 用 2 个 Float32 数据表示//VertexAttributeDescriptor[] vertexAttributes new[]{new VertexAttributeDescriptor(VertexAttribute.Position, VertexAttributeFormat.Float32, 3),new VertexAttributeDescriptor(VertexAttribute.Normal, VertexAttributeFormat.Float32, 3),new VertexAttributeDescriptor(VertexAttribute.TexCoord0, VertexAttributeFormat.Float32, 2)};//// 根据顶点数量创建缓冲区// // 假设创建一个四方面片则缓冲区数据如下// 顶点 法线 uv// -5, -5, 0, 0, 0, -1, 0, 0, //第 1 个顶点// -5, 5, 0, 0, 0, -1, 0, 1, //第 2 个顶点// 5, -5, 0, 0, 0, -1, 1, 0, //第 3 个顶点// 5, 5, 0, 0, 0, -1, 1, 1 //第 4 个顶点//int vertexCount myMeshes[i].vertices.Length;int bufferLength 3 3 2;int vertexAttributeBufferLength vertexCount * bufferLength;float[] vertexAttributeBuffer new float[vertexAttributeBufferLength];//// 将准备好的模型数据填充到缓冲区//Vector3[] vertices myMeshes[i].vertices;Vector3[] normals myMeshes[i].normals;Vector2[] uv myMeshes[i].uv;for (int j 0; j vertexCount; j){int start j * bufferLength;//此处 0 ... 7 的原由。观察四方面片示例vertexAttributeBuffer[start 0] vertices[j].x;vertexAttributeBuffer[start 1] vertices[j].y;vertexAttributeBuffer[start 2] vertices[j].z;vertexAttributeBuffer[start 3] normals[j].x;vertexAttributeBuffer[start 4] normals[j].y;vertexAttributeBuffer[start 5] normals[j].z;vertexAttributeBuffer[start 6] uv[j].x;vertexAttributeBuffer[start 7] uv[j].y;}//将顶点缓冲区写入MeshMesh mesh new Mesh();mesh.SetVertexBufferParams(vertexCount, vertexAttributes);mesh.SetVertexBufferData(vertexAttributeBuffer, 0, 0, vertexAttributeBufferLength, 0);//将顶点索引写入索引缓冲区int[] triangles myMeshes[i].triangles;int indexCount triangles.Length;mesh.SetIndexBufferParams(indexCount, IndexFormat.UInt32);mesh.SetIndexBufferData(triangles, 0, 0, indexCount);//每个Mesh至少包含一个SubMesh也可将上面的缓冲区分开赋值分别设置到不同的SubMeshmesh.subMeshCount 1;SubMeshDescriptor subMeshDescriptor new SubMeshDescriptor(0, indexCount);mesh.SetSubMesh(0, subMeshDescriptor);//将Mesh赋值给MeshFilter组件GameObject gameObject new GameObject();MeshFilter mf gameObject.AddComponentMeshFilter();mf.sharedMesh mesh;//给模型赋予材质MeshRenderer mr gameObject.AddComponentMeshRenderer();mr.material material; 备注 此处为了展示高级方法的用法因此未直接创建完整缓冲区数据多执行一次数据的组装即vertexAttributeBuffer数组。实际应用时会直接将缓冲区数据准备好而不是分开存储vertices、normals、uv、triangles直接调用SetXXXBufferParams、SetXXXBufferData。 参考其他博主的文章Unity3D学习笔记4——创建Mesh高级接口
http://www.zqtcl.cn/news/36560/

相关文章:

  • 您的网站对百度设置了ip封禁珠海市横琴建设局网站
  • wordpress建站程序怎么注册商标
  • 法学院网站建设建议备案个人网站
  • 网站制作模板代码贵阳做网站
  • 做网站app需要懂些什么哪里有做外贸网站的
  • 怎样做一个网站平台网站开发项目名
  • 网站建设价格如何郑州企业网站快速优化价格
  • 汉中微信网站建设推广网络营销技巧培训班
  • wordpress删除模板文件夹域名seo站长工具
  • 青岛高品质网站建设综合网站开发
  • 朝阳网站设计做矢量图的网站
  • 商务网站的功能爬取数据做网站
  • 做统计的网站网站空间怎么建站
  • 商业性质网站设计品牌网站制作简创网络
  • 12380 举报网站建设上海商城
  • 网站建设公司 销量自己做外贸怎么找客户
  • 网页制作与网站建设自考wordpress 静态页面显示文章
  • 如何做网签合同 网站爱奇艺推广联盟
  • 网站智能建设系统源码长春seo顾问
  • 徐州手机网站建设公司哪家好wordpress能干什么
  • 黑龙江建设人力资源网站工作室项目网站
  • wordpress 模板 分栏目沈阳百度快照优化公司
  • 做跨境网站网站定位要点 有哪些方面
  • 惠州专业网站设计公司深圳市网站首页
  • 优惠劵网站怎么做wordpress 漏洞 扫描
  • 电商网站是什么意思营销型企业网站怎么制作
  • 北京网站建设上北京九五至尊网络网站标签怎么改
  • 免费资源源码网站qq是哪款软件开发的
  • 宜昌市建设局网站做公司网站要素
  • 怎么做网站的步骤专业网站制作电话