» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[专题讨论] MD主机实现图像旋转缩放的方式

引用:
原帖由 md2 于 2016-2-23 22:31 发表


没有说的那么简单,卡带机的图像处理是基于扫描线的,并不会读入整个图片到内存里,因此必须配合显示芯片的原理做算法才可以。
会把整个Tile图读入VRAM的,基于扫描线是指VDP的显示输出为行缓冲型,但图都还是在VRAM中的。你开个带调试的模拟器多看看。

不能旋转指的是不能硬件旋转,硬件旋转的意思是,这张图在VRAM中还是原始的方向,但是VDP输出到行缓冲时的画面是旋转后的对应画面。

虽然不能通过图形硬件旋转,但这不代表不能通过软件方式每贞改变VRAM中的像素对应的数据,来实现软件旋转。也就是说,让图在VRAM中就每贞变化,而VDP只将其作为一般的Tile图以正常方向显示到输出画面。

典型例子是Red Zone,实现软件全屏和软件Sprite旋转。

一般游戏不这样做的原因是性能优化较为困难,而且不利于代码在不同主机间的移植,总而言之,时间代价大于游戏可以获得的收益,不经济。所以一般是用扫描线作行偏移描画,然后配合列偏移描画来实现你给的链接中的skew操作,这个就属于利用有限的图形硬件特性来实现变通的旋转。但对MD和大多数2D图形加速的游戏机来说,行偏移描画可以精确到一根扫描线,也就是1像素的精度,但列偏移却不能做到这样的精度,所以你会看到魂斗罗第一关中途的巨人倾斜身体时,纵向是一条一条的。


本帖最近评分记录
  • bbsbot 激骚 +1 威武! 2016-2-29 08:28
  • bbsbot 激骚 +1 威武! 2016-2-29 08:28
  • bbsbot 激骚 +1 威武! 2016-2-29 08:26
  • ahliang 激骚 +5 威武! 2016-2-28 23:31
  • xpressure 激骚 +5 太骚了 2016-2-28 23:16

TOP

发新话题
     
官方公众号及微博