gpt4 book ai didi

plot - 渲染高度细化的 "zoomed out"数据

转载 作者:行者123 更新时间:2023-12-03 17:20:13 25 4
gpt4 key购买 nike

互联网上有一个 gif,其中有人使用某种 CAD 并在其中绘制了多张矢量图片。在第一帧中,他们放大了一个小点,以不同的比例显示了一个全新的不同矢量图,然后他们继续放大另一个小点,显示另一个详细的图片,重复几次。 here is the link to the gif
或者另一个类似的例子:假设你有一个时间序列,每个样本的粒度为一毫秒,然后你缩小以显示数年的数据。

我的问题是:当大量数据最终混叠成单个像素时,最终如何渲染如此精细的数据。
您是否必须遍历整个数据集才能渲染该像素(即在时间序列的情况下:遍历数百万条记录以将它们平均为 1 行,或者在 CAD 渲染整个矢量图并将其模糊成小点的情况下) ,或者可以应用某些细节级别的优化,这样您就不必这样做了?
如果是这样,它们是如何工作的,人们可以从哪里了解它?

最佳答案

这是游戏开发中一个众所周知的问题。在下文中,我假设您使用的是场景图,即基于节点的对象树。
典型的解决方案涉及这些技术的混合:

  • 细节级别(LOD):同一模型的多个分辨率,显示或隐藏,以便在任何时候只有一个“可见”。何时隐藏和显示通常取决于相机和对象之间的距离,但您也可以将对象的比例作为一个因素。现代 3d/CAD 软件有时会为您提供模型的自动“简化”,可用作低分辨率 LOD 模型。

  • 在最低级别,您甚至可以只使用对象的边界
    盒子。检查边界框是否在视野中只是大约 1-7 点检查,具体取决于您的检查方式。您可以将对象父级用于传递边界框。
  • 裁剪:如果一个多边形根本没有在视口(viewport)中渲染,则不需要渲染它。在您发布的 GIF 中,当相机放大一个新场景时,较大模型留下的只是背景中的单个多边形。
  • 世界坐标的重新缩放:当您放大时,顶点的坐标变为低于零的浮点数。鉴于您希望所有坐标尽可能精确,并且现代 CPU 只能处理 64 位精度的浮点数(并且通常仅使用 32 位以获得更好的性能),重置可见对象的缩放比例是一个好主意。我的意思是当你的相机放大到前一个 View 的 1/1000 时,你可以将更大的物体放大 1000 倍,同时调整相机的位置和焦距。任何新连接的小型模型都将使用其原始比例,从而保持其精度。
    这种过渡对查看者来说是不可见的,但允许您保持在定义明确的 3d 坐标内,同时能够无限放大。
    在更高的层次上:当你放大某些东西并且相机越来越靠近一个物体时,看起来世界相对于 View 变得更大了。虽然通常相机空间是移动的并且世界乘以相机的矩阵,但可以通过改变世界坐标而不是相机来实现相同的效果。
  • 关于plot - 渲染高度细化的 "zoomed out"数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62191669/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com