生产游戏系统将什么打包到 WebGL 的属性字段中?

What do production game systems pack into the attribute fields in WebGL?

顶点缓冲区中除了位置之外,好像还可以传入很多东西,比如颜色。复杂环境中生产游戏系统使用的所有属性的列表是什么?什么是好的例子?想到的一些事情:

有没有共同点?

除了位置、纹理坐标和法线之外,没有一组通用的东西。也许还有顶点颜色、双法线和切线。否则一切都是游戏特定的。

大多数游戏不使用物理着色器,因此速度、扭矩、质量、密度、温度、能量、发射、吸收不是着色器的常见输入。

虽然 per-vertex 属性非常特定于游戏,但我还是根据类别列出了一些。

  1. 几何数据

    • 职位
    • 法线
    • 纹理坐标(多个,基于纹理数量)
    • Tangent、Bitagent(用于法线贴图计算)
    • 关节权重(关节id,权重)
    • Joint transform matrix(关节的变换矩阵)
    • 详细程度(曲面细分)
  2. Material数据

    • 顶点颜色
    • 反射值
    • 折射值
    • 各种灯光信息(自发光、环境光和其他方法)
  3. 物理数据

    • 质量/密度
    • 速度
  4. 粒子数据

    • 指数
    • 年龄
    • 终生
    • 尺码
    • 速度
    • angular 速度

请随时更新此 space。