设想你是一个四维人,你的眼睛看到的图像是三维的,因为除了上下左右前后,还多出了两个新方向。 由于可怜的三维生物(我们)只有二维视觉,所以只好把四维人眼中的三维视野图像做成半透明的给三维生物们观看,这就是4DViewer所做的。但三维视野图像感觉上就是看一团雾,我们可以选择一些截面去截这个视野。比如我们可以抽取过三维图像中心的x、y、z三个方向的截面,单独放到三个角落上一边观察。
使用鼠标左右键均可拖动改变观察角度,滚动鼠标滚轮将拉近/推远相机位置。你现在处于超立方体内部。试着推远相机,你将钻出来从外面看到整个立方体。 超立方体由8个全等的正方体胞(“胞”指三维面,下同)围成。为区分方便,每个正方体胞心上还画了不同颜色的球形图案。
在右侧的控制栏中选择形状栏下拉菜单中可选择正多胞体、柱体、锥体、旋转体、直积形等等大量四维图形。对于比较复杂的几何体(如超球)会有一点卡顿的现象,此时建议将显示模式改为仅显示胞,然后按键盘C显示边。
在见识了一些基本形状之后,我们来体会一下第一人称视角。
W S A D前后左右平移,新的四维方向(对应三维立方体视野图像的前后)使用Q E平移,它本质上是一种新的“侧面”方向,因为它不是重力方向(上下)也不是你面对的方向(前后),本文暂且叫它们侧前、侧后;按住空格键升高,松开后会在重力作用下掉回地面。鼠标上下左右移动或U O J L可以环视六周(注意四维有六“周”而不是四周),分别对应向侧前、侧后、左、右环视转向。最后鼠标滚轮或I K键控制抬头或俯视;按Z X可旋转三维视野图像,按C可以显示边(其实画的是每张截面的顶点),以便在模糊的透明图像中看清物体的轮廓。按H可隐藏右边的控制栏。一些例子:
包含斜坡、平台和一个隧道的简单场景。
(这是一个免费的四维截面游戏,这个例子照搬了里面的前11个关卡,致敬作者)
C开启线框模式)不看三个截面缩略图的情况下通关。基于随机种子的无限世界,使用鼠标左键破坏、右键放置!目前生物群系有被森林覆盖的平原、小丘陵、湿地和沙漠。
9 0实现。4DViewer中,三维视野其实是通过Webgl渲染很多二维的视野截面叠在一起的。展开右侧面板Renderer项可以看到渲染器的很多设置:
+ -实现。[ ]实现。; '实现。C实现切换,通过Ctrl+[与Ctrl+](或Alt+[与Alt+])调节线框粗细。, .在黑-灰-白的范围内调整。Alt+1 Alt+2 Alt+3 Alt+4 并点击鼠标右键可以存储4种希望透明处理的颜色,只按住Alt键点击将清除所有透明色设置。
如果渲染帧率过低,可调小节画面分辨率:Ctrl+,(或Alt+,)为降低,Ctrl+.(或Alt+.)为升高。以下为一些渲染设置的快捷键汇总:(Alt可替换为Ctrl)
|快捷键|命令|
|—–|—–|
|= |增加3D视野层叠数|
|- |减少3D视野层叠数|
|] |增加3D视野像素不透明度|
|[ |减少3D视野像素不透明度|
|; |减小截面视图尺寸|
|' |增加截面视图尺寸|
|, |背景变暗|
|. |背景变亮|
|9 |减小摄像机视角(FOV)|
|0 |提高摄像机视角(FOV)|
|C |线框模式|
|Alt+[ |线框模式|
|Alt+, |降低画面分辨率|
|Alt+. |提高画面分辨率|
|Alt+1 |默认画面配置|
|Alt+2 |3D视野优化配置(隐藏截面、增加层数降、低分辨率)|
|Alt+3 |截面优化配置(取消3D视野叠加、放大截面)|
|方向键 |调整3D视野显示视角|
关于四维行星、太阳系统请参考这篇文章。下面仅介绍展开面板中Sun下的参数设置: