当你开始思考你应该如何学习WebGL和Three.js的时候,相信你至少对相关的关键词了解过了,希望通过WebGL或Three.js实现你想要的Web3D功能,也许你也会去思考通过WebGL或Three.js能不能实现你想要的功能,也许你是因为领导临时分配任务,还不太清楚WebGL和Three.js是什么,个人建议是不要做过多思考,先看看相关的具体技术教程,随着时间的推移你自然会明白Canvas、WebGl、Three.js等关键词指什么。
当前看到这篇文章的时候,建议先阅读一遍,然后学习到一定程度,再来看一次,也许会有新的收获。
Three.js是基于原生WebGl API和着色器封装得到的3D引擎,也就是一个.js库。通过原生WebGL直接编写程序,会比较麻烦,一般开发项目直接使用Three.js引擎。简单的项目一般也用不到底层WebGL知识,不过学习WebGl有助于深入理解Three.js,如果使用Three.js开发项目需要自定义着色器的时候,肯定也是要学习底层WebGL和着色器GLSL知识。
总而言之,如果你想成为Web3D应用开发的大牛,学习WebGL肯定是必须的。
如果你急于要实现一个Web3D功能,时间有限,也没有图形学基础,个人建议直接学习先Three.js即可,以后想深入掌握,可以学习原生WebGL和图形学相关知识。
如果时间比较充足,又希望有更大的成长空间,学习底层原生WebGL肯定是必要的,可以WebGL和Threejs结合着学习,顺序也不是非常重要。
如果你是前端工程师,突然接触到Web3D应用开发,对于你来说,前端的生态肯定是非常熟悉了,如果不了解WebGL和3D应用开发这一块,这种情况下,需要学习的自然是底层WebGL知识和Three.js基础知识,还有实战中不同Web3D应用项目,如何去开发,程序员和3D美术之间又应该如何配合,需要去学习实战项目的开发流程。
如果你首次接触WebGL或Three.js,没有任何编程基础,只要学习能力强,学习是没有问题的,很多时候学习能力比你的基础更为重要,过去选择本站3000一对一课程的学员来看,有大约三分之一没有编程基础,不过相同点是学习能力比较强,基于实现自己领域的Web3D应用,对于这些初学者,简单指引下,基本上都很快都可以很快入门。
没有编程基础首先要做的是建立编程的感觉,WebGL开发使用的是JavaScript语言,自然需要找一些基础的JavaScript语言教程学习一下,然后简单补充下HTML和CSS知识,再去学习Three.js课程。
部分初学者,有编程基础,但是不了解前端,这种情况下你肯定首先需要补充的是HTML、CSS、JavaScript等前端知识,然后在学习Threejs和WebGL。刚开始学习Threejs和WebGL对前端要求不高,稍微有点基础即可,但是如果是为了开发项目,对前端的要求和普通前端一样,需要掌握JavaScript、HTML、CSS、http、vuejs、nodejs等知识。
如果你有OpenGL基础,学习WebGL基本没有什么障碍,着色器语言、WebGL API和GPU渲染管线的原理你肯定是非常了解的,这种情况下,补充点前端知识即可。相比大多数初学者,你的基础更定是很深厚的,学习WebGL,不过是换个生态环境罢了,需要打交道对象变成了浏览器。
如果你使用过unity3D或UE4,因为项目需要,需要切换为Three.js,相比较大多数初学者,你是不缺少3D应用开发经验的,对3D应用开发流程比普通前端肯定是非常熟悉的,你学习的时候,自然不需要像普通前端一样,需要学习3D应用的开发流程,程序和美术是如何配合工作的,这种情况下,你需要学习的自然是先补充前端知识,然后熟悉Three.js细节即可,学习能力比较强的话,直接查看Three.js文档也可以。