我有一个过程随着时间的推移积累大部分静态数据——其中很多,数百万个数据元素。数据的一小部分可能偶尔会发生变化,但大多数情况下不会发生变化。
但是,我希望允许用户自由更改查看这些数据的方式,包括形状和颜色。
有没有一种方法可以将数据作为数据存储在 GPU 上。然后有多种方法可以将该数据转换为可在 GPU 上渲染的数据。然后,用户可以在这些算法之间进行选择,我们可以有效地交换它,而无需接触数据。此外,颜色 id 将在数据中,但用户可以再次更改每个 id 应匹配的颜色,而无需触摸数据。
因此,例如,也许有以下数据:
[1000, 602, 1, 1] [1003, 602.5, 2, 2]
注意:数据不是顶点,而是可能需要一些计算或查找才能转换为顶点。
用户可以在可视化算法之间进行选择。假设在 (0, 602, 0) 和 (3, 602.5, 100) 处分别显示 2 个立方体。用户选择颜色 id 1 = blue 和 2 = green。所以原点立方体显示为蓝色,另一个显示为绿色。
然后完全不修改数据,用户选择不同的可视化,现在球体显示在 (10, 602, 10) 和 (13, 602.5, 20) 并且颜色不同,因为用户更改了颜色映射.
另一个可视化可能会显示所有数据元素之间的线条,或每组 4 个的矩形等。
上面的描述是否可以直接完成?怎么做最好?
请注意,我们将添加很多新数据,并附加到末尾。每秒可能爆发数千次。对现有数据的修改将更加罕见,并且在这些情况下对性能造成影响是可以接受的。用户更改算法和颜色映射相对较少。
我更喜欢使用跨平台 API(跨操作系统和 GPU)来做到这一点,所以我假设使用 OpenGL。