超级任天堂:精灵和背景渲染

主要观点:介绍 SNES 中精灵和背景的渲染方式,包括硬件相关内容、各种模式下的渲染过程及不同机器的精灵渲染技术对比。
关键信息

  • SNES 无帧缓冲区,逐行渲染,视频点时钟为 5369317Hz,每 186.2ns 需生成一个像素颜色。
  • 不同模式下背景层的位深度(bpp)和最大精灵数不同,如 Mode 0 为 4 层 2bpp,Mode 7 为 1 层 8bpp 等。
  • PPU 利用内部内存分摊 VRAM 读取成本,以实现不同模式下的像素生成。
  • SNES 最多支持 128 个精灵,其属性存于 OAM,颜色从 VRAM 获取,PPU1 利用 HBLANK 时间获取精灵数据并缓存。
  • 不同机器的精灵渲染技术各异,如 Amstrad CPC 软件渲染、Amiga 可复用精灵单元等。
    重要细节
  • SNES 中背景瓷砖布局为平面式以利于 2bpp 层读取,Mode 7 的 VRAM 设置不同。
  • PPU1 构建的精灵线缓冲区由 8 像素组(4 字节即 2 次 VRAM 访问)组成,最多容纳 34 个精灵或 272 个精灵像素。
  • 如 Neo-Geo 的双行缓冲区可在整行时间获取精灵,双精灵帧缓冲区能支持 256 个精灵且无每行限制。
  • 文中还提及相关参考资料,如 snes.nesdev.org 上的内容及“Retro Game Mechanics Explained”的 Youtube 系列。
阅读 72
0 条评论