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. 如何在TEASOFT中加入直线与曲线?
  2. CTF入门--请输入密码
  3. 上传Text文档并转换为PDF
  4. vs 常见问题汇总
  5. Spring的AOP-基本概念
  6. 无法打开文件“python35_d.lib”
  7. fidde调试手机_实操:手机上用Fiddler调试页面(嘎)
  8. 《零基础入门学习Python》学习过程笔记【32,33,34异常处理】(没看)
  9. python 初始化数组_Python里面这些点,据说90%的新手都会一脸懵逼
  10. 谷歌被墙,如何给谷歌浏览器添加迅雷下载插件
  11. 服务器上文件添加可信任,如何将服务器配置为受信任以进行委派
  12. 【数据分析案例】如何定义你的“亲密关系”
  13. springboot的定时任务注解
  14. java monitor
  15. SpringBoot整合RedisTemplate实现缓存信息监控
  16. 文本分类实战--从TFIDF到深度学习(附代码)
  17. 零和博弈、正和博弈和负和博弈:
  18. 微信小程序------1️⃣
  19. R语言绘图——实用篇 ggplot2绘图
  20. 计算机一级2017.6,2017年全国计算机一级考试真题

热门文章

  1. springboot java基于协同过滤算法商品推荐系统vue
  2. 如何避免虚拟主机空间中的黑名单问题?
  3. 联想笔记本官网驱动下载
  4. Android模仿微信加号菜单模式
  5. vue pdf文件下载 / 在线预览真是有效!
  6. 1071: [SCOI2007]组队
  7. linux 命令行启动火狐,命令行安装firefox
  8. 【第141期】游戏策划:清华大学游戏制作人/策划研究生,开课了
  9. HTML5:移动互联网的第二个苹果
  10. linux怎么防火墙关闭端口,Linux防火墙的关闭或端口的开放