public class CreateMesh : MonoBehaviour
{public int n = 6;public float r = 5;// Start is called before the first frame updatevoid Start(){//创建一个mesh网格Mesh mesh=new Mesh();//顶点助手VertexHelper vh = new VertexHelper();//圆柱4个面组成//第1个面(上面的圆盖)//每个角的弧度=圆的弧度/角的个数float ang = 2 * Mathf.PI / n;//添加圆心vh.AddVert(new Vector3(0, 1, 0), Color.white, new Vector2(0.5f, 0.5f));//循环计算其它顶点for (int i = 0; i < n; i++){float x = Mathf.Sin(ang * i) * r;float y = Mathf.Cos(ang * i) * r;float uvx = (x + r) / (2 * r);float uvy = (y + r) / (2 * r);vh.AddVert(new Vector3(x, 1, y), Color.white, new Vector2(uvx, uvy));}//计算绘制(使用循环完成)for (int i = 0; i < n; i++){//因为0是圆心,所以0的时候绘制最后一个if(i==0){vh.AddTriangle(0, n, 1);}else{vh.AddTriangle(0, i, i + 1);}}//第2个面(下面的圆盖)//圆心+圆的周围已经用掉了的顶点。不能重复使用int next = 1 + n;//添加圆心vh.AddVert(new Vector3(0, -1, 0), Color.white, new Vector2(0.5f, 0.5f));//循环计算其它顶点for (int i = 0; i < n; i++){float x = Mathf.Sin(ang * i) * r;float y = Mathf.Cos(ang * i) * r;float uvx = (x + r) / (2 * r);float uvy = (y + r) / (2 * r);vh.AddVert(new Vector3(x, -1, y), Color.white, new Vector2(uvx, uvy));}//计算绘制(因为是下面,所以要逆时针绘制)//所有下标+next保证不适用重复的下标for (int i = 0; i < n; i++){//因为0是圆心,所以0的时候绘制最后一个if (i == 0){vh.AddTriangle(0+next, 1+next, n+next);}else{vh.AddTriangle(0+next, i+1+next, i + next);}}//第三个面(侧面)//侧面的顶点就是上下圆出了圆心的所有顶点//上下园用过的顶底不能再用next = (1 + n) * 2;//循环计算其它顶点(首尾相接 所以n+1=0)for (int i = 0; i < n+1; i++){float x = Mathf.Sin(ang * i) * r;float y = Mathf.Cos(ang * i) * r;//int是整数,所以int除以 int只返回0和1float uvx = (float)i / (float)n;if(i==n){x = Mathf.Sin(ang * 0) * r;y = Mathf.Cos(ang * 0) * r;}//下面的顶点vh.AddVert(new Vector3(x, -1, y), Color.white, new Vector2(uvx, 0));//上面的顶点vh.AddVert(new Vector3(x, 1, y), Color.white, new Vector2(uvx, 1));}//多少个面绘制多少次//所有下标+next保证不使用重复的下标//因为圆是顺时针画的,所以显示外侧要逆时针绘制for (int i = 0; i < n; i++){vh.AddTriangle(i*2+next,(i+1)*2+1+next,i*2+1+next);vh.AddTriangle(i*2+next,(i+1)*2+next,(i+1)*2+1+next);}//把顶点助手的数据赋值给mesh网格vh.FillMesh(mesh);//自动计算法线mesh.RecalculateNormals();//把mesh网格赋值给网格过滤器GetComponent<MeshFilter>().mesh = mesh;}

绘制圆柱 uv坐标贴图相关推荐

  1. threejsV0.143.0版本如何设置uv坐标贴图

    由于各版本threejs贴图的方式可能不太一样,所以研究了一下0.143.0版本是如何通过设置uv坐标来贴图的,上代码. const geometry = new THREE.BoxGeometry( ...

  2. UnityShader学习教程之<详解uv坐标,c#类似uv坐标的值以及贴图操作>

    基础篇(五) 一.uv坐标 工作的时候一直都听到同事们再说uv坐标,其实我们对这个词很熟悉,但是说到真正是什么,却发现自己了解的并不透彻,写一篇博客,梳理下基础,了解uv到底是干嘛的! 1.uv是什么 ...

  3. origin画对数坐标_如何用Origin绘制对数坐标图、双横坐标图及插入到Word文稿

    如何用Origin绘制对数坐标图.双横坐标图及插入到Word文稿 1) 如何绘制纵坐标为log.ln对数图 答:如要绘制y轴为log.ln的对数图,选择y轴,"双击",在" ...

  4. UE4官方文档学习笔记材质篇——UV坐标动画,凹凸贴图偏移

    一.UV坐标动画 1.含义 UV 坐标动画或 UV 平移的含义是,水平 (U) 和/或垂直 (V) 移动纹理的 UV 坐标,以产生复杂动画的错觉. 2."Panner(平移)"节点 ...

  5. 3dsmax怎么添加uv坐标_012:多层贴图UVWMAP(UV坐标)技术

    001 怎样建有弧度的窗框 002:欧式雕花和线脚的制作技巧 003:Blend贴图 004:V-Ray线框和晶格修改 005:如何在曲面上扣洞 006:如何进行地面拼花的制作 007:FFD的简单应 ...

  6. matlab怎么画三维坐标的二维图,excel怎么画二维坐标表格图(如何在excel中绘制三维坐标系?)...

    在excle中怎么把二维图形变成三维图形 你说的是图表吗,如果是的话就这样操作 excel2007以上版本:选中图表-点击设计选项卡-最左面有更改图表类型-选择合适的类型-确定 excel2003也是 ...

  7. 游戏渲染建模常用到的相关名词 AlvinCR个人理解-(烘焙、法线、LOD、UV坐标、各向异性)

    本文是UE4世界场景构建总览一文的名词解释部分 如有更新:https://alvincr.com/2021/01/ue4-1-world-creat-pandect/#Related_posts 1 ...

  8. 三维模型(X,Y,Z)坐标,UV坐标

    1.什么是UV? 对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标.什么是UV?简单的说,就是贴图影射到模型表面的依据. 完整的说,其实应该是UVW(因为XY ...

  9. 3d图形学中的uv坐标

    1.什么是uv? 所有的图象文件都是二维的一个平面.水平方向是U,垂直方向是V,通过这个平面的,二维的UV坐标系.我们可以定位图象上的任意一个象素.但是一个问题是如何把这个二维的平面贴到三维的NURB ...

最新文章

  1. Asp.net支持的最大上传文件大小
  2. php session不生效_php 验证session无效问题解决办法
  3. 基于服务器端保存用户的查询参数
  4. 全球及中国绝缘套管行业投资前景及未来竞争格局分析报告2022-2027年
  5. JavaScript and Ruby in ABAP
  6. python如何输出两列数据_如何用python将一列数据分为两列?
  7. App iPhone版内部测试使用办法
  8. [转载]Unicode中对中文字符的编码
  9. PyCharm远程链接矩池云
  10. lol系统链接不上服务器,lol无法连接服务器【搞定思路】
  11. 高清电视开播:大多用户仍难跨入
  12. Python实现矩阵所有元素之和及某一列之和和某一行之和??
  13. 条码扫描枪在仓库管理无线网络AP解决方案
  14. js实现日期农历与公历的互转
  15. STM32 FFT 音频处理
  16. Delphi中小试Opencv--图像差异对比(大家来找茬辅助实现cvAbsDiff函数的使用)
  17. Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示
  18. 恶意进程(云查杀)-DDOS木马
  19. 佳能ir2004打印机显示无法连接计算机,教你解决打印机无法连接USB故障困扰
  20. You will surely observe a Tiffany jewelry

热门文章

  1. HDG杭州站报名| 分享华为CCE容器云、CloudOpera IES和视频UI开放架构实践
  2. 北京最新建筑施工八大员之(安全员)考试真题及答案解析
  3. js延迟执行与循环执行
  4. Java发送httpPost请求带证书
  5. 应届生web前端面试题_史上最全前端面试题(含答案)
  6. iOS形变之CGAffineTransform
  7. ajax上传文件MultipartFile接收
  8. 基于Android的手机通讯录设计
  9. vue中实现百度地图的引用(根据输入框输入内容获取详细地址)
  10. 小程序授权之支付宝(证书模式)