问题标签 [opengl-4]

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 投票
2 回答
2184 浏览

c++ - NURBS 和 opengl 4.2 核心呢?

RedBook 中的 NURBS 章节表示已弃用,包括实用程序库:“尽管其中一些功能是 GLU 库的一部分,但它依赖于已从核心 OpenGL 库中删除的功能。”

这是否意味着 OpenGL 4.2 实际上缺少用于操作 NURBS 曲线和曲面的 C++ 工具包?有一些商业 3rd 方工具包,但它们不是跨平台的(主要是 windows)

...?

0 投票
1 回答
562 浏览

opengl - 使用 Image api 重新编译着色器的致命错误

我收到错误

例如,每当我尝试重新编译使用 Image api 进行纹理写入的 GLSL 着色器时

但是,初始编译工作正常。有没有其他人遇到过这种情况,有没有解决方法?

0 投票
2 回答
5685 浏览

opengl - glBlendFunc 和 glClearColor alpha 参数

在 OpenGL 中,为了实现适当的透明度效果,我应该使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)该混合功能,但使用该混合功能,alpha 参数glClearColor变得毫无意义。当我更改 alpha 参数时,glClearColor我仍然得到相同的效果。什么时候可以使用 alpha 参数glClearColor?我能达到什么样的效果?

0 投票
0 回答
1431 浏览

opengl - 使用 imageStore 无法将纹理作为 GL_R32UI 写入

我有一个内部格式为 的 3D 纹理,GL_R32UI只要我假装它是浮点纹理,写入它就可以正常工作。

那就是如果我将它绑定为

并写给它

一切都按预期工作。但是尝试绑定它,同时将正确的类型指定为

并写信给它

似乎不起作用,也就是说,没有任何东西被写入纹理。我想正确地完成这项工作,以便我可以使用这些imageAtomic操作。有人知道会发生什么吗?

0 投票
1 回答
934 浏览

opengl - 为访问体素的多个线程获取唯一的缓冲区索引

我正在尝试实现“用于实时全局照明的基于八叉树的稀疏体素化”的一部分。

基本上只是体素化,我已经完成了。

还有“Voxel-fragment list”构造,它基本上是几个预先分配的体素位置和属性的缓冲区。

使用原子计数器和 atomic-comp-swap 或 atomic-add 创建位置缓冲区非常容易,以确保它仅由一个线程写入

但是,在多个线程写入相同体素位置的情况下,如何确保所有线程都获得适当的索引?如上所示,正确的索引仅对 1 个线程有效。

像下面的东西

我已经尝试了很多不同的方法。论文中唯一的提示是

为了管理(体素片段)列表,我们将下一个可用条目的索引(也是列表中体素片段数量的计数器)存储为另一个缓冲区对象中的单个 32 位值。

听起来它只是描述原子计数器的缓冲区对象。为了保持简单(目前),我没有计算运行平均值(如论文中所述),只是在渲染时将颜色相加并除以访问计数。

0 投票
1 回答
870 浏览

opengl-4 - 模板缓冲区 - 理解 glStencilFuncSeparate

示例代码如下所示:

每个像素的模板缓冲区都有这个二进制值:00000010(8 位精度)接下来,glStencilFuncSeparate 进行以下逻辑操作:(00000000 & 00000001 = 00000000), (00000010 & 00000001 = 00000000) -> 00000000 != 00000000 测试失败并且不会绘制对象的正面。我们可以将掩码设置为例如 2 或 255,然后测试将通过。

如果 glStencilFuncSeparate 中的 Ref 参数是 257,那么将被钳制为 1。 1. 掩码参数和钳制呢?2.提供的信息是正确的,对吧?

0 投票
1 回答
2216 浏览

opengl-4 - 延迟着色和背景颜色

我实现了一个简化的延迟着色(我不计算点光源的边界),在填充 g-buffer 之后,我只使用一个全屏四边形来计算光照。我在第二阶段使用混合 (glBlendFunc(GL_ONE, GL_ONE)) 来处理多个灯光。然后 glClearColor 中的 rgb 值应设置为 0,以获得正确的结果。填充 g 缓冲区时,glClearColor 可以是任何颜色(某些颜色可能只改变最终图像中的背景颜色)。现在我想知道如何在最终图像中设置背景颜色。一种方法是在填充 g 缓冲区期间使用 glClearColor(0,0,0),然后在片段着色器中使用以下 if 语句:

它工作正常,但 if 语句可能会导致一些性能损失。这是设置背景颜色的唯一方法吗?

0 投票
1 回答
1750 浏览

opengl - 如何使这个简单的 OpenGL 代码(在“宽松”3.3 和 4.2 配置文件中工作)在严格的 3.2 和 4.2 核心配置文件中工作?

我注意到一些 3D 代码不会在严格的核心配置文件中呈现,但在“正常”(未明确要求仅作为核心)配置文件上下文中很好。为了隔离这个问题,我编写了最小最简单的 OpenGL 程序,只绘制一个三角形和一个矩形:

在此处输入图像描述

我已将 OpenGL 程序作为 Gist 发布在这里

useStrictCoreProfile变量设置为 false 时,程序不会向控制台输出任何错误消息,并根据上面的屏幕截图在 Intel HD OpenGL 3.3 和带有 OpenGL 4.2 的 GeForce 上绘制一个四边形和一个三角形。

但是,将useStrictCoreProfile设置为 true 时,它​​会清除背景颜色但不会绘制 tri & quad,控制台输出是这样的:

...如果请求 4.2 严格的核心配置文件而不是 3.2,同样的问题。适用于 3 个不同的 nvidia GPU,所以我认为我没有正确遵守严格的核心配置文件。我做错了什么,我该如何解决这个问题?

注意,你不会在上面的 Gist 中找到glEnableVertexAttribArray调用,因为它在我正在导入的 glutil 包中——但这确实被称为 gist 的compileShaders()函数的最后一步。

0 投票
0 回答
883 浏览

c - OpenGL 4. X Error of failed request: BadAlloc (insufficient resources for operation)

当我尝试在 OpenGL 4 中编译程序时遇到一个问题。问题是下一个:

我正在使用 Debian Wheezy。

代码是 OpenGL 书 http: //openglbook-sa​​mples.googlecode.com/svn/trunk/Chapter%201/

为什么是这样?。

可能的解决方案是什么?

您需要的信息,请索取。

非常感谢您的回答。

0 投票
1 回答
5025 浏览

opengl-4 - glGenerateMipmap 是如何工作的?

我用参数 level = 0 调用 glTexImage2D。然后我调用 glGenerateMipmap(GL_TEXTURE_2D)。GL_TEXTURE_BASE_LEVEL 和 GL_TEXTURE_MAX_LEVEL 会发生什么?我假设它们是这样自动设置的:

稍后我可以手动设置上述参数,例如降低最大级别。那正确吗 ?