标签: sharpgl

SharpGL-使用选择和拣选检测鼠标单击OpenGL元素

我正在使用SharpGL库在WPF中实现2D图形.我已经设法在屏幕上绘制一些原始对象,我需要检测这些对象上的鼠标点击.

我已经看过一个关于如何在图形对象上执行选择和拾取的OpenGL教程,但是我没有设法让它工作.在我的测试应用程序中,我在屏幕上绘制了三个三角形,当鼠标单击时,我在GL_SELECT模式下绘制相同的三个三角形,希望检测是否已经点击了任何三角形.我不确定这是否是正确的方法.命中测试始终返回选择缓冲区中的所有元素.

我知道PickMatrix中的宽度和高度参数不正确,我不确定那里的正确值是什么.它是整个视图的宽度和高度吗?

private void OpenGLControl_OpenGLDraw(object sender, SharpGL.SceneGraph.OpenGLEventArgs args)
{
    ////  Get the OpenGL object.
    OpenGL gl = args.OpenGL;

    //set background to white
    gl.ClearColor(1.0f, 1.0f, 1.0f, 1.0f);

    ////  Clear the color and depth buffer.
    gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);
    DrawScene();
    gl.Flush();
}

private void DrawScene()
{
    OpenGL gl = openGLControl.OpenGL;
    gl.Color(1.0, 0.0, 0.0);
    DrawTriangle(-0.2, 0.6, 0.0, 0.8, 0.2, 0.6);

    gl.Color(0.0, 1.0, 0.0);
    DrawTriangle(-0.2, 0.2, 0.0, 0.4, 0.2, 0.2);

    gl.Color(0.0, 0.0, 1.0);
    DrawTriangle(-0.2, -0.2, 0.0, 0.0, 0.2, -0.2);
}

private void …
Run Code Online (Sandbox Code Playgroud)

opengl wpf sharpgl

5
推荐指数
1
解决办法
2572
查看次数

在 macOS 上从 NetCore 3.1 获取屏幕截图?

我需要从 netcore 3.1 应用程序获取 macOS 上的屏幕截图。不幸的是当前实施的是System.Drawing.Graphics.CopyFromScreenthows PlatformNotSupportedException。但是还有什么其他最简单的方法(也许通过 OpenGL 或 GTK)获取屏幕截图呢?

c# opengl macos sharpgl .net-core

5
推荐指数
0
解决办法
240
查看次数

OpenGL:更多顶点,性能更慢

我正在开发一个程序的一部分,给出一组xyz坐标,一个3D模型.我已完成此图片所需的所有功能(即平移,旋转,缩放),但是给出的xyz坐标越多,程序运行的速度就越慢.处理29,000个坐标时我的程序运行得非常顺利,但是当我有300,000个点时,我的程序变慢了.我正在使用SharpGL在WPF中使用OpenGL.插入所有这些点的代码如下所示:

gl.Begin(OpenGL.GL_LINES);

        for (int i = 0; i < (parser.dataSet.Count - 1); i++)
        {

            gl.Color(1.0f, 0.0f, 0.0f);
            gl.Vertex(parser.dataSet[i].X / parser.xDiv, parser.dataSet[i].Y / parser.yDiv, parser.dataSet[i].Z);
            gl.Vertex(parser.dataSet[i + 1].X / parser.xDiv, parser.dataSet[i + 1].Y / parser.yDiv, parser.dataSet[i + 1].Z);
        }

        gl.End();
        gl.Flush();
Run Code Online (Sandbox Code Playgroud)

我在做一些我能解决的事情(我不熟悉OpenGL)吗?有些人提到缩小我的数据,我并不完全反对,但有没有办法在图片上"缩放"(重新缩放)时"缩放"?

opengl wpf performance sharpgl

2
推荐指数
1
解决办法
786
查看次数

标签 统计

opengl ×3

sharpgl ×3

wpf ×2

.net-core ×1

c# ×1

macos ×1

performance ×1