问题标签 [openglraw]

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 回答
460 浏览

opengl - 我应该在每次绘制时删除顶点缓冲区对象吗?

我有一些 Haskell / OpenGLRaw 代码可以执行以下操作:

关于这段代码,我有两个问题:

  1. 我从draw回调中调用它。这是否完全否定了将我的顶点数据存储在服务器中的用处?
  2. 如果我应该把这段代码放在外面draw,我应该把gl_STREAM_DRAW命令改成更静态的吗?
0 投票
1 回答
116 浏览

windows - Can't load OpenGL procs, but only from Haskell

I've had a problem after converting some C++ code to Haskell on Windows. The code in C++ works fine, but in Haskell any OpenGL function fails to load, i.e.

Whereas the function works fine in C++ (where I'm using glLoadGen). I've loaded both into depends.exe and don't see any difference in what they use from OpenGL32.dll.

I'm using OpenGLRaw-1.3.0.0.

0 投票
1 回答
3035 浏览

opengl - 在 Ubuntu 上安装光泽(特别是 OpenGLRaw 依赖项)时出现“*缺少 C 库:GL”

尝试安装 Gloss 时出现以下错误:

通常我会尝试libgl-dev根据通常的命名约定进行安装,但没有这样的库。

0 投票
1 回答
48 浏览

haskell - Haskell GL 原始绑定纹理问题

我在两个不同的对象上使用两个纹理,每个对象都有自己的着色器程序。但是,第二个对象在渲染时应用了两种纹理并带有一些奇怪的扭曲。

当第一个对象和纹理正确渲染时,我将重点关注第二个对象的代码。

第一个纹理是这样加载的:

第二个纹理是这样加载的:

我在绘制第一个对象之前绑定第一个纹理,如下所示:

调用glDrawArrays第一个对象后,我使用glBindTexture_2D 0.

第二个纹理以类似的方式绑定:

glBindTexture_2D 0在重新进入渲染循环之前在绘制之后调用。

结果如下所示:

在此处输入图像描述

如您所见,右侧的对象有一些伪影......第二个纹理在第一个纹理之上渲染(应该只在第一个对象上)。而且,第二个纹理全部扭曲了。

第二个对象的顶点和 uv 坐标可以在这里找到(要点)。

用于此对象的着色器在此处(要点)。

第二个对象的属性设置如下:

我试图包含最相关的代码。如果有人能发现我的错误,我将不胜感激。如果需要,我 100% 愿意发布更多代码。

更新:

评论中有人友好地指出,我的代码对第二个纹理使用了不正确的宽度和高度值。我现在正在使用此功能加载图像: