Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OpenGL绘制每n个顶点_C#_Opengl_Sharpgl - Fatal编程技术网

C# OpenGL绘制每n个顶点

C# OpenGL绘制每n个顶点,c#,opengl,sharpgl,C#,Opengl,Sharpgl,我正在编写一个包含大型数据集线条图的应用程序 我目前的策略是将每个通道的数据加载到1D顶点缓冲区中 然后,我在绘图时使用顶点着色器将缓冲区组装到顶点(这样我就可以对多组数据重用一个缓冲区) 这是非常好的工作,我可以画数亿个数据点,而不会减慢太多 为了更进一步,我想减少实际绘制的点的数量,尽管只是简单的减少(即每n个点绘制一次),因为没有太多点绘制1000个点,所有点都由一个像素表示) 我可以考虑这样做的一种方法是使用几何体着色器,只发射每N个点,但我不确定这是否是最佳的攻击计划 这是推荐的方法吗

我正在编写一个包含大型数据集线条图的应用程序

我目前的策略是将每个通道的数据加载到1D顶点缓冲区中

然后,我在绘图时使用顶点着色器将缓冲区组装到顶点(这样我就可以对多组数据重用一个缓冲区)

这是非常好的工作,我可以画数亿个数据点,而不会减慢太多

为了更进一步,我想减少实际绘制的点的数量,尽管只是简单的减少(即每n个点绘制一次),因为没有太多点绘制1000个点,所有点都由一个像素表示)

我可以考虑这样做的一种方法是使用几何体着色器,只发射每N个点,但我不确定这是否是最佳的攻击计划


这是推荐的方法吗?

通过将所有顶点属性的跨距调整为正常跨距的N倍,您可以更简单地执行此操作。

在绑定到vbo进行绘图后,我是否可以通过再次调用GLVERTEXATTRIBCPOINTER来执行此操作。我尝试过将步幅提高1000倍,但没有发现FPS有明显的提高。@Hugoago那么你的瓶颈不是你的点数(1亿对于现代硬件来说并不是那么多)。我知道这是一个全新的问题,但是关于从何处开始的任何想法。我还以为2gb的顶点数据越来越大。同样在我接受之前,我找不到任何关于最大步幅的信息,你知道吗。