问题标签 [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.
c# - 为什么 SharpGL.dll 中出现异常?
我正在尝试使用 VBO 绘制一些简单的东西,比如三角形。
示例代码在 github 上提供:
以下“使用”语句为我正确编译。
我的程序在这一行崩溃:
它给了我以下例外:
如果程序的依赖项之一不受支持,为什么程序会使用 Create() 函数编译?确定依赖项是否实际可用以及如何正确安装它的最佳方法到底是什么?
wpf - WPF 项目的 OpenGL 版本错误
我有两个独立的 WPF 项目。我的目标:将项目 B 更改为与项目 A 具有相同的 OpenGL 对象实例版本。
两者都在某个时刻使用以下行实例化变量“gl”:
设置断点并检查其对象属性的“gl”后,我在项目 A 中看到以下内容:
然而在项目 B 中,我看到以下内容:
关于 'args' 两个项目都通过以下方法实例化 gl:
这两个项目都使用以下方法调用该方法:
请注意,'args' 并未从此处显式传入。我认为必须在更深的上下文中调用函数,例如 OpenGLEventHandler。但是,我注意到 args 也是该函数的参数。
我无权访问 OpenGLEventHandler 的源代码,因为它位于 SceneGraph.dll 中
我想知道 args 变量是否由 .config 或 .xaml 文件确定,因为我的项目是从 Visual Studio 运行的 WPF。但是,关于 OpenGL 的文件并没有太大区别。
项目 A 的 MainWindow.xaml:
项目 B 的 MainWindow.xaml
还有其他文件,例如 App.config、App.xaml 和 Settings.settings,但是,我不知道共享哪些文件最有用。
c# - 命名空间“clr-namespace:SharpGL.WPF;assembly=SharpGL.WPF”中不存在名称“OpenGLControl”
我对 openGL 包装器有问题 - SharpGL-> 由于缺少程序集,我无法构建解决方案。
名称空间“clr-namespace:SharpGL.WPF;assembly=SharpGL.WPF”中不存在名称“OpenGLControl”
所需的程序集都被引用了,在对象浏览器中我也可以看到我正在使用.NET 4.5.2 和 VS2013 的全部内容
opengl - 在无符号整数纹理和归一化浮点数之间转换(GL_RED_INTEGER 到 GL_RGB)
从 unsigned int 纹理转换为标准化浮点数并再次转换回来的正确方法是什么?
作为测试,我目前正在尝试将 unsigned int 纹理渲染到标准 RGB 上下文,并且以下内容正在工作,但感觉不对
相关抽奖代码:
纹理创建
当前的 GLSL 代码
---更新--- (修复了评论者友好指出的愚蠢错误) #version 150 core
所以我对 GLSL 代码的当前状态不是很满意(尤其是因为它不起作用:p),因为我正在执行浮动转换,这似乎与这一点相悖。
原因:
我正在开发一个合成器,其中一些纹理存储为单通道无符号整数,而其他纹理存储在三通道浮点中,当一个与另一个混合时,我想转换“blendee”
注意:我正在使用 SharpGL
c# - sharpgl 无法调用扩展函数 glShaderSource
尝试使用sharpgl创建着色器时出现以下异常
我目前使用的代码是
例外是上shaderProgram.Create
线。删除或缩小着色器源字符串时,不会发生错误,但着色器不会编译,我得到Failed to compile shader with ID 2.
错误。我还在源代码中找到了异常的来源,但不知道如何解决这个问题或实际原因是什么。
opengl - 堆肥图像时,确保图像以正确的纵横比渲染的最佳方法是什么
我正在写一些有点“photoshoppy”的东西,因为图像层是相互叠加的。
每一层都渲染到一个 FBO,并且 fbo 可以通过效果等运行。
虽然用户可以扭曲图像,但我希望图像最初以它们自己的纵横比呈现。
目前,每个图像都被绘制到 FBO,如下所示:
当我混合时:
目前所有的纹理失真等都是通过 src 纹理矩阵发生的,目前模型和 dst 始终设置为恒等,并且没有投影矩阵。感觉一切都错了。
使用屏幕大小的表面和视口将最终的复合纹理渲染到屏幕上。
如何确保保留每个图像的纵横比?
ps 我知道这可能需要大量的重构。
c# - 如何使用sharpgl(C#)画线
我正在尝试使用sharpgl在c#中画线,但是当我编译代码时,它给了我一个充满白色的控制台,而不是线条,如何解决这个问题或者我的代码中是否有任何错误。这里是代码。
opengl - 用于堆肥图像的多个 FBO 或多个附件或 FBO“双缓冲区”
情况
我正在编写图像合成器,并且正在使用 FBO。
由于 gl 无法读取它当前正在写入的纹理,目前我正在使用伪“Fbo Flip Chain”逻辑。我创建了一个大约 10 个 FBO 的列表,每次渲染时,我都会移动到下一个 FBO,它可以愉快地从以前的 FBO 纹理之一中读取。
然而,这是有很大缺陷的,因为我目前进行堆肥的方式可以在当前状态下仍需要 fbo 时覆盖它。我绑定了一个“锁定/解锁”逻辑,但它很脆弱。
图像当前经历以下阶段:
- 将图像绘制到纹理(使用 fbo)
- fbo翻转
- 将所有图像“孩子”合成到图像上
- 每个孩子的fbo翻转这是问题
- 将图像转换为目标类型
- fbo翻转
- 将图像与其目的地混合
- fbo翻转
- 传递纹理以与兄弟姐妹一起堆肥
我决定重新考虑这个翻转链合成的想法。在我看来,最好执行以下操作之一:
可能的解决方案
- 每个图像将包含自己的多个 fbo,每个都有自己的渲染目标,在每个阶段切换到指定的 fbo*
- 每个图像将包含一个 fbo 和多个纹理目标,更改每个阶段的附件*
- 每个图像将有2 个渲染目标(“前”、“后”),将有1 个主 fbo,主 fbo 将覆盖“前”纹理,同时从“后”纹理读取(更像是后缓冲区和一个前缓冲区)。在每个阶段*结束时交换它们。
*(每个阶段 = 当前执行翻转的位置)
我目前倾向于数字 2,每个图像最终都会有 4/5 纹理,这将被指定给每个阶段。当图像被“绘制”时,它可以测试它是否可以从不同的阶段开始绘制。
例如,图像已经绘制并且已经转换为正确的类型,所以采用“post_convert”纹理并混合。
问题:
- 我不确定哪个更快,附加和分离渲染目标。或绑定 FBO...
- 目前有大量的纹理和 fbos 被抛出。而且我非常警惕我在 C# 中使用 GL 进行编程,因此我需要确定一个与 C#s GC 一起管理 gl 内存的系统。
c# - OpenGL/SharpGL:渲染 2D 图像被水平拉伸
我在 C# 中使用 OpenGL(使用 SharpGL)并且我来自 DirectX 背景......我认为 OpenGL 会非常相似,它有点像,除了我的投影矩阵有问题导致我的将 2D 图像水平拉伸一点(使 Lena 看起来非常臃肿)。
我认为我的问题源于我的正射投影,但我并不肯定 - 我将投影填充到绘图函数中,以确保它按预期工作。纹理正确渲染到顶点,图像是 512:512 作为 BMP(拉入 C# 时验证)。
也许有人可以看看我的代码并帮助我?我从其他示例中复制了大部分代码,并对其进行了一些修改,所以这是我的最新版本:
c# - OpenGL Mandelbrot 像素化缩放
我使用 SharpGL(OpenGL 的 C# 实现)编写了一个带有缩放功能的 Mandelbrot 查看器。它工作正常,但在 17 次缩放(每次缩放双倍缩放)后,它开始变得非常糟糕。我直接用c#编写了几乎相同的代码,没有这个问题。
我尝试在片段着色器中将浮点数设置为 highp,以防万一这是一个精度问题,但这并没有什么不同。这是我的片段着色器:
我试过只使用黑色和红色,以防平滑颜色计算造成一些麻烦,但这并没有改变任何东西。
Scale 在 c#sharp 程序中设置,只是缩放的 2 的幂,所以 2^17 左右是它开始明显的地方。
center 是复平面中图像的真实中心。