NDS没有配备完整的GPU来做图形运算,取而代之的是专用的两个2D引擎单元和一个3D引擎单元!和独立完整的GPU不同,2D引擎和3D引擎都是和NDS的主CPU(ARM946E-S)相连,可以看成是协处理单元(Co-processor),此外任天堂还设计了很多专用于图形运算的内存和缓冲,主要有:
656KB 显存(VRAM) (分为多个bank,作为BG/OBJ/2D/3D/调色板/纹理/WRAM等的缓存)
4KB OAM/PAL (2KB用于OBJ属性, 2KB用于调色板)
248KB 3D专用内存 (104KB用于多边形缓存, 144KB用于矢量缓存)
2D引擎(2D Engine)
NDS拥有两个2D引擎核心,分为一个主核心和一个副核心
主核心和副核心的不同在于:
1.主核心比副核心多两个工作模式,可以处理更大的位图
2.主核心可以为3D引擎运算一幅背景层
3.主核心拥有帧缓冲模式,可以绕过2D引擎直接将内存数据渲染到屏幕
2D硬件特效:
每个屏幕128个精灵(sprites)的缩放/回旋
4重背景卷轴的缩放/回旋
阿尔法混合
两个2D引擎架构都和GBA的2D引擎很类似!
3D引擎(3D Engine)
3D引擎包含一个几何引擎(Geometry Engine)和一个渲染引擎(Rendering Engine)
3D引擎只能在一个屏幕处理3D运算,如果两个屏幕同时处理,就会出现一个屏幕等待另一个屏幕,导致帧率减半,效率大降
多边形生成:12万/秒
像素填充率:3000万/秒
纹理最大支持1024x1024
3D硬件特效:烟雾,定点变换和光照,纹理坐标变换节点,纹理映射,阿尔法混合,Z缓冲,卡通渲染和边缘抗锯齿
NDS的3D操作接口非常类似于OpenGL,大部分机能都被包含在这个接口中!和OpenGL比较大的不同在于,NDS的特效都是通过定点数运算,而非浮点数!
BY:Crayon
评论