转到图形开发将近一年的时间了,学习到了很多新的知识,总结一下大概的学习过程。
一、计算机图形学基础知识
这部分是在B站上通过闫令琪的GAMES101教学视频来学习的,很适合新手学期。
课程大概包含:计算机图形学概述、向量与线性代数、变换、光栅化、着色、几何、光线追踪、材质与外观等。
GAMES101: 现代计算机图形学入门 (ucsb.edu) 这个是官方的网站,可以下载PDF版本的课件,视频需要上B站观看。
现在已经有了GAME202 Real-Time High Quality Rendrting (高质量实时渲染),这个才学习了第一节课程,需要抓紧时间补课了。
二、C/C++
编程语言,图形类的开发大部分都是用的C++,以前用了好多年的C#,基本要从头开始学C++。
刚开始真的很不习惯,各种宏函数,指针。。。不过用一段时间后,会发现C++的世界真的很精彩。
这个也是通过视频来学习的
记录一个可以查询C++API的网站 C++ Language - C++ Tutorials (cplusplus.com)
一些常用的库
Boost Filesystem Tutorial (boost.org) Serialization (boost.org)
可移植,开源的C++库,它是由C++标准委员会库工作自成员发起,它是对STL的延续和扩充,设计理念和STL比较接近,都是利用泛型让复用达到最大化,其中有些内容经常成为下一代C++标准库内容,在C++社区影响很大,是不折不扣的“准”标准库。相比 STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。
GLM 开源的数学库
三、Cmake
百度上的解释:CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
通过这个可以创建跨平台的项目。
官方的教程 CMake Tutorial — CMake 3.20.2 Documentation
四、Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
可以安装tortoiseGit工具,这是个界面工具,也可以GitBash,通过输入指令的方式来控制版本,GitBash用习惯了后,在linux上操作起来就会很熟练。
五、OpenGL
很适合新手学习的图形类API
中文的学习网站 LearnOpenGL CN (learnopengl-cn.github.io)
英文的学习网站 Learn OpenGL, extensive tutorial resource for learning Modern OpenGL
网站中的源码可以在git上下载 https://github.com/JoeyDeVries/LearnOpenGL 这个项目好像可以省去了环境配置的环节。
学习这个之前,最好先理解了渲染管线的流程。
分享两个阅读文件 (0积分下载)
Real-Time-Rendering-3rd提炼总结 https://download.youkuaiyun.com/download/zouzouol/18443168
细说-图形学渲染管线 https://download.youkuaiyun.com/download/zouzouol/18443199
六、GLSL
全称OpenGL Shading Language,是在GPU上的执行的程序,很多光照效果都需要用Shader来实现
官方的教程 The OpenGL Shading Language (khronos.org)
中文可以参考 https://github.com/wshxbqq/GLSL-Card https://blog.youkuaiyun.com/jeffasd/article/details/77989274
六、Vulkan教程
新一代的图形API
官方教程 Introduction - Vulkan Tutorial (vulkan-tutorial.com)
技术规范 Vulkan® 1.0.41 - A Specification(Vulkan 技术规范)
推荐一位博友,讲Vulkan的文章很多 https://blog.youkuaiyun.com/qq_35312463/article/details/103813010
github上的vulkan示例,很好的学习教程 https://github.com/SaschaWillems/Vulkan
七、linux
这个主要是通过视频学习的
八、设计模式
设计模式还是挺重要的
设计模式目录:22种设计模式 (refactoringguru.cn)