玩three.js的一点心得
契机:
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的一点心得的更多相关文章
- 谈谈选用技术的原则,技术学习方法技巧,阅读代码的技巧及其它 MSF的一点心得
谈谈技术原则,技术学习方法,代码阅读及其它(正文) 这篇文章是前一阵在水木BBS上和别人讨论中偶自己发言的摘编,是偶这几年开发过程完全经验式的总结.完全个人经验,供批判. 一.选用技术的原则 比较规范 ...
- WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信
原文:WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信 最近工作需要,学习了一下winform内嵌webbrowser控件,然后与htm页面中的javasc ...
- 使用Webbrowser的一点心得体会
原文:使用Webbrowser的一点心得体会 自从用上VS2005后,发现多了个WebBrowser控件(.net 2003中不带),为图方便吧,有好多小工具就用这个写的,慢慢也有点体会了,总结一下, ...
- angular.js的一点理解
对angular.js的一点理解 2015-01-14 13:18 by MrGeorgeZhao, 317 阅读, 4 评论, 收藏, 编辑 最近一直在学习angular.js.不得不说和jquer ...
- 【并行计算与CUDA开发】基于NVIDIA显卡的硬编解码的一点心得 (完结)
原文:基于NVIDIA显卡的硬编解码的一点心得 (完结) 1.硬解码软编码方法:大体流程,先用ffmpeg来读取视频文件的包,接着开启两个线程,一个用于硬解码,一个用于软编码,然后将读取的包传给解码器 ...
- js断点调试心得
虽然网上已经有多的数不清的调试教程了,但仍然没有发现哪篇文章写的通俗易懂,索性自己尝试写写自己的一些使用习惯或者说是心得,希望对那些还不是很懂得使用断点调试的孩子有一些帮助(大神请无视~). 1.断点 ...
- js的一点
1.js中实现继承的方法 1.js原型(prototype)实现继承 <SPAN style="<SPAN style="FONT-SIZE: 18px"&g ...
- 关于使用Exception的一点心得
毫无疑问,Exception有很多优点.查看任何一本面向对象的书籍,都会提到异常相对于返回值标记状态的不足以及避免错误导致程序崩溃的问题.看起来是很好的,用起来也是很好的.可是这么多年过去了,异常用的 ...
- PHP学习路上的一点心得
继学些了java后,接触php的项目后发现 php真的也是很强大的一门语言,这只是一篇回想,想到什么就写什么把,大家随便看看. 1.php其实无需等待,一般的改完代码后直接刷新页面即可,不需要像jav ...
- 学习Javascript DOM 编程艺术的一点心得
最近又看了一遍JS DOM编程艺术,照例来写一写读后感. 其实,我从中学到最深的是几个概念:1.平稳退化.当浏览器并不支持JS的时候网页的基本核心功能是还可以用的:2.逐渐增强.在原始的信息层上用其他 ...
随机推荐
- Spring Validation 校验
概述 在 Web 应用中,客户端提交数据之前都会进行数据的校验,比如用户注册时填写的邮箱地址是否符合规范.用户名长度的限制等等,不过这并不意味着服务端的代码可以免去数据验证的工作,用户也可能使用 HT ...
- Powercat 无文件落地执行技巧,你确定不进来看看?
声明:本文主要用作技术分享,所有内容仅供参考.任何使用或依赖于本文信息所造成的法律后果均与本人无关.请读者自行判断风险,并遵循相关法律法规. 目录 完整示例 注意事项 演示 无文件落地执行(filel ...
- Qt/C++音视频开发74-合并标签图形/生成yolo运算结果图形/文字和图形合并成一个/水印滤镜
一.前言 在使用yolo做人工智能运算后,运算结果除了一个方框,还可能需要增加文字显示在对应方框上,以便标记是何种物体,比如显示是人还是动物,或者还有可能追踪人员,显示该人员的姓名.这种应用场景非常普 ...
- HTTP协议中,Content-Type(内容类型)讲解
在基于HTTP协议进行Web开发时,客户端请求经常会发送请求文件或媒体的类型(Type),为了编译理解和总体把握,在本人总结了一下常用的文件或媒体类型,支持的类型大致有以下9种: 文本:text.图像 ...
- 配置Ubuntu上的NFS
$sudo apt-get install nfs-kernel-server nfs-common 配置 $sudo vim /etc/exports#添加#/home/pi/project/roo ...
- Windows安全加固(一)
目录: 1.在win ser2016中如何管理重命名administrator,禁用GUEST 2.禁用GUEST账户 3.系统不显示上次登录的账户名. 4.清理系统无效账户. 5.按用户类型分配账号 ...
- 「工具分享」Checker Script for Linux
以前整的一个 Linux 下对拍程序 qwq. 建一个文件夹, 假设叫 dir, 然后把 checker.sh 扔进去, 顺便 chmod +x checker.sh. 你需要自己设置一下代码 ...
- Collection子接口:Set接口(实现类:HashSet、LinkedHashSet、TreeSet)
/** * 1. Set接口的框架: * * |----Collection接口:单列集合,用来存储一个一个的对象 * |----Set接口:存储无序的.不可重复的数据 -->高中讲的" ...
- oracle11gRAC升级到19C
升级oracle11g集群到19.3 前述环境检查: [root@qhdb1 ~]# crsctl status res -t ------------------------------------ ...
- Linux VXLAN小实验
本文分享自天翼云开发者社区<Linux VXLAN小实验>,作者:李****一 前言 VXLAN在云网络中应用十分广泛.本文介绍一种方法在两台Linux主机之间建立简单的VXLAN隧道,以 ...