gpt4 book ai didi

opengl - OpenGL 散点图 : how to style markers

转载 作者:行者123 更新时间:2023-12-02 05:26:38 25 4
gpt4 key购买 nike

我正在尝试使用 OpenGL(出于性能原因)绘制散点图。我对 2D 和 3D 都感兴趣。

我有哪些样式标记选项,例如可见不同的组?

显然我可以改变颜色。但在“传统”散点图中,人们还使用圆、加号、Xes、方框等 - 我如何在 OpenGL 散点图中最好地实现这些?

我是否应该将所需的 2D 标记渲染为一个小纹理,然后为每个标记绘制一个带有纹理的三角形?我可以只使用 alpha 纹理,但使用动态颜色吗? (例如,纹理 = 等级,颜色 = 其他分数)?

我在常规绘图库(例如 gnuplot)中没有的 OpenGL 中的样式标记有什么特别酷的方法吗?

有任何性能提示吗?显示列表或顶点缓冲区?

最佳答案

问题太多了。让我一一解决。

What options do I have for styling markers, to make e.g. different groups visible?

颜色、形状、大小,甚至动画。

Obviously I can vary the color. But in "traditional" scatterplots, one also uses circles, plusses, Xes, boxes etc. - how do I best achieve these in OpenGL scatterplots?

广告牌 Sprite (tutorial)。这个想法是画一个小的四边形,定向使其始终面向相机。这种旋转可以在 CPU 上完成,但如果相机移动并且您需要在每一帧中重新计算它,那么在顶点着色器中完成它可能会更快。

Should I render desired 2D markers to a small texture and then draw one triangles with the texture for each marker?

两个三角形(即一个正方形)是通常的方法,因为正方形更容易贴图。

Can I use a texture for alpha only, but use a dynamic color? (to e.g. have texture = class, color = other score)?

是的。如果您使用固定管道,纹理将根据当前颜色进行调制。换句话说,如果您的纹理中有一个带有 alpha 的白色标记,并且您将当前颜色设置为红色,您将得到一个红色标记。如果您使用着色器,则必须在片段着色器中执行此操作。

Are there any extra cool ways for styling markers in OpenGL that I don't have in regular plotting libraries (say, gnuplot)?

就像我提到的:动画。您可以让标记旋转、上下摆动或以各种速度随机摆动。曾经听说过一个计算机网络可视化系统,计算机图标滴水表示丢包,冒烟冒火表示CPU过热。极限是您的想象力!

Any hints for performance? Display lists or vertex buffers?

顶点缓冲区。可能是着色器。但是,根据您的数据集的大小和您使用 OpenGL 的经验,您可以在两者都没有的情况下逃脱。

首先尝试最简单的事情,如果它太慢,用更快的实现来替换瓶颈。不要试图一次做所有事情;让一件事发挥作用,然后逐步添加并一次改进一个步骤。

关于opengl - OpenGL 散点图 : how to style markers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12987288/

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