|
|
原创作者:等风来
# Q) p# X# Z, u& }3 G* N O& I发布日期:2017-02-07
% J, E, g2 q `7 |3 w; X: F C4 h# g# v. R. V6 X5 C
Isometric Graphics, 游戏绘图中的常用术语,D2就是一种等轴游戏(Isometric Game),实际上,Isometric Game 中的 isometric,指的正是机械制图中,以等轴测投影法绘制的三维物体平面图的一种测量方法,Isometric Game 都是(或基于)轴测图。轴测图就是用轴测投影的方法画出来的有立体感的图。轴测投影(axonometric projection)相对于正投影(orthographic projection)稍微复杂一点,即投影时,物体要围绕它在3D空间中的一个或多个坐标轴,相对于投影平面旋转一定的角度。所谓“轴测”,意思就是“沿着轴来测量”,凡是与坐标轴平行的线段,都可以沿轴向进行作图和测量。
- B+ K; G$ O# `3 u; d# G如下图所示为一个典型的二维坐标例子,左边是2D游戏的画面效果,而右边则是3D游戏画面效果。& e$ `; ]* V- q+ s! P
6 N* v) d' q6 T6 X1 w0 J' E& L
' D; w! Q) m, f$ R3 s% E( v轴测投影可以分为以下三种基本的情况:# r0 M( { u/ Q5 G/ z
[] 等轴测投影(isometric projection)' i0 K4 p5 `; w& h5 G* F/ _
[] 正二测投影(两等角投影,dimetirc projection)6 ?/ `3 y5 _+ o+ v
[] 正三测投影(trimetric projection)# O$ a6 W) U! s, b. _: E# o6 }
注:轴测投影下形成的物体影像,就好像从某个斜角观察物体一样,能让人在一个画面(投影平面)中看到物体的不止一个侧面。在轴测投影中,绘制出来的物体的轴或平面与投影平面并不是平行关系。简单说明一下我们需要了解的等轴测投影概念:即按照透视法缩短的三个坐标轴的缩放系数是相等的,而且任意两个坐标轴之间的角度都是120°。
: P9 F. x: J( k! e7 `* A; ]* l4 s" K* P" s1 u% m- ^% b
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。1 m* E. ] h, y9 t4 \
如下图所示,左边为真正的等轴测投影旋转角度,而右边是游戏中的画面效果。. E. e6 Q3 N% N7 `, M
- E: j8 c; ?( o: q3 l8 y5 K+ b6 `' Q8 u% v
PS:35.264°=arctan(sin(45°)): T4 _/ ^3 W% e1 b
1 Q& \7 N" a4 E# v6 W2 s- N【游戏地图和“码”的关系】% Z0 h5 f& O4 E7 d, e
N' J2 ?- m) x
游戏中构成地图的最小菱形单元是Tile Unit(又名Sub Title),其对角线长度分别为水平32像素Pixels和竖直16像素Pixels,Yard和TU的换算关系为:1 Yard = 1.5 TU。3 G l# G4 @$ Z( V
, X9 m8 i6 G5 |3 c. X) C( ?0 Z& k; t2 Q2 T& ^
【视野距离和“码”的关系】 7 L, _* Y5 g" V5 K$ C+ p, J" |1 z
- l* s k: V- p+ b3 Y1 J' L) h
游戏的屏幕分辨率一般是640*480或者800*600,但是窗口下面的控制面板占用48像素Pixels,所以我们实际上的屏幕像素应该是640*432或者800*552,而通常我们用的都是800*600分辨率。
q d, s! |" {, @1 Z; i
6 D, r( t. N, l* |* H- C! \
) \, V: W/ }: z. Q yPS:最后补充一个3D效果的视野距离图片。
6 \3 I5 g% G1 I
/ |7 I4 a5 d* e2 c1 v
|
|