契机:

3-4月份,有机会再次学了一遍高数,然后再一次从二,三重积分的坑里爬来爬去,其中有个直观的问题一直困扰着我就是一个函数在空间坐标系上的图像,所以当时就打算学完这些之后,自己在5月份的时候用three.js自己做一个展示函数图像的小app,这是大体的出发点。

心得:

three.js 是个js框架,封装了webgl的底层操作,webgl是什么呢? 是一种3d绘图协议,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。(百度百科)

  当然我们前端要弄这个webgl首先还是要用canvas获取绘图上下文,然后调用各种api,不过webgl还是太底层了,所以才有了three.js,就像原生js操作dom太麻烦,后来便有了jq,一个道理。

three.js四大件,分别是camera,scene,light,render。

camera就是你的眼睛,通过控制camera的position和lookAt,决定视线

scene就是舞台,所有需要展示的mesh都将add在scene上

light就是光,有了光便有了世界

至于render便是将以上三者综合的结果渲染在了浏览器上

就这样,通过以上几步操作一个二维平面的显示器就可以模拟一个三维世界的显示了。我一直觉得在一个二维平面上显示三维的东西是一个很‘伟大的’事情,前段时间看过一篇3d游戏的发展史后更觉如此,仔细想想几十年以前的显示器完全就是马赛克风格,后来随着像素点的密集,显示的图形才越来越精美。

有了以上的操作后,借助于bom的一些api就能实现动画了,如果是简单的旋转,放大操作可以用THREE.OrbitControls实现,如果只是展示一个3d模型有以上知识就差不多ok了。然而很重要的一点是一个好的3d作品,贴图,材质和模型是尤为重要的,另外尤其得考虑光照因素。而且在现在外界设施的各种限制下,性能优化肯定也是three.js的一个大课题。

最后放点我的成果,球:

马鞍面:

github地址:

https://github.com/daxiazilong/threeDFunctions

玩three.js的一点心得的更多相关文章

  1. 谈谈选用技术的原则,技术学习方法技巧,阅读代码的技巧及其它 MSF的一点心得

    谈谈技术原则,技术学习方法,代码阅读及其它(正文) 这篇文章是前一阵在水木BBS上和别人讨论中偶自己发言的摘编,是偶这几年开发过程完全经验式的总结.完全个人经验,供批判. 一.选用技术的原则 比较规范 ...

  2. WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信

    原文:WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信 最近工作需要,学习了一下winform内嵌webbrowser控件,然后与htm页面中的javasc ...

  3. 使用Webbrowser的一点心得体会

    原文:使用Webbrowser的一点心得体会 自从用上VS2005后,发现多了个WebBrowser控件(.net 2003中不带),为图方便吧,有好多小工具就用这个写的,慢慢也有点体会了,总结一下, ...

  4. angular.js的一点理解

    对angular.js的一点理解 2015-01-14 13:18 by MrGeorgeZhao, 317 阅读, 4 评论, 收藏, 编辑 最近一直在学习angular.js.不得不说和jquer ...

  5. 【并行计算与CUDA开发】基于NVIDIA显卡的硬编解码的一点心得 (完结)

    原文:基于NVIDIA显卡的硬编解码的一点心得 (完结) 1.硬解码软编码方法:大体流程,先用ffmpeg来读取视频文件的包,接着开启两个线程,一个用于硬解码,一个用于软编码,然后将读取的包传给解码器 ...

  6. js断点调试心得

    虽然网上已经有多的数不清的调试教程了,但仍然没有发现哪篇文章写的通俗易懂,索性自己尝试写写自己的一些使用习惯或者说是心得,希望对那些还不是很懂得使用断点调试的孩子有一些帮助(大神请无视~). 1.断点 ...

  7. js的一点

    1.js中实现继承的方法 1.js原型(prototype)实现继承 <SPAN style="<SPAN style="FONT-SIZE: 18px"&g ...

  8. 关于使用Exception的一点心得

    毫无疑问,Exception有很多优点.查看任何一本面向对象的书籍,都会提到异常相对于返回值标记状态的不足以及避免错误导致程序崩溃的问题.看起来是很好的,用起来也是很好的.可是这么多年过去了,异常用的 ...

  9. PHP学习路上的一点心得

    继学些了java后,接触php的项目后发现 php真的也是很强大的一门语言,这只是一篇回想,想到什么就写什么把,大家随便看看. 1.php其实无需等待,一般的改完代码后直接刷新页面即可,不需要像jav ...

  10. 学习Javascript DOM 编程艺术的一点心得

    最近又看了一遍JS DOM编程艺术,照例来写一写读后感. 其实,我从中学到最深的是几个概念:1.平稳退化.当浏览器并不支持JS的时候网页的基本核心功能是还可以用的:2.逐渐增强.在原始的信息层上用其他 ...

随机推荐

  1. JS-正则表达式(基本语法、test、exec、\d\D\w\W\s\S .)

    二,正则表达式 1,什么是正则表达式 是一种规范,对字符串格式进行验证的规范 不用自己写,常用的正则表达式,网上都有,只要会使用就可以 2,定义方法 字面量 var reg = /正则表达式/ 常用方 ...

  2. VSTO踩坑记录(3)- 用ClickOnce发布outlook插件 - 我数据文件呢?

    概述 上面两篇文章虽然很简略,不过vsto说白了就是winform开发,所以需要说的内容不是很多,下面直接到发布阶段. 这次先介绍ClickOnce的发布方式,默认右击项目 - 发布,就是这种方式. ...

  3. (二).NET6.0使用Filter过滤器

    1.创建一个webapi方法 2.创建过滤器,继承自Attribute, IAsyncActionFilter 不存在需要先手动引用有关的包:Microsoft.AspNetCore.Mvc 继承 A ...

  4. 《深入理解Mybatis原理》Mybatis中的缓存实现原理

    一级缓存实现 什么是一级缓存? 为什么使用一级缓存? 每当我们使用MyBatis开启一次和数据库的会话,MyBatis会创建出一个SqlSession对象表示一次数据库会话. 在对数据库的一次会话中, ...

  5. 免费-高清免费视频录像软件OBS

    OBS studio 是免费开源的. https://obsproject.com/download 中文绿色版: http://www.xitongzhijia.net/soft/151705.ht ...

  6. SpringBoot(四) - 整合Mybatis,逆向工程,JPA,Mybatis-plus

    1.SpringBoot整合MyBatis 1.1 application.yml # 数据源配置 spring: datasource: driver-class-name: com.mysql.c ...

  7. linux基础知识(基本认知、操作命令、常用技巧)

    文章目录 Linux基本认知 容量大小 自动补全命令或文件(夹) 复用之前的命令 Linux文件系统 Linux中命令和执行程序长什么样子 执行过的历史命令的记录文件的位置 linux的隐藏文件 Li ...

  8. py并发编程

    并发编程(并发,并行,同步,异步) 通俗理解并发编程中的相关核心概念 核心概念:进程.线程 CPU的作用 计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. CPU的核数(多核 ...

  9. C#中的内部函数(子函数)

    private bool GetMedicalAdvice(string zyID, out DataTable dtM, out DataTable dtD) { bool result = fal ...

  10. 彰显科技硬实力!天翼云论文在国际顶刊JoCCASA发表!

    近日,由天翼云科技有限公司云网产品事业部混合云团队完成的论文<Multivariate Time Series Collaborative Compression for Monitoring ...