问题标签 [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 回答
898 浏览

c# - 用鼠标旋转(矩阵和着色器)

我试图让我的模型用鼠标旋转。结果我有一些看起来像旋转的东西,但它的表现非常奇怪和意想不到。

我建议错误出现在我的矩阵设置或鼠标事件处理程序中。但我不知道在哪里。

我的初始化代码:

着色器.vert:

鼠标移动和鼠标按下处理程序:

展示中:

0 投票
1 回答
1190 浏览

c# - SharpGL 和几何着色器

有人在 SharpGL 中使用过几何着色器吗?我无法弄清楚如何在我的代码中完成它。正如我看到的那样,它只Create提供了ShaderProgramfrom SharpGL.ShaderstakeVertex ShaderFragment Shaderas 参数。

如何通过 SharpGL 将我的几何着色器与 OpenGL 链接?或者我需要使用另一种方法来Geometry Shader工作?

0 投票
2 回答
2043 浏览

c# - 使用现代 OpenGL 渲染文本

我在互联网上找不到任何简单的文本渲染解决方案。

我看到了将字符映射为纹理的方法,而不是进行一些搜索和绘制为纹理。对于文本绘制这样的原始动作来说,这种方式似乎太复杂了。不是吗?

所以,我的问题是关于使用 SharpGL 呈现文本的简单方法。如何实现?

0 投票
1 回答
590 浏览

c# - 如何使用 GetBufferSubData?

我目前正在玩,SharpGL 但无法弄清楚如何以正确的方式使用它的函数 GetBufferSubData。

用例情况:我已经用一些数据填充了 VBO,现在想将它从那里取回托管对象。

我的尝试失败了FatalExecutionEngineError,正如我所读到的,这对应于内存堆中的泄漏。但我不确定我是否有适合我需要的代码。

我的问题是如何将数据返回到托管对象。

0 投票
1 回答
199 浏览

c# - 如何使用 GetActiveUniform?

通常,问题在标题中。

我无法理解如何使用GetActiveUniform函数。

我的尝试看起来像这样(一切都被编译和链接):

顶点着色器:

通话后,我得到正确的 uniformSize、长度和类型,但没有名称。

0 投票
1 回答
238 浏览

c# - 正确勾勒 3D 模型

我目前正在使用 SharpGL 制作一个简单的 3D 选择屏幕。它看起来像这样:

没有轮廓的拼图

到目前为止,它看起来还不错,但我需要以某种方式得到它概述的谜题,所以它看起来更像这样:

带轮廓的拼图

我尝试增加各个谜题之间的空间,但它看起来很丑陋。
有人对如何勾勒各个谜题有其他想法吗?
不幸的是,不同颜色的谜题是不可能的。

这是几何之间有空格的图片:http:
//oi59.tinypic.com/smc6sl.jpg

我使用 Shader 进行照明,因为它看起来更好一些。

这是 Blender 线框: http:
//oi60.tinypic.com/6yljis.jpg

0 投票
1 回答
3066 浏览

c# - 如何正确渲染图像

我的图像在使用 SharpGL 渲染时显得太大。如何正确加载它?图像的尺寸仅为 313 x 79 像素,但在渲染时几乎占据了屏幕的其余部分。

我从 codeplex 得到了这段代码。给出的示例是如何渲染 3D 图像(项目名称为 NativeTexturesSample)。 https://sharpgl.codeplex.com/downloads/get/614989。我设法以 2D 进行渲染,但我认为我做得不对。

0 投票
2 回答
3138 浏览

wpf - SharpGL-使用选择和拾取检测 OpenGL 元素上的鼠标点击

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

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

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

输出始终相同:

命中:0 命中 1 中的名称数量

名字是 1

命中:命中 1 中的 1 个名称

名字是 2

命中:命中 1 中的 2 个名称

名字是 3

0 投票
0 回答
2112 浏览

c# - sharpgl DrawText3D 自行翻译

我对 SharpGL (OpenGl) 很陌生,我正在尝试绘制一些正方形并在里面添加一些文本。我使用下面的代码。

问题是, gl.DrawText3D 方法根据文本长度自行翻译。当我想添加一条从正方形的左边缘开始的新行时,第二行的起点与第一行不匹配。

我正在寻找的是:

1) 如果有办法阻止 DrawText3d 方法翻译

或者

2) 找出这个方法翻译了多少。

0 投票
1 回答
542 浏览

opengl - 32位(int)缓冲区到OpenGL中的灰度/颜色映射图像,单通道32位纹理还是TBO?

我有一个强度值的 int 缓冲区,我想在 OpenGL 中将其显示为灰度/颜色映射图像。

实现这一目标的最佳方法是什么?

标准纹理?

我可以通过标准的 glTexture 来做到这一点,比如:

在着色器中,我的印象是我会像使用任何其他纹理一样使用它,除了我会使用 usampler2D 而不是 sampler2D,此时我会得到真正的整数值(即不是 0-1 范围)。

TBO?

或者通过 TBO 实现并执行以下操作会更好:

就着色器而言,我实际上很困惑。我见过像 g = texelFetch(u_tbo_tex, offset + 1).r 这样的东西。. 所以我猜我必须将纹理坐标转换为偏移量,例如:

但随后 texelFetch 实际上返回一个 vec4,所以大概我会使用:

但是由于 tex_coord.s & t 在 0-1 中,这意味着需要:

其他缓冲区

我对缓冲区对象的经验很少,我觉得我所做的只是在 GL 中使用缓冲区……所以我确实觉得我把它复杂化了,我错过了“一分钱一滴”。

重要笔记

  • 为什么是 Int?:在某些情况下,我会在转换成颜色之前对数据进行一些操作,并且更愿意以 32 位精度执行此操作以避免潜在的精度错误。可以说它可能不会有所作为,因为它最终会成为屏幕颜色......
  • 数据更新频率:强度数据偶尔由用户事件更新,但肯定不是每帧多次更新(所以我假设在这种情况下STATIC比DYNAMIC更合适?)
  • 用途:数据主要用于 GL 所以 _DRAW 应用程序可能会利用 GL 为其计算一些值,但在这种情况下我可能会创建一个单独的 READ 缓冲区
  • 到目前为止,我看到的最高整数值是“90,000”,所以我知道它超出了 16 位整数范围。

注意:我通过 SharpGL 执行此操作,目前无法测试,因为它没有 GL_R32f 的定义,所以我必须在我的 Windows 平台上找到 gl.h(总是很有趣)并添加正确的 const 编号*