如何像在虚幻引擎中那样在 3D 视口中绘制“无限”3D 网格

问题描述 投票:0回答:0

我正在尝试找出一种在 3D 视口中绘制 3D 网格的技术,就像在 Unreal Engine 中一样。自己绘制网格很简单,您决定网格的大小,然后绘制该大小的四边形并对其应用纹理(有或没有透明度),或者如果您只为线条绘制四边形不想使用纹理。

足够简单。

但是 UE 中的问题是网格是无限的(看起来是这样)。这就是我想了解的原因,但我想不出一个好方法,所以我想寻求帮助。

我知道代码是可用的,我看了看,但它是一个怪物)。我设法找到了

Engine/Source/Editor/UnrealEd/Private/EditorComponents.cpp
,其中
DrawNewGrid
似乎是一个很好的起点。除了调用一个名为
DrawPlane10x10
的函数外,我真的无法理解它的整体工作原理。

  • 如何使网格看起来像无限大?
  • 它是否使用纹理(似乎涉及材料,但我能找到方法)还是他们将单独的线条绘制为四边形?
  • 它会创建一个网格(比如 10x10)并复制它吗?

我明白显然不要将网格绘制/复制到无穷远。所以我假设它有一些机制,其中只绘制了通过平截头体可见的网格,但又找不到与此相关的代码。你会怎么做?所以总结一下我的问题:

  • 我想像在 UE 中一样绘制一个 3D 网格,通过平截头体,无论您远离原点多远,网格始终可见。
  • 你怎么画那个网格的?几何或四边形+纹理?
  • 你如何做到最终重复一个像(10x10)这样的小网格,这样看起来网格通过智能变得无穷大,例如仅渲染通过平截头体可见的内容(并随着相机移动而动态更新)。
  • 你如何处理别名(我猜随着线条变小,它们会产生别名)。

我已经用谷歌搜索了一段时间,但找不到好的资源。我想这是一种基于图块的技术,但也找不到太多关于此的信息。

3d gpu rendering game-engine game-development
© www.soinside.com 2019 - 2024. All rights reserved.