这是关于创建迷幻视觉效果(尤其针对动画和游戏)系列的介绍。无需图形或编程知识基础,有三角学和编程经验会有帮助。文章将构建迷幻图形基础,以网页形式传达技巧,即使不懂编程也能学习。
什么是 UV?
- 3D 模型:计算机图形虽常呈 3D 态,但写图形代码时需以 2D 思考。3D 建模后实际是空间中的点和连接成的面,看似光滑实则由众多点和面组成。视频游戏和动画中的 3D 形状大多如此,给 3D 表面上色的标准方式是 UV 映射/纹理。
- 绘制纹理:在纹理上绘制会显示在 3D 模型上,多数软件可直接在 3D 模型上绘制并为图像纹理上色。
- UV 坐标:可将 UV 视为 2D 坐标,(0, 0)到(1, 1)的空间用于定义纹理图像部分与 3D 模型面的对应关系,水平值表示左右位置,垂直值表示上下位置,常将 UV 的第一个值作为红色,第二个值作为绿色,蓝色设为 0。
图形代码如何工作?
- 图形中的颜色:计算机图形颜色常用 RGB 表示,范围从 0.0 到 1.0,如红色是(1.0, 0.0, 0.0),黑色是(0.0, 0.0, 0.0),白色是(1.0, 1.0, 1.0)。将 UV 坐标转为颜色可帮助可视化和调试,UV 坐标越靠近左上角越绿,右下角越红。
- 浮点数和向量 vec2 vec3:浮点数是单个小数,vec2 是一对小数,vec3 是三个小数,RGB 颜色是 vec3,UV 是 vec2。
- 图形程序的结构:创建 3D 形状时,通过指定 UV 坐标来决定每个点的颜色,图形代码不是一次性生成所有颜色,而是每秒数百万次为屏幕的每个小部分运行,需要以分散的方式“协调”。
最后可开始第一部分,在其中将看到如何在这些限制下创建有趣的视觉效果,也可在YouTube或Twitter上了解更多。
脚注:实际上两个维度叫 U 和 V,因为 X、Y、Z 已用于 3D 位置,这里用 X 和 Y 更易理解。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。