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

opengl - 为什么在 glViewportIndexed 中视口的宽度/高度从 int 变为 float

glViewport:宽度/高度是整数(即像素)。

但是 glViewportIndexed 有这些浮点值。让它们浮动有什么好处。我的理解是基于像素总是整数的事实。

0 投票
2 回答
2576 浏览

opengl - what is the difference between querying time elapsed in OpenGL with GL_TIME_ELAPSED and GL_TIMESTAMP

Both of them can be used to get time elapsed in nanoseconds. The former uses scoped glBeginQuery/glEndQuery. Is that the difference?

0 投票
1 回答
1840 浏览

opengl - OpenGL 4 中顶点选择的最佳方法

我找到了这篇文章,有点回答我的问题,但不完全:

如何通过选择顶点来拖动线段

我要解决的问题:执行顶点选择的现代方式(使用 OpenGL 4 架构):

  • 用户画了一个选择(橡皮筋,这不是我想要的)
  • 我假设在这个阶段我可以为模型中的每个顶点提供某种唯一 ID
  • 所选区域以某种方式重新渲染,离线使用某种顶点/片段着色器,将顶点存储在我可以读回的缓冲区中?

我只是猜测它涉及某种缓冲区,着色器可以在其中写入渲染顶点的结果,该缓冲区在程序中是可读的。我想知道是否有人已经这样做了,或者至少可以让我朝着正确的方向前进。它需要(理想情况下)快速(在非常大的模型上工作),并使用 OpenGL4(没有不推荐使用的功能,如 GL_SELECT 等)。

  • 理想情况下,我还需要使用相同的技术来选择其他组件,例如边和面。
0 投票
1 回答
2419 浏览

c++ - 如何在 linux(Ubuntu 14.04) 中找到我的 OpenGL 版本

我开始阅读 OpenGL 4.0 Shading Language version 1。在本书的开头,他们展示了找出 OpenGL 版本的代码,但它不起作用。我想知道如何确定设置是否正确。

代码给了我空输出。我不认为这是正确的,因为在开始阅读本书之前,我在网上找到了在 openGL 2.0 中显示一个有效的框的代码。

我还查看了这个链接,它提供了关于我的显卡的信息。我认为这与我安装的开发包无关。

我需要找到一种方法来确认我已经安装了 openGL 4.0。我更喜欢终端命令或修复我的代码。

编辑:我添加了一个关于 McLovin 提供的代码的附加问题:我注意到我得到一个额外的行“分段错误(核心转储)”。我有一个 7970 AMD GPU。这个输出是错误的吗?

0 投票
1 回答
109 浏览

java - Java OpenGL 4.4:存储/推送、弹出当前程序管道

我有一个钩子可以让我渲染我自己的模型。对于这个模型,我想使用自定义顶点着色器。现在的问题是外部程序仍然使用旧的着色器/程序方法(glUseProgram)进行渲染,我希望在切换到新的 4.4 ProgramPipeline 时保持我的程序兼容,同时即使用户不提供相同的功能'不支持 OpenGL 4.x。现在我想我可以做到以下几点:

0 投票
1 回答
479 浏览

opengl - glProgramLocalParameter 和 glProgramEnvParameter 有什么用

它们在此处的 NV gpu 程序 4 扩展中定义https://www.opengl.org/registry/specs/NV/gpu_program4.txt

这是将常量数据传输到程序的唯一方法吗?当我们使用 GLSL 时,这是否被制服所取代?

我还在某处看到了 glProgramBufferParameter 并且变得更加困惑。这适用于着色器存储缓冲区吗?

0 投票
2 回答
757 浏览

opengl - OpenGL中的压缩纹理

我读过压缩纹理不可读且不可颜色渲染。尽管我对为什么不允许这样做有所了解,但有人可以详细解释一下。

它到底是什么意思它不可读。我无法使用图像加载等在着色器中读取它们?或者我什至不能从他们那里取样?

它不能渲染是什么意思?是不是因为用户无论如何都会看到所有垃圾,所以它是不允许的。

我没有尝试使用压缩纹理。

0 投票
1 回答
2989 浏览

glsl - GLSL中的memoryBarrier和OpenGL API中的glMemoryBarrier有什么区别

是不是 GLSL 中的 memoryBarrier 在单个着色器调用中对内存事务进行排序,而 OpenGL API 中的 glMemoryBarrier 在多个着色器调用(不一定属于同一程序)中对内存事务进行排序。

0 投票
1 回答
689 浏览

c++ - glBufferSubData 导致未处理的异常:0xC0000005

我正在尝试使用 vao 和 vbo 制作网格类。

首先,我创建向量来保存要缓冲的数据:

我从文件中存储数据,然后创建缓冲区:

我尝试像这样填充缓冲区:

当我尝试缓冲正常数据时它会中断:

我收到此错误:

我一直在寻找一段时间,但我仍然没有找到解决方案。非常欢迎有关我所犯任何错误的任何信息。

提前谢谢我

0 投票
1 回答
1355 浏览

c++ - 使用一个 GL ELEMENT_ARRAY_BUFFER 从 0 引用每个属性?

问题

OpenGL 4.4、C++11

通过将顶点属性设置为 element_array_buffer 和 array_buffer,我是否有权在 element_array_buffer 中为每个属性使用从 0 开始的索引?

数据布局

数据使用


问题

我编写索引以便可以使用 0/0/0 引用第一个顶点、UV 和法线。是否可以将其映射到 element_array_buffer 并照此使用?或者我的解决方案是将 nPositions 添加到我的纹理索引,并将 nPositions+nTextures 添加到我的正常索引?