Graphics

Graphics

求职

Learning Loadmap

  • c++基础

  • 图形学基础

  • 图形学API,先学opengl

  • 现代图形API,vulkan或者metal,推荐vulkan tutorial

  • 工程能力,没事多做算法题(不用太难),学习各种开源项目

  • 对现代API进行适度封装(先参考别人的做法),学习渲染技术(比如games 202)并自己实现

  • 推荐RTR4,不要太早看

  • 至少一款dcc软件,max,maya,blender或者别的什么。

  • 基础的图形常识:各种贴图是干啥的,怎么制作出来的,怎么修改。uv是啥,怎么利用uv。

  • 基础的图形编程能力:至少能看懂hlsl或者cg吧。虽然unity现在也有graph节点了,但很多文献还是cg或者hlsl甚至glsl写的。

  • 对渲染管线有基本的了解:至少知道一帧图像的渲染过程。即使是用shader graph或者材质蓝图,也需要知道这些基础知识。不然连顶点着色器和像素着色器都分不清……

  • 上边说的是最最最最最最基础的内容,只会这些肯定无法成为一名技术美术。根据个人方向需要深入学习包括但不限于:编程语言(c++, c#, python或者其他什么东西),各种光照模型,各种物理模拟算法,各种特效制作方法,各种dcc插件编写,各种引擎插件编写,各种材质效果做法,高数线代……所以可以先把基础的学了,再看对哪一块感兴趣再深入学习。

Rendering

RTR + GPU GAMES 1 ~ 3 + GPU Pro 1 ~ 7

工具

DirectX

Unity

一些图形学的库

  • OpenGL:老牌API,基于状态机。简单易学但是已经不更新了。之后或许会被淘汰。
  • WebGL:OpenGL的一个子集的Javascript API。
  • DirectX:微软的图形学API,只能用于Windows,DX11与12有较大不同,后者更接近底层。
  • WebGPU:一个很贴近GPU底层的API规范(但是注意不是直接面向底层)。当初设计的时候是想取代WebGL的。照理说是比OpenGL高级的。但是实际上比OpenGL难写多了。注意,虽然它名字带个Web,实际上它也支持原生,有C的API和原生的Rust API。当然支持最好的应该是Javascript的。比Vulkan稍稍简单,和Metal差不多。
  • Wgpu:WebGPU的Rust实现。
  • Dawn:WebGPU的C++实现。
  • Vulkan:一个很接近底层的图形学API,全平台通用(不包含Web)。原生是C API,也有C++和Rust的绑定。难学难用。但是或许是未来的趋势。
  • Metal:苹果的图形学API,不了解不评价。据说比较易学,但也不跨平台。
  • SDL:是个高级库,有例如drawrect这样的函数,但是因为它是模块化的,它的窗口管理模块常常被拆开拿来用。
  • GLFW:一个窗口管理库,比SDL更轻量。不能绘图。只是帮你封装了一下系统api而已。原先是为OpenGL设计的,但本身和OpenGL关系不大。也可以给Vulkan之类的用。
  • GLM:数学库,旨在C++里一比一还原GLSL的语法。我认为不太好用。