契机:

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. 龙哥量化:通达信板块概念FAQ,*期强势、*期弱势是怎么划分的?等问题是官网的解释,股友可以根据文章的提示迸发策略灵感

    如果您需要代写公式, 请联系我. 龙哥QQ:591438821 龙哥微信:Long622889 比如第9条,*期强势:20日涨幅>=30%,     3日涨幅>0,非停牌.非ST.非未开板 ...

  2. Qt音视频开发29-Onvif云台控制

    一.前言 云台控制也是onvif功能中最常用的,最常用的功能排第一的是拿到视频流地址,排第二的就是云台控制了,云台控制的含义就是对带云台的摄像机进行上下左右的移动,一般云台摄像机都是带有一个小电机,一 ...

  3. Unix和Windows操作系统中路径中的正斜杠和反斜杠的区别

  4. Angular(一) - Typescript&Angular入门熟悉

    1. Typescript 1.1 安装typescript 1.2 typescript的小例子 1.2.1 新建一个index.ts 1.2.2 编译ts成js 1.2.3 查看生成的index. ...

  5. AngleSharp 自带的HttpRequest参数设置

    AngleSharp自带一个获取网址源码的api,可以方便的从web取得html var config = Configuration.Default.WithDefaultLoader(); var ...

  6. GRPC-JAVA

    近一年来一直在用公司内wiki进行技术调研以及记录,后期有时间将逐步迁移至博客园 参考资料: https://github.com/grpc/grpc-java https://www.cnblogs ...

  7. solon-flow 你好世界!

    solon-flow 是一个基础级的流处理引擎(可用于业务规则.决策处理.计算编排.流程审批等......).提供有 "开放式" 驱动定制支持,像 jdbc 有 mysql 或 p ...

  8. Oracle生成awr报告操作步骤

    1.cmd命令窗口 以sysdba身份登录Oracle 2.执行@?/rdbms/admin/awrrpt命令,并选择报告类型为HTML.输入天数以选择生成报告的时间段,一般默认为最近7天.输入报告开 ...

  9. idea 构建项目 编译失败: 内部 java 编译器错误

    昨天编译还好好的项目,今天不能构建运行了.尝试多种办法没有解决,咨询一位趟过坑的资深同事得到解决.(猜是由于项目不断增加依赖包,内存不够用了.) IDEA 文件|设置(Ctrl+Alt+S)|构建.执 ...

  10. 解读 DeepSeek-R1 论文 - 通俗易懂版

    引言:让 AI 学会"思考"的新突破 在近年来的人工智能浪潮中,大型语言模型(LLM)如 ChatGPT 已经能回答各种问题,但它们在复杂推理方面仍有不足.所谓复杂推理,比如解决奥 ...