位置: 编程技术 - 正文

THREE.JS入门教程(5)你应当知道的十件事(three. js)

编辑:rootadmin
Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。但是目前这项技术还处在发展阶段,资料极为匮乏,爱好者学习基本要通过Demo源码和Three.js本身的源码来学习。 0.简介 嗨,这是我的第一篇关于如何写出好的代码的文章。和很多开发者一样,我通过实践学习,但同时我也向其他更有经验的开发者们学习。在过去的几个月中,我在canvas标签上花了很多时间,我想如果把这段时间学到的关于WebGL和JavaScript的小技巧都写下来,一定很有意思。有一些很具体,有一些却很笼统,希望你们喜欢! 1.尽快写一个原型 让我们从简单的开始。现在你有个绝妙的注意,那么你应该尽快就程序里最复杂的部分写一个原型,看看这项技术是否可以实现你的想法。WebGL很强大,因为它可以直接操纵显卡里的GPU,但是也别忘了你需要通过JavaScript才能访问显卡,这比显卡内部运算的效率可是低多了。事实上,你的天才想法很可能被这种简单事情击败。 2.使用THREE.JS处理3D 就像我的朋友Hakim一样,我也完全理解我们正使用的技术的底层细节。理解表面之下的东西是很重要的,但是如果你使用three.js,它为你免去了如此多的烦恼。你可以将它用于Canvas,WebGL还有SVG,你也应该找到哪种方式合适你的需求。 3.避免SetInterval 这对所有使用JavaScript创建动画的人来说,都是很重要的一点。为什么?假定你设定每毫秒后执行一次某个函数,而这个函数需要执行超过毫秒的时间,那么ms之后,浏览器不会在乎,而是直接开始下一次执行。至少你可以使用SetTimeout来设置,在某个函数执行完之后,再次执行它。 事实上,有一个更加新潮却还是半成品的函数,叫做requestAnimationFrame,它很棒。它很类似于setTimeOut函数,除了在这两个方面:当标签页失去焦点时,它就不再运行了;现在这个函数还是依赖于浏览器的,标准以后还有可能变化。如果你想要更多的信息,可以访问Paul Irish的博客。 4.使用倒序循环 这是个不错的小技巧,可以让你的循环更快。使用倒序,而且使用while循环。比如,这个循环: 它的执行效率不如下面这个循环: 这可能没帮你省多少开销,因为执行的效率主要还是依赖于你在循环体里面干了什么。但如果你想程序的不必要开销减少到最后一个字节,后一个循环肯定赢。 实话说,主要影响程序执行效率的还是数组缓存的长度。你可以(也确实应该)去看看JSPerf去了解这一点,以及其他影响JavaScript性能的因素。 5.使用纹理 在WebGL里面把物体的任意一个细节都画出来看上去很诱人,但是,如果有可能的话,你应当注意一下你是否能够使用纹理,因为它能够极大地提高性能。在某些特定的情况下,比如阴影或者模糊效果,你也许不得不使用纹理,但在其他时候,你也应该时时关注你是否可以使用纹理。 6.使用缓存 这一点我在自己的试验力试了很多,在帧循环中,你应当避免引用变量、对象或者其他任何东西。基于这点原因,很值得把你的模型、顶点全部缓存起来,这样在渲染动画的时候你就可以快速地访问到它们。 7.禁用选中 我爱这一小段代码,我把它放到任何包含Canvas或WebGL的页面中。 你也可能只想在Canvas控件中禁用选中。这段是我在那些Canvas占据了整个屏幕的项目中使用的代码。 8.避免在JavaScript中定义CSS 现在,在JavaScript中定义CSS简直太方便了,尤其是你使用JQuery的时候 问题是这样做之后,你的JavaScript代码中很快就充斥着各种类型的CSS定义,而你同时又使用*.css文件来定义CSS,潜在的问题很难被发现。更好的方法是:使用class模块化CSS,而且只在JavaScript中定义那些不能预知的CSS类。 9.在对象中定义回调函数 我爱下面这段代码,这绝不是我自己想出来的,但它是如此整洁美观。如果你有一大堆回调函数要用,你也许会这样用的: 或者,你会回调一个在代码其他地方定义的松散的函数,比如这样 这样做会有一些问题。第一段代码中,你在某个事件上绑定了匿名函数,你很难将该函数再从事件上解除下来。你当然可以解除某个事件上的所有函数,但你可能在它上面绑定了多个函数,而你只想解除一个。在第二种情况下,你的函数名污染了全局变量空间,代码的可维护性降低了。所以,考虑这样做: 这样做整洁又干净,而且避免了上面提到的两个问题。 .链式三元运算符 我完全是从Paul Irish的《JQuery,你应该知道的件事》中学到这个的。这非常好用,你也应该会喜欢。我们经常这样做: 但如果你想这样做,比如,当值为多少时如何,当值大于多少时如何,当值更加大的时候如何,明白吗?在这种情况下,链式三元运算符非常好用:

推荐整理分享THREE.JS入门教程(5)你应当知道的十件事(three. js),希望有所帮助,仅作参考,欢迎阅读内容。

THREE.JS入门教程(5)你应当知道的十件事(three. js)

文章相关热门搜索词:three.js bim,three.js 教程,three.js stl,three. js,threejs入门教程,three.js入门指南,three.js 教程,threejs入门教程,内容如对您有帮助,希望把文章链接给更多的朋友!

js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍 IE左键是window.event.button=1右键是window.event.button=2中键是window.event.button=4没有按键动作window.event.button=0Firefox左键是event.button=0右键是event.button=2中键是event.b

THREE.JS入门教程(6)创建自己的全景图实现步骤 译序Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。但是目前这项技术还处在发展阶段,资料极为匮乏,爱好

js中parseFloat(参数1,参数2)定义和用法及注意事项 今天在看jquery的时候里面用到了parseFloat(第一个参数,),一直不懂第二个参数是什么意思,于是上网查了一下,怕以后忘记就记下来。定义和用法:par

标签: three. js

本文链接地址:https://www.jiuchutong.com/biancheng/379143.html 转载请保留说明!

上一篇:THREE.JS入门教程(4)创建粒子系统(three.js 教程)

下一篇:js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍(js鼠标点击事件监听)

  • 营业执照办理税务登记需要什么资料
  • 季度残保金如何申报
  • 各行业的利润率表
  • 实缴资本需要存放多久
  • 对母公司的其他说法
  • 冲红发票怎么写备注
  • 公司注册资金实缴有什么好处
  • 专票未认证是什么意思
  • 土地增值税清算管理规程
  • 税法上的营业收入与会计差异
  • 转让股权怎么写简单
  • 监控维护需要什么经营范围
  • 研发费用没做账怎么调账
  • 个税手续费收入要交税吗
  • 固定资产暂估入账后续调整
  • 购置税和购车税一样吗
  • 按揭购入固定资产怎么算
  • 以前年度费用如何列支
  • 如何固定iPhone墙纸
  • 为什么电脑开启了摄像头但是看不见
  • 奖金发放如何做账
  • 微信聊天记录备份和恢复
  • php 抓取别的网站的内容
  • 国家减免税款怎么申请
  • 发票差额怎样做分录
  • 误餐费怎么入账
  • php零基础教程
  • php技巧
  • 分期开发的房地产项目清算方式
  • 减免活动怎么做
  • 土耳其棉花堡位置
  • 出口已使用的设备退税还是免税
  • 增值税留抵税额计入什么科目
  • PHP自定义函数返回两个数中大的那个
  • Php结合wordpress开发,需要学会什么
  • 工会经费免征三年的文件山东
  • 多模态教学模式论文
  • javascript怎么用
  • 城建税退回与不退税区别
  • ntpq命令详解
  • java 日志系统
  • 待抵扣进项税额和进项税额的区别
  • 印花税没交会怎么样
  • 2022年最新电脑操作系统
  • centos7.9 防火墙
  • mongodb subtract
  • 小企业如何计提折旧
  • 进出车间管理规定适用
  • 进项税额有留底怎么做分录
  • 计提租金如何做账务处理
  • 企业外购的软件叫什么
  • 航天信息全额抵扣分录
  • 房屋租赁合同怎么写对房东有利
  • 工厂没给工人买社保我们应该找哪个部门
  • mysql用中文字段
  • win7打开浏览器很慢
  • xp电脑如何在网页打开
  • mac 特殊符号
  • zzs.exe是病毒吗
  • win8 boot manager
  • win10系统中怎么安装安卓应用
  • linux xim
  • linux常用命令 cat
  • windows8.1怎么设置密码
  • cocos做游戏
  • jquery的使用
  • Unity3D游戏开发(第2版)pdf
  • dos测试网络连接
  • python读配置文件配置信息
  • html lang属性
  • js代码运行机制
  • 简单又实用的
  • android开发教程视频 好少
  • python函数判断质数
  • 国家税务局39号公告退税
  • 重庆办理4050社保需要什么材料
  • 建筑施工及安装单位企业在异地
  • 南通国资委网站首页
  • 张宁年轻
  • 税务延期申报最长多久
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设