3D引擎是否需要在渲染之前分析所有地图对象
Does a 3D engine needs to analyse all the map objects before rendering
3D 引擎是否需要分析地图上的每个对象以查看它是否会被渲染。我的理解是 line 从 投影中心 到 中的 pixel ]查看计划,引擎会找到与其相交的最近计划,但这是否意味着引擎需要为每个像素分析所有对象地图,有没有办法限制分析的对象。
感谢您的帮助。
这样的程序叫做frustum-culling algorithm.
您还可以在此处找到更多相关信息:-
- https://en.wikipedia.org/wiki/Viewing_frustum(维基)
- http://www.lighthouse3d.com/tutorials/view-frustum-culling/
- http://www.cse.chalmers.se/~uffe/vfc.pdf(更好但难以阅读)
恕我直言,最后一个 link 与评论中提到的 Nico Schertler 相似。
请注意,您要查找的内容与“occlusion culling" (another related link "Most efficient algorithm for mesh-level, optimal occlusion culling? )”不同,后者是当一个对象完全隐藏在另一个对象后面时的另一种优化。
请注意,正如您可能理解的那样,大多数游戏引擎都是按对象(一组许多三角形 - 通过 draw calls, roughly speaking ), not by tracing each pixel (ray-tracing)渲染的。
光线追踪在大多数实时应用程序中成本太高。
3D 引擎是否需要分析地图上的每个对象以查看它是否会被渲染。我的理解是 line 从 投影中心 到 中的 pixel ]查看计划,引擎会找到与其相交的最近计划,但这是否意味着引擎需要为每个像素分析所有对象地图,有没有办法限制分析的对象。
感谢您的帮助。
这样的程序叫做frustum-culling algorithm.
您还可以在此处找到更多相关信息:-
- https://en.wikipedia.org/wiki/Viewing_frustum(维基)
- http://www.lighthouse3d.com/tutorials/view-frustum-culling/
- http://www.cse.chalmers.se/~uffe/vfc.pdf(更好但难以阅读)
恕我直言,最后一个 link 与评论中提到的 Nico Schertler 相似。
请注意,您要查找的内容与“occlusion culling" (another related link "Most efficient algorithm for mesh-level, optimal occlusion culling? )”不同,后者是当一个对象完全隐藏在另一个对象后面时的另一种优化。
请注意,正如您可能理解的那样,大多数游戏引擎都是按对象(一组许多三角形 - 通过 draw calls, roughly speaking ), not by tracing each pixel (ray-tracing)渲染的。
光线追踪在大多数实时应用程序中成本太高。