- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于unity3D的GL图像库的使用
关于unity3D的GL图像库的使用7.5 GL图象库 GL图象库是底层的图象库,主要功能是使用程序来绘制常见的2D与3D几何图形。这些图形具有一定的特殊性,他们不属于3D网格图形,只会以面的形式渲染。使用GL图象库,可在屏幕中绘制2D几何图形,并且该几何图形将永远显示在屏幕当中,不会因为摄象机的移动而改变。2D图形的呈现方式和前面章节介绍的GUI有点类似,值得注意的是,绘制2D图像时,需要使用GL.LoadOrtho()方法将图形映射在平面中;如果绘制的是3D图形,就无须使用此方法。 使用GL图象库时,需要将所有绘制相关的内容写在OnPostRender()方法中。此方法由系统自身调用,无法手动调用。此外,有关GL图象库的脚本需要绑定在Hierarchy视图中的摄象机对象当中,否则将无法显示绘制的图形绘制线 在了解如何绘制线之前,先熟悉Unity中GL图象库的平面坐标系。按照箭头所指的方向,平面坐标系的原点(0,0)位于左下脚。 值得注意的是,GL图象库的平面坐标和普通坐标是有区别的,GL图象库的x轴的最大值是1,y轴的最大值也为1,而不是按照像素来计算的,因此,在GL图象库的平面坐标系中,每个点的横坐标和纵坐标都应当是0与1之间的浮点数,而真实的像素坐标需要根据这个浮点数来计算。 比如当前游戏屏幕的像素宽高是500*500,在GL图象库平面上选择一个点(0.5f,0.5f),那么这个点的真实像素的横坐标和纵坐标应当是:500(屏幕宽)*0.5(x坐标) = 250 500(屏幕高)*0.5(x坐标) = 250public class Script:MonoBehaviour{//绘制线段材质public Material material; //此绘制方法由系统调用 void OnPostRender() { if(!material) { Debug.LogError(“请给材质资源赋值”); Return; } //设置该材质通道,0为默认值 Material.SetPass(0); GL.LoadOrtho(); //表示开始绘制,绘制类型为线段 GL.Begin(GL.LINES); //绘制线段 DrawLine(0,0,200,100); DrawLine(0,50,200,100); DrawLine(0,100,200,200); GL.End();}void DrawLine(float x1,float y1;float x2,float y2){//绘制线段,需要将屏幕中某个点的像素坐标点除以屏幕完成宽或高GL.Vetex(new Vector3(x1/Screen.width,y1/Screen.height,0));GL.Vetex(new Vector3(x2/Screen.width,y2/Screen.height,0));}7.5.2实例----绘制曲线(228)本例通过GL图象库记录鼠标移动的轨迹并且将其以曲线的形式显示在屏幕当中,如图所示,具体实现原理是:记录鼠标在Game视图中移动时每一点的坐标,然后将鼠标移动的坐标存储在链表中,使用绘制方法OnPostRender()遍历链表中记录的鼠标坐标点,最后通过GL图象库绘制线段的方法将这些点两两连成一条线段当前鼠标x轴位置:835当前鼠标y轴位置:894public class Script:MonoBehaviour{//绘制线段材质public Material material;Private ListVector lineInfo;void Start(){//初始化鼠标线段链表lineInfo = new ListVector3();}void Update(){//将每次鼠标改变的位置存储进链表lineInfo.Add(Input.mousePosition);}void OnGUI(){GUILayout.Label(“当前鼠标x轴位置:” +Input.mousePosition.x)GUILayout.Label(“当前鼠标y轴位置:”+Input.mousePosition.y)}//此绘制方法又系统调用void OnPostRender(){ if(!material){ Debug.LogError(“请给材质资源赋值”);Return;}//设置该材质通道,0为默认值material.SetPass(0);//设置绘制2D图象GL.LoadOrtho();//表示开始绘制,绘制类型为线段GL.Begin(GL.LINES);//得到鼠标信息的总数量int size=lineInfo.Count;//遍历鼠标点的链表for(int i=0
您可能关注的文档
- 【CS教程】CS source控制台命令.doc
- 【法语学习】0Nimna2010年12月英语四级考试答案 共(5页).doc
- 【网页特效-时间特效】只是弹出窗口的形式有些变化,酷.doc
- クラック.doc
- 一次入侵过程.doc
- 三兄弟的故事.doc
- 三明学院大一(下)大学英语期末英汉互译.doc
- 三值BiCMOS通用驱动电路设计.doc
- 专八汉译英.doc
- 世界各港口必须注意的一些规定.doc
- 难点详解鲁教版(五四制)6年级数学下册期末测试卷带答案详解(考试直接用).docx
- 难点详解鲁教版(五四制)6年级数学下册期末试题【培优】附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题及完整答案详解(全国通用).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(名师系列).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解【全国通用】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(突破训练)附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(能力提升)附答案详解.docx
- 难点详解京改版数学9年级上册期中试卷附参考答案详解【突破训练】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(有一套).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷带答案详解(夺分金卷).docx
最近下载
- 2025年中国抗CD20单株抗体项目创业计划书.docx
- 5.2《做自强不息的中国人》 课件-2024-2025学年统编版道德与法治七年级下册.pptx VIP
- 2025年初中地理中考跨学科专题练习附答案.docx VIP
- 天然气场站设备-题库.doc VIP
- 做自强不息的中国人 课件- 2024-2025学年统编版道德与法治七年级下册.pptx VIP
- 高速公路养护风险源辨识表.docx
- 2025年内蒙古时事政治考试试卷带解析AB卷.docx VIP
- 2025上海中学生时政大赛备考题复习试题附答案.doc
- 《GB 43500-2023安全管理体系要求》解读与培训.pptx
- 天然气场站设备拆除施工方案.doc
文档评论(0)