本人之前从事前端的开发,因为大屏展示的项目,接触到threeJS,现在想学习下webgl,如题,不知道从哪里入手,请问有什么具体学习路线嘛?
泻药。目前确实大屏展示的项目很多,两种技术方案居多,一种是游戏引擎(UE居多),其次是WebGL相关(ThreeJS为代表的其他框架)。其实不管游戏引擎还是WebGL核心还是图形学基础理论,只不过在其基础上又进行封装成框架。之前在直播时候给大家讲过,WebGL学习往往更容易获得收获感和成就感,并且基于WebGL的API也能够更加深刻理解图形学的美丽,除此之外,Web端的三维发展绝对是未来的主线,希望大家先部署自己的战略制高点,先发致人。接下来推荐几种学习路线:
方案一:
1、以框架学习为起点。这里还是建议ThreeJS,因为该框架结构较为清晰,成熟度也很高,社区很活跃,并且解决方案,我们俗称的轮子很多,所以就此而言你想学习三维只是ThreeJS确实是一个很好的试金石。当你可以对ThreeJS的基础API有了一定认识,至少看过一遍,并且实战过之后,你就可以进行下一个阶段的学习了。B站的课程很多关于ThreeJS学习,因为本身这块内容和传统前端没有太大区别,只需要对API熟悉你就可以掌握该知识。
2、学习WebGL。这时候你需要学习WebGL基础、中级、和高级。我推荐《Webgl编程指南》虽然该书也有一定缺点,但是市面上很多书都是靠这本书来翻版的,所以你懂得。
3、阅读ThreeJS源码。吃碎源码一直是所有程序员害怕的,也是极具挑战的内容。如果你想再深耕WebGL端三维开发,或者你想独自打造引擎,threejs源码很香。
4、学习图形学理论。我推荐《虎书》和《games》系列。课程和书籍是相辅相成的。
5、学习着色器或者尝试OpenGL或者direct3D。
当然中间还有数学学习的东西,我建议采取查漏补缺的方法,以上内容的学习不需要很高深的数学,基本都是大学数学内容,当然也有少许的重难点问题。难点问题是需要积累,当然我以后会帮你搞明白。
方案一就这些吧,方案二后面我再追加,希望对你有帮助。
方案二:
1、学习C++。推荐C++程序设计语言(The C++ Programming Language) 。C++之父写的经典 C++书籍,内容覆盖C++的所有东西,感兴趣的朋友可看看,我个人觉得很不错。但说实话,我没看完.....
2、图形学基础学习。图形学基础的学习实际上对于初学者来说难度比较大,这里我还是推荐《虎书》和《实时渲染》。
3、应用图形学基础,利用纯数学绘制图形。
4、学习OpenGL或者Direct3D、Vulkan开发技术。
5、UE、Unity3D...