« 3DS 的架构 (index)

3DS 的架构

Chapter 4: 显示


目录

  1. 原理
  2. 特殊屏幕
    1. 小型更新
  3. 特殊游戏

唯一一家让我持续修改分析文章的标准结构的公司就是任天堂。 这次,我需要从立体屏幕(即 "裸眼3D")开始,然后再深入探讨其他内容。

首先 Nintendo 3DS 作为 Nintendo DS 的继任者,包含了两块 LCD 屏幕。 上屏分辨率为800 x 240像素,并且可以以某种方式显示深度图像。 当我第一次阅读这篇文章时,脑海中浮现的都是问题:

好吧,这里是答案!

原理

不管怎么说,它的基本原理与我在两年前曾分析过的Virtual Boy并没有太大的不同。 回忆一下,Virtual Boy 显示两个图像,每只眼睛一个,并将物体分别从中心偏移。 通过同时查看两张图片,可以感觉到一些物体在另一些物体的后面(深度感)。 这就是立体视差的基础。

Image
左显示器。

Image
右显示器。

演示 Virtual Boy 如何显示立体图像。
马里奥网球(1995)。

Virtual Boy 执行这一操作的方式有些笨拙:它要求用户将头部靠近目镜,然后调整焦距和瞳距。 15年后,任天堂明智地对所有这些麻烦说"不",并设计了一个新的系统,让用户可以享受3D场景,而无需_过量_干预。

Image
上屏,左眼。

Image
上屏,右眼。

任天堂3DS在其上部屏幕上同时显示的两个画面的示例。 看起来鱼要撞到你了。 同样的原理在15年后适用。
《超级马里奥3D大陆》(2011)。

这将引出我们的下一个问题。

特殊屏幕

再看看上部液晶屏的分辨率。 从理论上讲,它显示的宽度是800 x 240 像素,导致一个荒谬的宽高比。

Image
再看 Nintendo 3DS ,更仔细地观察其屏幕。

实际上,物理屏幕由半宽像素组成,并以两种模式运行:

此外,为了实现立体视差,这块LCD包含了一个称为视差屏障 的额外层。 这些不透明的遮光板使得从LCD像素后面发出的背光发生偏移,从而令每只眼睛接收到不同部分的像素的光。 这些半宽像素也会看起来更宽,令人感觉其具有传统的长宽比。

总之,这项技术重现了Virtual Boy原来的效果,而不需要用户操作调整。

不过,这项技术并不完美,存在一些缺陷:

Image
我试图捕捉原版3DS的倾斜效应。 把3D景深滑杆(在屏幕右侧)调到最高,从一侧看屏幕,可以看到上屏产生了鬼影效果。 这在真正使用中看起来相当费眼!

为了补救这种情况,任天堂添加了一个滑杆(叫做3D景深滑杆)用于调整物体之间的深度。 这种调整可以增加或减小两帧之间的差异。 对于觉得这种深度效果并不令人愉快或感觉太疲劳的用户,这么做可以减小这种效果。

将3D滑杆调到最大一开始可能会让人感到不适。 根据我的经验,我的眼睛最终会聚焦,此时我感觉顶部的LCD屏幕就像透过窗户看东西一样。 主要问题是,用户需要不断地移动眼睛才能看到下方的屏幕,这种重复的动作可能会非常费力。

顺便提一句,人们不禁觉得,在渲染立体帧时,图形管线经历了一个完整的循环,这很有趣。 在渲染过程中,3D数据被投射到2D空间中,而现在有了立体屏幕,第三维度又被"恢复"了。 到了这个时候,我们不如直接使用全息图,完全跳过3D投影阶段吧!

小型更新

Image
New 3DS XL 的顶部 中央有一个前置摄像头和一个红外LED,两者都用于头部追踪。

随着"New 3DS"型号的出现,任天堂改进了其立体屏幕,以期达到更好的愉悦体验。 在新型号中,主机集成了面部追踪机制来解决倾斜效应,因此用户不再需要担心保持良好的"头机姿势"了。

特殊游戏

现在,为了让这个系统正常工作,游戏也必须"配合"(双关语)。 就像它们传统上与GPU交互以在显示器上绘制帧一样,它们现在必须广播两个场景帧,但物体会略微偏移。

为了方便开发者,有官方API可以协助完成这项工作,特别是对于那些具有3D场景的游戏。 这些API通过提供构建两个投影矩阵的例程来提供帮助,图形管线随后使用它们来渲染这两个略微偏移的帧。


Previous: 3. 型号和变种

Next: 5. 中央处理器 (CPU)


Rodrigo Copetti © 2026 RSS Feed

切换至现代版

主页 · 文章 · 支持 · 关于作者 · 关于此网站