计算机图形学,GPU,Opengl/DirecetX,unity,Shaderlab 关系

1. 计算机图形学

是什么:一门研究“怎么让计算机把3D世界画得又逼真又好看”的学问。比如怎么模拟光照、阴影、反射,甚至爆炸特效。
举例:就像学画画的人要懂透视、光影,计算机图形学就是教计算机怎么“画画”的规则。
核心任务:把数学描述的3D场景(比如一堆球和方块的位置、颜色)变成一张2D图片,还能让画面看起来真实。

2. GPU

是什么:电脑里的“画图高手”,专门负责快速处理图形计算的硬件。
作用

  • 根据顶点数据(比如立方体的8个角坐标)生成3D模型。
  • 计算每个像素的颜色(比如光照、阴影)。
  • 把最终画面丢到显存里,让显示器能显示出来。
    关键点
  • 显存是GPU的“工作台”,存放渲染前后的数据(顶点、贴图、像素颜色) 

    1

  • GPU和CPU分工:CPU负责指挥(比如告诉GPU“画个球”),GPU负责埋头苦干(快速画球) 

    4

3. OpenGL/DirectX

是什么:两套“画图工具包”,用来告诉GPU怎么干活。
区别

  • 本质:它们都是“翻译官”,把程序员写的代码(比如“画个带光照的球”)转成GPU能听懂的命令 

4. Unity

是什么:一个“游戏制作神器”,普通人也能用它快速做3D游戏或动画。
作用

  • 打包了图形学、物理引擎、音效等功能,不用从头造轮子。
  • 开发者只需拖拽模型、调参数,不用直接写OpenGL/DirectX代码 

    关键点
  • Unity底层其实调用了OpenGL或DirectX(根据平台自动选)。
  • 开发者通过材质(Material)和Shader控制画面效果 

5. ShaderLab

是什么:Unity专用的“调色说明书”,用来写Shader(控制物体颜色、光照的小程序)。
作用

  • 告诉GPU怎么给模型上色(比如金属反光、皮肤通透感)。
  • 封装了OpenGL的GLSL、DirectX的HLSL等语言,写一次就能跨平台用 

    举例
  • 表面着色器(Surface Shader):傻瓜式调光照,适合新手。
  • 顶点/片元着色器:更底层,能实现复杂特效(比如卡通描边) 

它们的关系

用一条“生产流水线”比喻:

  1. 计算机图形学:制定“怎么画才好看”的规则(比如光线追踪算法)。
  2. GPU:流水线上的“画图工人”,按规则拼命画。
  3. OpenGL/DirectX:工人用的“画笔和颜料”(工具包),不同平台用不同牌子。
  4. Unity:整个“工厂”,提供现成的流水线(物理、动画、渲染),让老板(开发者)轻松管理。
  5. ShaderLab:工厂里的“调色指南”,告诉工人具体怎么涂颜色、加特效。

总结

  • 图形学是理论,GPU是硬件,OpenGL/DirectX是底层工具,Unity是上层工具,ShaderLab是Unity的一部分。
  • 普通人用Unity+ShaderLab就能做游戏,高手可能直接用OpenGL/DirectX调教GPU