|
原创作者:等风来+ w, N0 e& v" \; E' d" ]
发布日期:2017-02-07 2 i j4 f7 h! R0 U* O3 V, \0 j( V& W% A
W$ m, S9 E6 l1 R1 k+ p8 H! ^
Isometric Graphics, 游戏绘图中的常用术语,D2就是一种等轴游戏(Isometric Game),实际上,Isometric Game 中的 isometric,指的正是机械制图中,以等轴测投影法绘制的三维物体平面图的一种测量方法,Isometric Game 都是(或基于)轴测图。轴测图就是用轴测投影的方法画出来的有立体感的图。轴测投影(axonometric projection)相对于正投影(orthographic projection)稍微复杂一点,即投影时,物体要围绕它在3D空间中的一个或多个坐标轴,相对于投影平面旋转一定的角度。所谓“轴测”,意思就是“沿着轴来测量”,凡是与坐标轴平行的线段,都可以沿轴向进行作图和测量。
& r: b {. C" s& ] t. b9 ^如下图所示为一个典型的二维坐标例子,左边是2D游戏的画面效果,而右边则是3D游戏画面效果。6 H$ M8 @, C+ y4 M' j8 ~: R3 p& |
' O5 z: s2 }5 h7 ~- w
u( ^+ e1 u$ [# k6 @轴测投影可以分为以下三种基本的情况:, t5 Q) Z2 ~3 M7 ?( F) `2 D$ \
[] 等轴测投影(isometric projection)
7 |, ]2 u- @# v( |, y[] 正二测投影(两等角投影,dimetirc projection)
- ~+ w4 |& j, S' b/ e3 s0 }& J[] 正三测投影(trimetric projection)1 Z1 I8 G* ~+ Z6 F. L- S
注:轴测投影下形成的物体影像,就好像从某个斜角观察物体一样,能让人在一个画面(投影平面)中看到物体的不止一个侧面。在轴测投影中,绘制出来的物体的轴或平面与投影平面并不是平行关系。简单说明一下我们需要了解的等轴测投影概念:即按照透视法缩短的三个坐标轴的缩放系数是相等的,而且任意两个坐标轴之间的角度都是120°。$ g9 H- `0 f6 Y$ {
! D m8 y: X! D j
Isometric Game,就是基于等轴测投影原理,把所有游戏界面元素沿坐标轴旋转一定角度制作并绘制到平面(屏幕)上,让玩家能够看到物体的多个侧面,从而产成3D效果的一种游戏。业内人士常常也把这种游戏称为“斜45度视角(或3/4视角)”、“2.5D”或“伪3D”游戏。游戏中的画面都是由众多“菱形”的等轴测视图构成的,也就是说游戏的地图是经由若干地图切片(tile)无缝地拼接而成的,只不过游戏画面的切片都被处理成了菱形,而不是正方形。但是Isometric Game 其实并不是真正的等轴测投影(isometric projection),而是正二测投影(dimetirc projection)。简单地说,如果是等轴测投影【三个轴两两之间的夹角都为120°】的话,那么就要按照30°角来绘制菱形,可这样会导致像素线条出现缺口,而绘制角度为26.5650°的直线恰好没有瑕疵,但此时三个轴之间的角度分别为:116.565°、116.565°、126.87°,这就是正二测投影(两等角投影)了,或许大家先入为主地认为正二测投影可以看成等轴投影的一个变体,或许是因为等轴测投影的应用最为广泛,所以游戏业内仍然将在2:1的菱形切片基础上构建的游戏称为 Isomentric Game。
& n: @! v; x! a2 h7 {如下图所示,左边为真正的等轴测投影旋转角度,而右边是游戏中的画面效果。
2 ?* m2 Z: f# z: Y) C" N( b6 G
8 o9 z5 q1 R* m& L4 c [' p0 h' }
, t% P$ u; m$ N4 v$ g
PS:35.264°=arctan(sin(45°))' c: K* [3 S: F) V: M& U v; r( q
0 b! w/ y5 r6 H1 |3 j+ ^* T【游戏地图和“码”的关系】
: N. z$ T q# | V! s& [
/ J: _9 T4 G/ g! a' X, F游戏中构成地图的最小菱形单元是Tile Unit(又名Sub Title),其对角线长度分别为水平32像素Pixels和竖直16像素Pixels,Yard和TU的换算关系为:1 Yard = 1.5 TU。
: a6 l- l: v3 h' t2 f* n
) Z$ @4 L9 b1 Q3 M) z$ f
$ s' P' ^( m3 \: N7 Q
【视野距离和“码”的关系】 1 y! M% f& R- `$ Y/ I; ^8 Y
2 o2 c. G- F& R w% w( t游戏的屏幕分辨率一般是640*480或者800*600,但是窗口下面的控制面板占用48像素Pixels,所以我们实际上的屏幕像素应该是640*432或者800*552,而通常我们用的都是800*600分辨率。
! w' Z* }- U. I- }- v
) Z4 B/ X1 ]; u2 t
2 T& o h6 I. r" b( R+ ~PS:最后补充一个3D效果的视野距离图片。) Z/ `0 z5 {4 ], A0 q! ^# k
5 T' X- m, [5 |2 L |
|