如何选择3D游戏世界的缩放比例?


9

我正在使用C ++进行一些物理模拟的3D坦克游戏原型。我需要做出的决定之一是游戏世界相对于现实的规模。例如,我可以考虑1个游戏中的测量单位对应于现实中的1米。这感觉很直观,但是我觉得我可能会缺少一些东西。

我可以将以下问题视为潜在问题:

  1. 3D建模程序兼容性。(?)
  2. 数值精度。(这很重要吗?)尤其是在大型比例游戏中,像《战地风云》这样的游戏如何拥有巨大的地图:如果使用真实世界比例的1:1映射,它们如何不失去数值精度,因为浮点表示会随着精度的提高而损失更多的精度。数字(例如射线投射,物理模拟)?
  3. 游戏性。我不希望在使用像-9.8 m/s^2重力这样的几乎真实的值时,单位的运动会感到缓慢或快速。(这可能是主观的。)
  4. 可以放大/缩小进口资产,还是最适合原始规模的世界?
  5. 渲染性能。具有相同顶点数的大型网格物体渲染速度是否较慢?

我想知道是否应该将其分为多个问题...

Answers:


3

通常,您应该执行任何工作。

  1. 由于您拥有现实生活中的对象,因此可以匹配它们的比例(3D建模应用程序通常具有测量单位设置,米,英尺等),但是一旦您离开储罐进入树木和其他风景对象后,它们可能会需要可以自定义缩放以适合您的游戏风格(因此,您可以对树进行建模,并可以在游戏编辑器中对其进行缩放以使其看起来不错,很多时候,您会重复使用同一棵树,但使用不同的比例来添加变化)。

  2. 请勿将相机移离世界原点,而应将相机绕着世界原点放置。这样,您可以避免在GPU /物理需要精确比较精度较差的值时出现的许多精度问题。如果将坦克和摄像机从原点移动10公里,则使用float32的精度将达到毫米的几分之一,这可能会导致类似于转换后的模型之间进行Z角战斗的效果。

  3. 您将需要调整全局常量以使您的游戏感觉良好。更改世界的相对比例,以跳过无聊的部分,将更多有趣的东西包装到一个4x4 km的小区域(城镇,河流,山脉等)中的方法,该区域在现实世界中彼此相距遥远。

  4. 如果它们看起来更好地缩放-缩放它们。如果它们合适,请保持该状态。游戏和电影更像是一门艺术,而不是盲目模仿现实。因此,您已经找到了一棵漂亮的树,它的树高仅为2m,当然您可以缩放它并通过其他方式(调整调色板,纹理细节等)来适应您的游戏。

  5. 我怀疑,只要它们在屏幕上显示相同数量的像素,就不会有任何区别。


8

来了

  1. 3D建模程序倾向于让您选择单位比例。可能仅限英制或公制,但这只是一个数字。数字可以轻松转换/缩放/调整。它并不真的不管你用什么单位制,只要您使用的一个。保持一致,因此1米不会变成1英尺。

    编辑:本书:游戏编码完成,第三次增补,第15章,第16页。525,“米,英尺,肘节或凯利照相机?”

  2. 具有大量顶点的游戏可以做几件事。例如,他们可以将其拆分为小块,然后引用该块的数据可以指定偏移量。与使用Octrees有点类似,Octrees是一种渲染优化,可避免渲染大量未可见的顶点。另外,双精度数可以存储1.79769e + 308,这是一个很大的但很详细的数字。一个浮点数可以存储3.40282e + 038,这也不算破旧。

    编辑:游戏编码完成,第三次增补,第13章,第16页。410,“坐标和坐标系”(表已添加到帖子底部)

  3. 然后,您可能想要使用公制或将其转换为自己的单位制。值得注意的是,您可能会稍微调整该值。当然,您调整后的值在物理上不会准确。但是,说起来也许更准确-9.3 m/s^2

  4. 可以采用任何一种方式来做。虽然我会说要扩大资产规模。如果要扩展世界,则必须仔细检查并更改重力,速度计算以及其他各种功能。将资产导入Unity3D时,通常必须在导入设置中调整模型比例,因此我假定Unity对其进行比例缩放。如果您想进一步了解这些内容。

  5. 不论大小,多边形/网格的大小几乎与多少多边形无关。我猜可能会略有变化,具体取决于模型占用的像素数,仅此而已。除此之外,数字10或100不会改变计算机端的任何内容。它仍然要处理的位数相同,只是不同的位数为0。

编辑:休假表假定一个32位IEEE浮点数。

Game Coding Complete, Third Addition, Table 13.2, pg. 411
Smallest unit         Smallest Representable object  Upper Range    Description of
                      (As a textured polygon)                       largest area

100m                  A group of redwood trees       1.67x10^9      Earth/Moon System
1m                    A Human Being                  1.67x10^7      North and South America
1cm                   A coin                         1.67x10^6      California
1mm                   A flea                         1.67x10^5      San Francisco Bay Area
100 micrometer        A grain of pollen              1.67x10^4      Downtown San Francisco

游戏编码完成中的所有这些信息以及更多信息。由Mike McShaffry撰写。从事游戏的行业专家,范围从《黑杰克》到《小偷:致命阴影》。


对这个答案不满意,因为它并没有真正增加原始问题,也没有给出任何具体的例子。关于点2,我并不是真正地询问可视性确定或几何页面调度,也不是关于最大浮点数。非常大的数字,但精度很差。
concept3d

那些编辑适合您的喜好吗?
Wolfgang Skyler

好吧,是的,尽管我特别询问了这个stackoverflow.com/questions/872544/precision-of-floating-point,特别是在物理模拟中,但是我认为这需要一个单独的问题。
concept3d 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.