- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.1 Three.js基本框架
1.1 Three.js基本框架在本网站/jiaoyanzu/wuli/ShowArticle.aspx?articleId=1248第1课 绘制一个三角形等一系列文章中,使用的都是WebGL原生API来编程。但之后就应该自己编写一个代码库,以用于随后的通用3D编程,这样就可以将相对复杂的原生API封装起来,提高编程效率。现在有很多不错的WebGL开源框架,Three.js就是其中的一个,它是一个3D JavaScript库,封装了底层的图形接口,使得程序员能够在无需掌握繁冗的图形学知识的情况下,也能用简单的代码实现三维场景的渲染。它是由西班牙程序员Ricardo Cabello Miguel开发的,此人更出名的网名为Mr.doob。Three.js在地址为http://mrdoob.github.io/three.js/http://mrdoob.github.io/three.js/,在那儿你可以下载到全部源代码、文档和示例,我使用的版本为r71。本文会建立一个Three.js基本框架,以后的示例都是在这个框架的基础上实现的。我们会将“第1课 绘制一个三角形”的步骤用这个框架再实现一次。接下来的绝大多数示例都参考自《Learning Three.js:The Javascript 3D Library for WebGL》,在本网站可下载到此书的电子英文版和源代码。基本框架在WebGL原生API中,要在页面上生成内容,大致需要以下几步:创建WebGL上下文创建顶点缓冲(和索引缓冲)创建顶点着色器和片段着色器编译着色器创建程序对象和链接着色器绘制场景而要构建一个Three.js框架,必须拥有三样东西:渲染器(renderer)对象:负责创建WebGL上下文,绘制场景。场景(scene)对象:场景是最上级的对象,用于容纳所有的其他图形对象(网格、相机等)。相机(camera)对象:定义我们在渲染好的scene中能够看到些什么。下面就是网页代码:!DOCTYPE htmlhtmlhead title示例01.01 – 基本框架/title script src=Scripts/jquery-2.1.3.min.js/script script src=Scripts/Threejs/three.min.js/script style body{ /* 将margin设置为0,overflow设置为hidden,可让浏览器显示全屏 */ margin: 0; overflow: hidden; } /style/headbody !-- 作为Canvas容器的div -- div id=WebGL-output/divscript type=text/javascript // 页面加载完毕后,就可以运行Three.js了。 $(function () { var stats = initStats(); // 创建渲染器,并设置视口大小和清除色 var renderer = new THREE.WebGLRenderer(); renderer.setClearColor(0x00204d); renderer.setSize(window.innerWidth, window.innerHeight); // 将WebGL的输出canvas放置到div中 $(#WebGL-output).append(renderer.domElement); // 创建scene对象,用来容纳网格、相机、光源等对象 var scene = new THREE.Scene(); // 创建相机 var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000); // 设置相机位置,观察目标设置为场景中央 camera.position.x = 0; camera.position.y = 0; camera.position.z = 3; camera.lookAt(scene.position); renderer.render(scene, camera); });/script/body/html以上代码还使用了jquery库,这不是必须的,但可以让某些DOM操作更加便捷。若现在运行程序,只会显示墨绿色的背景,我们需要在场景中添加一个黄色的三角形。添加网格(Mesh)对象Three.js中绘制的绝大多数对象都是网格(Mesh),一个Mesh通常是由一个几何体(Geometry)对象和一个材质(Material)对象组合而成。其中Geometry对象保存了Mesh对象的顶点信息和索引信息,而Material对象保存
您可能关注的文档
- 上海市新农学校十三五发展规划.doc
- 上海海事局关于码头、装卸站及修造、拆解船厂防治船舶污.doc
- 上海杭州奥迪A1升级改装凯立德导航和倒车后视功能.doc
- 乌达区住建局随机抽查事项清单.doc
- 亲子共成长工程总结.doc
- 人事表格大全--绝对实用(DOC 38页).doc
- 人事资料表格大全.doc
- 人教版七年级数学上册第一章.doc
- 五下《春光染绿我们双脚》.doc
- 会计实 训 教 学3.doc
- 2025年中国锻铁围栏市场调查研究报告.docx
- 2025年中国椭圆型市场调查研究报告.docx
- 2025年中国无蔗糖原味豆浆市场调查研究报告.docx
- 2025-2031年中国泛在电力物联网行业发展运行现状及投资潜力预测报告.docx
- 2025年中国制袋机零件市场调查研究报告.docx
- 2025年中国智能除垢型电子水处理仪市场调查研究报告.docx
- 2025-2031年中国甘肃省乡村旅游行业市场深度研究及投资策略研究报告.docx
- 2025-2031年中国干海产品行业市场发展监测及投资战略规划报告.docx
- 2025年中国全铝图解易拉盖市场调查研究报告.docx
- 2025年中国人造毛皮服装市场调查研究报告.docx
最近下载
- 孝感非遗经典艺术赏析知到智慧树期末考试答案题库2025年湖北职业技术学院.docx VIP
- 2025年黑龙江省大庆市让胡路区乘风街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
- 慢性萎缩性胃炎诊治心得..ppt VIP
- 班组安全管理隐患排查.pptx
- 2025年黑龙江省大庆市让胡路区西宾街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
- 2025年黑龙江省大庆市让胡路区奋斗街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
- 甲醇燃料安全协议书.docx VIP
- 硕世-新冠产品说明书-加注册证号版.pdf VIP
- GoogleJavaStyleGuide中文版完整版.pdf VIP
- 抖音来客本地生活服务餐饮商家代运营策划方案.pptx VIP
文档评论(0)