| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 杂篇-01-Unity中创建Mesh时遇到的问题 -> 正文阅读 |
|
[游戏开发]杂篇-01-Unity中创建Mesh时遇到的问题 |
摘要今天在做水渲染时,需要手动创建一个顶点数很多的Mesh让波形更加精准,写一个MeshCreater脚本,其中遇到了一些Unity限制的问题。 MeshCreater首先了解Unity的Mesh
1.Mesh类包含变量
2.MeshFilter类继承自Component,需要挂到GameObj上 包含变量
3.MeshRender类继承自Component,需要挂到GameObj上 自动获取Menfilter中的mesh信息,进行渲染,其中可以为各个submesh添加独立material 问题在制作MeshCreater时,制作了个showvertex的脚本用于显示mesh的顶点,发现以下问题
另一个问题,即Unity单个mesh绘制的顶点数 不能超过65535,如果超过则必须拆分绘制使用SetTriangles 在进行水渲染的时候需要大量密集的mesh顶点,超过65000很正常
上次讲到在创建均匀的正方形Mesh时,如果长宽乘积超过65535就会出现问题,所以尝试使用SubMesh来多次绘制,在取各个SubMesh的Triangles值时遇到很多问题。下面来解决 设置缓冲区格式最简单的方法莫过于修改这个65535的限制
一般默认的indexFormat设置的是16位 对应最大值就是65535 2^16-1(index是无符号的) 修改为32位后最大值变为4294967295即2^32-1 这样做对于每个mesh来说存储空间更大了,在有大量mesh时会消耗更多的资源,同时不是所有的设备平台的GPU都支持32位索引,在使用时需要慎重。 SubMesh.SetTriangles官方文档提供的方案是使用该函数使用对超过65535索引值的顶点进行访问,具体通过参数baseVertex对索引值进行偏移
现在问题是在生成width*height个顶点的矩形场景下取triangles 创建mesh流程
如何控制GIndex 和 Index 使得 trianglesGroup中的所有值都在65535范围内,且可以设置对应的Vertex偏移。 尝试解决思路
总结
思考
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 0:48:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |