420 likes | 537 Views
游戏设计漫谈之运动类游戏. 耿卫东 陈为. 运动类游戏中的运动模拟. 概述 图形 / 建模 动画 未来的技术. 概述. 研究成果 足球 – (NFL Gameday) 棒球 – (MLB) 篮球 – (NBA Shootout) 曲棍球 – (NHL Faceoff) 以及 校园足球 – (NCAA Gamebreaker) 校园篮球 – (NCAA Final Four). 概述. 平台 – PS2 32 MB 主存 4 MB 显存 CD/DVD 存储量 ( 至多 4.7 GB)
E N D
游戏设计漫谈之运动类游戏 耿卫东 陈为
运动类游戏中的运动模拟 • 概述 • 图形/建模 • 动画 • 未来的技术
概述 • 研究成果 • 足球 – (NFL Gameday) • 棒球 – (MLB) • 篮球 – (NBA Shootout) • 曲棍球 – (NHL Faceoff) 以及 • 校园足球 – (NCAA Gamebreaker) • 校园篮球 – (NCAA Final Four)
概述 • 平台 – PS2 • 32 MB 主存 • 4 MB 显存 • CD/DVD 存储量 (至多 4.7 GB) • “Emotion Engine”— 300 MHz 128 bit RISC 处理器 • FPU 协处理器 • 向量单元协处理器 • 浮点运算性能达到 6.2 GFLOPS
概述 • 图形合成 • 绘制效率: 75 M 多边形 / 秒 • 实际吞吐量在 6 M 至9 M 多边形 / 秒. • 目标是60 Hz • 640 x 448 x 32 bit 显示 • NTSC 视频 • 渐近式扫描 – 480p
层次细节控制 • 通常有 3 到 4个 LOD 模型 • 最精细的模型层次约包含4000 – 6000个 多边形 • 最粗糙的模型层次约包含500 – 1000个 多边形
细节层次 • 4000 个多边形 1500个多边形 750个多边形
身体类型 • 主体模型依据某一特定类型运动的运动员的平均身体状况建立 • 对模型微小改变以代表运动员的身体差异 • 健美的运动员 • 大肚子的运动员
身体类型 • 正常型 肥胖型 苗条型
光照 • 使用最多4个光源 • 光源类型: • 环境光 • 方向光 • 光源位置: • 静态 • 动态 –视口 / 相机 相关
骨架 / 贴皮 • 层次骨架 –至多23根骨头 • 利用一种特殊的骨头(roll bones)来分布扭曲形态 • 模型的几何与骨架自然接合(soft bond) • 每个顶点至多与四根骨头相关
几何变形 • 用形状融合或形状过渡的方法制作动画效果 • 主要用在头和手上 • 用至多25个目标状态来表达不同的表情 • 用至多53个目标状态来定义头的形状
阴影 • 主要使用投影阴影 • 阴影模型使用低分辩率 • 200 至 300 个多边形 • 利用多通道绘制及等距抖动技术实现软影效果 • 最后将阴影纹理绘制到场景中
反射 • 对于场景中特定的表面使用反射 • 篮球场 • 曲棍球的冰 • 被反射的运动员等物体需绘制两次 • 第一个pass绘制表面以上部分 • 第二个pass绘制表面以下的部分(将模型沿Y轴翻转) • 通过alpha混合绘制实现表面的反射效果
反射 • 绘制运动员等物体及其沿反射表面的反射到场景中 • 在开启alpha混合的状态下绘制场地表面
骨架缩放 • 骨架缩放是用来表现运动员的身高与体重的最好方法 • 全局缩放 • 缩放操作仅对根节点使用 • 对一致缩放表现良好 • 对非一致缩放表现很差 • 效率高 • 局部缩放 • 缩放操作对每一块骨头分别使用 • 对一致缩放或非一致缩放都表现良好 • 由于要与额外的变换矩阵相乘,效率较低
一致缩放 普通模型 全局 & 局部 缩放
非一致缩放 全局缩放 局部缩放
可变形几何 • 运动员模型由各种“组件”拼接而成 • 每一个组件是一个可控的多边形集合 • 各个组件的大小不一,小的如手腕、大的如接球手的护胸都可以作为一个组件
着色系统 • 基于硬件的着色器 • Flat shading • Gouraud shading • 基于软件的着色器 • 高光 • 闪亮的头盔 • 皮肤上的汗 • 环境映照 • 有光泽的头盔 • 篮板 • 窗户
纹理管理 • 队纹理 • 每一队至多有4组纹理 • 主场、客场、预备主场、预备客场 • 贴花纹理 • 运动员名字 (alpha字母集) • 运动员编号 (数字字体集) • 纹身 • 种族管理 • 用至少5种皮肤色调来模拟所有情况 • 各人的面部纹理 • Mipmaps • 至少4级 (尺寸相关) • 纹理的尺寸是2的幂次
数字扫描技术 • Inspeck 三维扫描技术 • 高分辨率扫描 • 头部扫描出70K + 多边形 • 鞋、手套、 … • 全身扫描
场景管理 • 平均10K – 15K 个多边形 • 分层次绘制 • 首先绘制地面 • 绘制后面的层次时将深度缓存关闭 • Alpha排序 • 需绘制的最后一层 • 由后到前排序(画家算法) • 剔除技术 • 二叉树(BSP)排序 • 基于区域
光照预计算 • 对场景进行静态的光照预计算 • 依据一天中不同时段以及不同环境对场景进行调整 • 白天、傍晚、晚上、雨天 ... • 面阴影存储到顶点颜色中 • 将尖锐的边阴影保存在纹理中
人群动画 • 动画纹理 • 高质量图像 • 内存消耗量大 • 关键帧数量少 • 离线绘制低分辨率的三维模型 • 较高的图像质量 • 低内存消耗 • 大量的关键帧 • 层次动画
物体动画 • 有关节的物体 • 篮板 • 动画纹理 • 广告牌 • 旗 • 流水
粒子系统 • 泥土 • 乌云 • 烟花 • 脚印
生产线 • 逻辑流程图 • 建立初始姿势集 • 运动捕捉脚本 • 运动捕捉 • 数据转换 • 后处理
插值 • 球面线性 • 样条 (Hermite, Catmull-Rom, Bezier…) • 多级混合 (二叉树)与连续混合 • 淡入淡出
多级混合 外部高 内部高 外部低 内部低
平移模式 • 绝对偏移 • 动画中每一关键帧都是第一个关键帧的绝对偏移 • 绝对循环 • 与“绝对”相同但用于固定的循环动画 • 相对偏移 • 动画中每一关键帧都是前一个关键帧的相对偏移 • 相对循环 • 与“相对偏移”相同但适用于循环动画
未来的场景绘制技术 • 像素着色器 • 顶点着色器 • 自身阴影 • 体阴影 • 改进的光照模型 • 全局光照 • 动态皮肤变形 • 更高分辨率的模型及场景