|
原创作者:等风来
$ L; ~! ^9 f/ _. J5 `2 ^7 }, p发布日期:2017-02-07
9 |: x; l1 E% T; Y$ _8 ]/ W$ t2 W
Isometric Graphics, 游戏绘图中的常用术语,D2就是一种等轴游戏(Isometric Game),实际上,Isometric Game 中的 isometric,指的正是机械制图中,以等轴测投影法绘制的三维物体平面图的一种测量方法,Isometric Game 都是(或基于)轴测图。轴测图就是用轴测投影的方法画出来的有立体感的图。轴测投影(axonometric projection)相对于正投影(orthographic projection)稍微复杂一点,即投影时,物体要围绕它在3D空间中的一个或多个坐标轴,相对于投影平面旋转一定的角度。所谓“轴测”,意思就是“沿着轴来测量”,凡是与坐标轴平行的线段,都可以沿轴向进行作图和测量。8 q9 r7 z, M* y9 Q
如下图所示为一个典型的二维坐标例子,左边是2D游戏的画面效果,而右边则是3D游戏画面效果。
! f+ c8 O3 V5 [# q% y, `
3 A: l! I. L; i# I9 ~
+ a: Z2 N2 }: p7 E轴测投影可以分为以下三种基本的情况:9 Z; P s& p( t
[] 等轴测投影(isometric projection)
6 r3 M4 c2 r* l! k[] 正二测投影(两等角投影,dimetirc projection)
- _: M" A; C* w4 K[] 正三测投影(trimetric projection)6 K! H- z- r! C3 \& ~. ?6 f
注:轴测投影下形成的物体影像,就好像从某个斜角观察物体一样,能让人在一个画面(投影平面)中看到物体的不止一个侧面。在轴测投影中,绘制出来的物体的轴或平面与投影平面并不是平行关系。简单说明一下我们需要了解的等轴测投影概念:即按照透视法缩短的三个坐标轴的缩放系数是相等的,而且任意两个坐标轴之间的角度都是120°。! T! d; y$ c# F+ O1 L: S, e1 Z
$ y" ^" r( E! O# @
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。
: k0 |0 N- r- w# `# x0 U5 I如下图所示,左边为真正的等轴测投影旋转角度,而右边是游戏中的画面效果。$ [! ?( X: B$ l% @% K, ~! e' ]
' P* t& y+ c' P* O* g f! M+ y
' M- `& n* P% _9 T o0 ~% dPS:35.264°=arctan(sin(45°))3 f& O8 `( e+ j8 [
" w- j& N. L5 l0 `/ O: ?【游戏地图和“码”的关系】
+ T3 z0 R. s5 f4 t
/ n- ^1 T7 B; N+ W游戏中构成地图的最小菱形单元是Tile Unit(又名Sub Title),其对角线长度分别为水平32像素Pixels和竖直16像素Pixels,Yard和TU的换算关系为:1 Yard = 1.5 TU。, ?2 B) R. { n0 x7 Q1 |
* G" O- F% v3 h0 ~+ W& b. y$ t3 @, {# x/ {( L
【视野距离和“码”的关系】 ' k$ ^: k* h# x0 a, u7 h4 v6 ] o
% f2 X- h f7 r/ B) W游戏的屏幕分辨率一般是640*480或者800*600,但是窗口下面的控制面板占用48像素Pixels,所以我们实际上的屏幕像素应该是640*432或者800*552,而通常我们用的都是800*600分辨率。
# `9 m# e5 @1 ]
. t, _( u" M. l7 A, r+ @: x$ u+ V8 x' \
PS:最后补充一个3D效果的视野距离图片。
4 P% ?( q2 k: D% C# Z5 a; f3 N# y
+ }5 U2 V0 X% N2 r0 r( K) N) I
|
|