绘制3D的js库
有哪些值得推荐的绘制3D的js库?
4 个回答

只用过three.js,所以推荐这个.
不清楚你打算用来做什么,总的来说,得看你的运行环境.
ie就不考虑了.
火狐大部分还行,但是动态增加贴图的时候会卡,当然一次加载运行的没问题.
最爽的还是谷歌浏览器
移动端,肯定苹果的系统支持比较好,安卓的就别自虐了,运行在微信里的还好一点,16年4月更新支持了安卓端webgl,但也有部分机型跑不了.
好的条件:
桌面,可以指定运行在谷歌chrome里,那么,用three.js来做3D是不错的,毕竟网页的打开即看,上传代码就更新,是符合当前追求速度展现创意的潮流的.
three.js封装并规范,简化了webgl的过程,短短几行代码就可以让你显示出一个3D的内容出来,不至于用webgl一点一点的去写,一点不对就完全不显示的没头脑让人很沮丧.基本上,你想要的,这个库都有很简单的实现,并具有合适的默认值,然后你可以在这个默认值上去修改和学习.
three.js - Javascript 3D library
three.js的官网,有基本上所有的常见功能的例子代码,很多情况下,参考源代码就可以加到自己的代码里.
有繁多的扩展库,不过沉迷于造轮子的我,很少去接触,追求效率的人可能会比较喜欢.
缺陷:
也即webgl的缺陷,最大的问题:
js是单线程的,一个错误,可能会导致执行线程中断,一个执行有性能不足,会导致绘制顿卡.可以引入worker多线程,但是就得建立一定的通讯和执行机制,会带来架构上的复杂性.
运行于浏览器里,而浏览器对js运行性能是有上限的,我这里chrome最高到系统的25%.
chrome全屏运行,会降低运行效率,本来窗口60满帧运行的页面,全屏后立即在41-50之间波动,不清楚为何会如此,也不知道解决方法,望有知道解决方法的朋友告知一下,这个对我当前比较重要.
js代码是明文,基本上,就当自己是开源工作者好了,呵呵,劳动成果没办法保护得了的.混淆有一定用处,但也会被扒皮.唯一的,就是尽量保证自己走在别人前面.
错觉:
webgl的绘制动作是opengl来执行的,也就是显卡绘制,硬件拥有什么样的绘制性能,webgl就能达到什么样的,唯一的就是js的执行效率短板而已,对于数据运算不多的场景,还是不错的,当然因为基于opengl-es,所以有很多限制和缺失而已.
收藏感谢收起

能够让一种语言做所有事情是伟大的,
但试图让一种语言可以做所有的事情是愚蠢的。
我知道这句话要得罪很多人,但我还是要说:
但是你们这些学js只会做web的人,要做后端我理解,为什么要用nodejs,就不能去学java,go,c等等呢?
你们想做3d,我也理解,为什么就不去用傻瓜式的unity甚至高级点的ureal呢?原生态一点的ogre也好啊,为什么还是想着用js写webgl呢?
v8的性能让js有了一席之地,然而,听我一句,除非有一家公司想再捣腾一个js虚拟机出来,不然这真不是长久之计,v8这玩意儿,厉害是厉害,但不是长久之计啊……
收藏感谢

裂墙推荐 PlayCanvas ~ Babylon 和 ThreeJS 都不要再看了
利益相关:目前正在单刷 PlayCanvas 的全部文档汉化 …… 完成度 10% 填坑中 ……
收藏感谢

目前最稳定的当属Three.js,做小项目推荐;playcanvas是目前唯一带有类unity可视化编辑工具的,并且使用ECS架构,缺点是工具是云端的,天朝的网你懂的;Babylon做游戏功能强大,使用ts开发,源码比较乱,社区不如前两者活跃。
最后推荐shawn0326/zen-3d,简单小巧,目前在测试阶段。
绘制3D的js库的更多相关文章
- 轻量级的绘制图表js库--Morris.js
Morris.js 是一个轻量级的 JS 库,使用 jQuery 和 Raphaël 来生成各种时序图. 虽说现在移动手机网络已经到了4G,但是在移动web客户端开发过中,为了达到良好的体验效果,需要 ...
- mapboxgl绘制3D线
最近遇到个需求,使用mapboxgl绘制行政区划图层,要求把行政区划拔高做出立体效果,以便突出显示. 拿到这个需求后,感觉很简单呀,只需要用fill-extrusion方式绘制就可以啦,实现出来是这个 ...
- impress.js 一个创建在线幻灯的js库
真的好奇怪,我居然会写前端技术的博客.没有办法的,最近实习,看的大多是前端.所以今天就用这个来练练手了. Impress.js 是一个非常棒的用来创建在线演示的Javascript库.它基于CSS3转 ...
- 12个值得关注的顶级可视化JS库 涉及图表、动画、时间处理,表格操作
本文是译文,原文是https://da-14.com/blog/top-11...我在原文的基础上加了百度的Echats图表库,这个也是毫不逊色其他图表库的.另外Handsontable电子表格库也是 ...
- Python画各种 3D 图形Matplotlib库
回顾 2D 作图 用赛贝尔曲线作 2d 图.此图是用基于 Matplotlib 的 Path 通过赛贝尔曲线实现的,有对赛贝尔曲线感兴趣的朋友们可以去学习学习,在 matplotlib 中,figur ...
- 【转载】写一个js库需要怎样的知识储备和技术程度?
作者:小爝链接:https://www.zhihu.com/question/30274750/answer/118846177来源:知乎著作权归作者所有,转载请联系作者获得授权. 1,如何编写健壮的 ...
- js库
lanchpad用的js库 http://lesscss.org/ https://github.com/EightMedia/hammer.js/wiki/Getting-Started http: ...
- 解决jQuery多个版本,与其他js库冲突方法
jQuery多个版本或和其他js库冲突主要是常用的$符号的问题,这个问题 jquery早早就有给我们预留处理方法了,下面一起来看看解决办法. 1.同一页面jQuery多个版本或冲突解决方法. < ...
- 协同js库,代码编辑器
一些协同的js库 Collabedit, Online Code Editor http://collabedit.com/ Stypi, a realtime editor https://www. ...
随机推荐
- linux 下各个4K区块文件大小测试速度对比 机械硬盘性能 64K性价比收益最高
机械硬盘,每个区块取三次数最小值为准,带2G RAM缓存卡 4K3.4 MB/秒 8K7.3 MB/秒 16K9.5 MB/秒 32K16.7 MB/秒 64K44.2 MB/秒 128K67.1 M ...
- 华为手机如何查看WiFi密码
2017.8.26 (补充) 博主更新华为手机系统之后,发现下面的教程已经不适用了,新系统在备份WLAN时强制要求设置密码,无法跳过,所以下面的教程仅适用于备份时可以跳过设置密码的系统. 有时候手机用 ...
- jmeter测试20个QPS下的响应时间-设置QPS限制
添加--->定时器--->Constant Throughput Timer Constant Throughput Timer 的主要属性介绍: 名称:定时器的名称 Target thr ...
- Javascript,获取元素,write方法
一:Javascript:弱类型脚本语言,是一种动态类型.实现部分动画效果和用户交互等 -- html是骨架(页面结构) css样式 js是行为 -- 弱类型体现: JS代码可以写在body,he ...
- mysql各种连接总结
术语解释: 1.内连接: 只连接匹配的行 2.左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行 3.右外连接: 包含右边表的全部行(不管左边的表中是否存 ...
- THINKPHP3.2.3增加阿里云短信接口思路整理
https://help.aliyun.com/document_detail/55359.html?spm=5176.product44282.4.7.O4lc1n 阿里云短信服务地址,感冒的下载看 ...
- shell随笔
一, case的详细用法: 参考文章(http://blog.csdn.net/dreamtdp/article/details/8048720) 语句实例:由用户从键盘输入一个字符,并判断该字符 ...
- javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题
/* * js数学计算 add by yan */ /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较 ...
- Spring mvc RequestContextHolder分析
转载: http://blog.csdn.net/zzy7075/article/details/53559902
- sysbench相关
Sysbench工具是集系统测试和数据库测试一体的测试工具,但是传统的sysbench在数据库测试方面,没有遵循TPC-C测试模型,仅仅支持单个表的数据.而在实际的业务场景中,业务逻辑复杂的多.开源的 ...