问题标签 [sharpgl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
117 浏览

opengl - UnProject 缩放时无法获取世界坐标

在我的 SharpGL 项目 (C#) 中,我使用了 Unproject 函数来从鼠标坐标中获取世界坐标。

此过程非常简单,但在缩放绘图时会失败。我找到了很多关于这个问题的文章,但没有一篇适合我。

当我说缩放意味着在draw main proc中我应用此代码:

然后,当我拦截鼠标移动时,我想可视化世界坐标。当比例因子为 1 时,这些坐标是精确的,但是当我改变它时,这些坐标是错误的。

例如:一个世界点 (10, 10) 检测到缩放 1 (10, 10) 检测到缩放 1,25 (8, 8) 检测到缩放 1,25 (6.65, 6.65)

这是我的简单代码,考虑到 scale_factor 只是用于调试。

在此处输入图像描述

0 投票
1 回答
122 浏览

c# - OPENGL (GLFW),glDrawElements 发出“Acces.ViolationException”

(我是一个相当新的编码员(至少在图形编程方面),所以不要对我太苛刻:()

今天我尝试使用 OpenGL (GLFW) 的 C# 实现来渲染一个简单的三角形,我遵循了来自“LearnOpenGL.com”的网络教程,特别是你好三角形教程。

我已经完成了整个教程,并希望程序能够运行并向我展示一个漂亮的三角形,但它会给出错误消息:

我搜索了一个解决方案,但遗憾的是找不到任何解决方案,我用教程完全检查了我的代码(这可能是错误所在,因为我需要将它从 C++“转置”到 C#)并且找不到任何错误。

这是我的代码:

这是着色器代码:

为了澄清起见,后台代码(LoadResources、Update、Render、Init)都可以工作,我已经检查了多次。

0 投票
0 回答
114 浏览

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

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

0 投票
1 回答
90 浏览

c# - c# winform sharpgl,获取模型视图矩阵和openglControl不绘制

我有一个有趣的事情。我想获取渲染对象的窗口坐标。当我在 OpenGLDraw 事件中使用它时:

绘图不起作用。环境:VS 2019社区版,SharpGL.WinForms 3.1.1.,c# winform项目,framework 4.6.1

OpenGLControl 事件:初始化,我只需要 2D 空间。

绘制:它工作正常,绘制对象

我想在 foreach 循环中使用它,在 img.Draw() 之后(部分代码)

尝试调试,逐行注释。我看到使用 gl.GetDouble() 绘图时消失了。我得到一个正确的窗口坐标,只是最后一个对象消失了。.Draw() 很简单

0 投票
1 回答
139 浏览

c# - 为什么用 SharpGL 绘制的所有立方体都是白色的?

我正在使用 SharpGL 在 WPF 中编写一个程序来绘制一些立方体。在我的软件中,需要绘制大量的立方体。最初,我使用即时模式渲染方法,这使得应用程序太慢。之后我使用了VAO方法,应用程序的速度提高了很多。唯一的问题是所有的立方体都是用白色绘制的。我认为问题在于着色器部分。请帮我解决这个问题。

0 投票
0 回答
566 浏览

c# - 使用 SharpGL 在 C# 中的 openGL 中绘制 Hello Triangle

我正在尝试学习 OpenGL 并想在 SharpGL 中绘制一个三角形。但不幸的是,除了绿屏,我没有得到任何输出。我的代码的哪一部分是错误的?或 shrapGL 无法做到这一点。请不要发送 C++/C tuts,因为已经尝试过(很多),并且在 C# 中有点不同。我还从本教程中复制了我的代码https://learnopengl.com/Getting-started/Hello-Triangle

0 投票
1 回答
77 浏览

c# - OpenGL/SharpGL 中转换的简单代码(无矩阵理论课程)

我有一个 OpenGL .NET WPF (SharpGL) 应用程序,它在立即模式下绘制小方块,它们真的是 3D:

我有“缩放”和“平移”按钮。

缩放目前z在 0 到 -400 之间改变 +/- 10,这已经足够了。

我试图通过使用 LookAt 来实现 pan,但我无法让它工作。我确实把它放在了resize方法中——这是适合它的地方吗?

是否可以使用单行代码将eye+/- 5 左/右/上/下移动而无需经历矩阵理论课程?我很感激。

0 投票
0 回答
23 浏览

c# - ComboBox 项目更改不影响 SharpGL 应用程序中的代码

我在 C# 中有这段代码不起作用。这很简单,我有这个组合框选择,我用它来选择文件中的一列并将数据放入数组中。这是一个 OpenGL 应用程序,所以我基本上使用这些数据对我正在绘制的任何内容进行着色,效果很好。因此,组合框中的每个选择都是不同的颜色模式,我第一次选择一个,无论我选择什么项目都可以正常工作。问题是,如果我想清除屏幕并选择不同的模式,它不会,它会一直显示我之前选择的第一个模式。此代码位于 OpenGLDraw 方法中,因此它会不断被调用。然后,在我的脑海中,当它一直运行时,变量“选择”会变成新的选择,但显然这不是正在发生的事情。谁能帮我弄清楚是什么' 错了吗?如果这不是它的工作原理,或者只是一些愚蠢的错误。先感谢您。这是代码:

0 投票
0 回答
55 浏览

c# - 在 SharpGL 中更改宽度、颜色、线型

需要帮助,因为我是 OpenGL 新手。因此,我的任务是创建一个控件,该控件将实时绘制在 CNC 机床上切割工件的过程。

我尝试通过 glBegin、glEnd 经典地做到这一点,一切正常,但由于顶点数量众多,它在最后开始缓慢工作。因此,我决定尝试使用 VertexBufferArray () 和 VertexBuffer () - 这也有效,但在这种情况下,我不明白如何更改线宽及其类型(具体来说,我有两种类型 - 常规线和破折号-虚线)。

这是我使用数组的方法

这就是我得到的
在此处输入图像描述

如您所见,所有线条的宽度都相同。所以,我的问题是:有人知道我能做些什么吗?还有一个:如果我需要显示仪器当前位置的一个点怎么办?我应该用一个 Vertex 创建另一个数组吗?

ps对不起我的英语,这里是我用glBegin/glEnd得到的图片
在此处输入图像描述


没有标签垃圾邮件的意图。
我正在做这个项目,部分由 C++ 和 C# 中的教程指导。因此,如果有人知道如何在 C++ 中做到这一点,那么在这种情况下,我将尝试在 C# 中实现相同的功能。

0 投票
0 回答
102 浏览

c# - WPF 渲染 2D 点云

我正在尝试在 2D 视口中渲染使用无人机图像生成的点云。我已经测试了 WriteableBitmapEx、SkiaSharp(以及 OpenGL 后端)、SharpGL,但它们都没有给我不到 20 秒的时间。我试图渲染的点云包含大约 2300 万个点。我想最大达到 500 毫秒。仅渲染缩放、平移和调整大小事件。是否有任何其他替代库(希望有教程)或者我在使用这些库时做错了什么?

为了参考我的测试,我的电脑有以下硬件:

  • CPU:AMD锐龙3600 6核12线程
  • 显卡:AMD Radeon RX 5700 XT