学习Threejs的捷径与方法
学习Threejs的态度
本段话主要写给所有想入坑的前端们,无论是你们被上面要求来学的,还是自己要通过学习这个,来在前端领域立足,都希望你们了解一个事情,threejs属于图形学领域,除了开发语言,使用到了JavaScript,其他方面与前端没多大关系,这句话不是在劝退你们,而是希望你们明白,threejs的真实面貌
如果你们是真的有心要学threejs,记住,一定要保持一个尊敬的态度,**这个东西必须要认真学习,认真到如临大敌的水准,**才有可能从只剩下门缝的这个圈子外,挤进来
学习Threejs的捷径
本段内容原本出自所有的基础教程篇,因部分内容已经出现了老旧的情况,以及暮佬的网站挂了的情况,现被单独拉出来归拢到此文中,后续本人的基础教程会移除相关内容
学习Threejs有捷径的,就是多看,多玩,多问
多看
多看是指:教程不要只看一套,看多套,因为threejs的内容非常丰富,一个人的教程再完美,也不可能覆盖所有的threejs相关知识,就拿本人来说,已经写了近一年的博文了,40多篇文章了,到现在还没有讲到应用篇的内容,就这40多篇对于整个threejs领域来说,只是九牛一毛,所以一定要多看
多看还有指看文档,学习Threejs的前期,是最好要多看文档的,哪怕你不知道这些文档意味着什么,至少你要知道文档里大致都有什么,学会看文档使用文档是你学会使用threejs很重要的一步,虽然说threejs的文档写的稀烂,还丢三落四 ,该了解的必须要了解
一定要分清楚官方文档的地址,且官方直接就支持中文,还有你使用的版本与文档是否对应,Threejs更新很快,可能今年能用的API,明年就用不了了,偶尔也要注意看官方的更新日志
多玩
多玩是指,你得多玩一玩别人用threejs做的效果,案例,以及成品,然后简单的分析一下对方可能用到的技术,然后把这个技术的大致样貌,留在脑子里,最好是能达到:你看到相似的效果时,第一时间可以想到你看过这个东西,且能第一时间找到相关的案例或源码,就拿Threejs的官方案例站 来说,本人在初期学习的时候,几乎每天都要花1~2小时,对每个案例都玩一遍,注意是玩一遍,不是看一遍,玩一遍意味着,把页面上所有的交互都试一下,看看都有什么效果,记住这些效果,最好能翻译一下,并记住这些效果对应的案例名称
官方的Examples也经常在更新,从本人入坑到现在,删掉了起码有20个左右的案例,也新增了几十个新案例,本人即使现在,也还保持着每个月至少看一轮Threejs官方demo的习惯
在html的环境下,你可以在开发者工具中,看到别人在开发时使用的技术,甚至 “拿” 到对方的静态资源,比如说模型,贴图等,切忌不要商用别人的资源 ,有的人甚至是在页面中开源的,可以直接看源代码,抄下来的
多问
threejs目前没有任何一家专业的机构培训threejs,也没有任何完美的课程,现阶段处于刚刚热了一段时间,然后又冷下来的情况,也就是说,你遇到的很多问题,百度是百度不到的,就需要你去常问,目前来说,熟悉和精通Threejs的人,都是从QQ时代过来的,所以现在你依然可以通过搜索QQ群来找到WebGL/Threejs的相关群,依然可以在相关群内找到能回答你问题,能帮你解决问题的人
不管你遇到什么问题,多问绝对不是啥坏事(但是切忌急躁,如果你等了几分钟,几个小时,甚至几天都没人回答,你可以换个群问,或者多问几次),常见的问题一般群里人都能给你解释,一个群不行就多个群,但是,如果你想白嫖,比如说你想直接要别人的现成的源码,这种的就算了
不管你是要问谁,都要保持谦恭礼貌,戒骄戒躁,不耻下问,能帮你解决问题的,你喊他一声哥,喊一声大佬,说个您,或者发个小红包请对方喝个茶吃顿饭这都是应该的,一字之师也是老师,虽然常说助人为乐,但是给你帮了忙之后,你连个谢谢,或者一些赞扬的话都不说的话,那你想再找对方帮你,就很难了
知识的领域,基本上只要你肯保持一颗谦恭的心去学习,肯定是有人愿意帮你的
技术群的其他好处
上面提到了技术群,技术群里其实经常会有一些宝藏资源,比如说已经整理好的geojson,各种电子书,各种被整理好的文献和算法,甚至源代码,甚至现成的项目源码等等,多加几个技术群,说不定对你有帮助
现阶段可以访问的Threejs技术网站和案例站
现阶段可以推荐的教程和案例站有:
Threelab,最近新搭建的案例站,目前更新效率很高,且案例优质,基于最新版本的Threejs搭建,非常适合最近入坑的新人
跃焱邵隼,跃佬的网站,教程稍微有点老,但是大部分技术依然可用,跃佬的网站也一直在更新,且跃佬的网站上有非常多的优质成品,还有很多低价的源码售卖,有兴趣的可以看看~~(注:本人与跃佬没有任何商务合作,只是因为跃佬是我的老师之一)~~
后续本人如果发现了优质的案例站,也会在这里做更新
本人的案例站正在搭建中,搭建完成后,站点地址将会在这里出现,敬请期待
再次感谢曾经帮助我入门的大佬们和案例站
感谢Threejs中文网,让我入门
感谢郭隆邦技术博客,郭老师的基础教程,强化了基础
感谢暮志未晚,暮佬的案例站,帮助我扩展了不少技术
感谢跃焱邵隼,跃佬的案例站,帮助我补充和提升了不少技术
感谢动力装甲X01等一众CSDN早期编写Threejs相关技术博文的博主,帮我强化了各方面的Threejs技术
感谢Threejs官方Examples
感谢Shadertoy和IQ大佬的文章,帮助我入门Shader
现阶段Threejs的真实环境
以下内容均为个人看法,仅供参考
以我目前的了解,threejs和整个webgl领域,都呈现有需求但是不多,且技术不足的情况,有技术的人拿不到需求,有需求的人没有技术,还有很多公司为了抢这些需求,就要求前端,甚至后端,甚至unity来加入到webgl领域来开发,有好多人,不仅被迫加入到webgl领域,还有cesium所在的gis领域,这些领域,本都不应该是一个前端,一个后端来承受来学习的
就拿数字孪生领域来说,数字孪生现在的标准,已经不是几年前那个可视化的标准了,随着这几年可视化程序的发展,最后被命名为数字孪生后,现在的数字孪生对webgl开发者的水平要求,已经是高不可攀了,不是说随便加载几个模型,随便对几个数据就完事了,而是要求你把效果尽可能的做到最好,一个新人,一年以内经验的WebGL开发者,99%的人是做不了现在的数字孪生的,别说一年了,三五年经验的开发者能不能满足现在对效果的要求,都是问题,动不动就是一堆的shader特效,而且还有UE和Unity的人来卷这个领域,就常规导出webgl项目,在画质和效果方面就已经超过Threejs一大截了,云渲染技术开始应用到数字孪生之后,那画质提升是飞跃级别的,对你的客户端几乎是0要求了