问题标签 [opengl-2.0]

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

opengl - `gluOrtho2d` 的现代等价物

OpenGL函数的现代等价物是gluOrtho2d什么? clang正在给我弃用警告。我相信我需要编写某种顶点着色器?它应该是什么样子?

0 投票
0 回答
353 浏览

vertex-shader - openGL2.0:如何禁用顶点着色器?

我正在尝试从游戏中捕获痕迹,但我使用的 glInterceptor 不支持顶点着色器。我的研究建议我禁用顶点着色器并使用默认的顶点着色器,但没有关于如何执行此操作的信息。那么,如何禁用顶点着色器呢?这是代码:

pp.fx

diff-tex.vs

0 投票
2 回答
597 浏览

java - OpenGL 不渲染我的网格

我尝试使用LWJGL在屏幕上渲染一个简单的网格,但 OpenGL 决定什么都不做。:(

所以我有一个创建VBO的网格类。我可以添加一些应该在屏幕上绘制的顶点。

这是我向网格添加顶点的方法:

我很确定我以正确的(顺时针)顺序添加了它们。

还有我的 OpenGL 设置:

调用glGetError()不会返回错误 (0)。

编辑:

好吧,我发现 Mac 在 OpenGL 方面有点奇怪。我需要将 VAO 与 VBO 一起使用。现在它工作正常。不管怎么说,还是要谢谢你!

0 投票
1 回答
46 浏览

java - OpenGL:为着色器创建代理用户

在 OpenGL 管道之前:我想为我渲染的一些对象使用特殊的顶点着色器。所以我想到了这个:

所以我必须静态 GLObjects: shaderName,这是我要使用的已编译顶点着色器,programName如果事先没有绑定其他程序,这是我绑定的程序。

我认为当真的有问题时这会运行良好。在执行代码之前在当前绑定程序的顶点着色器上调用 glDeleteShader() 时,着色器对象将被删除(在标记的行中)并且之后无法重新附加。

有没有一种简单的方法来解决这个问题(在高效的意义上很容易)?

为了完整起见,GLStatics课程:

0 投票
2 回答
38440 浏览

opengl - 如何将多个纹理传递给单个着色器?

我正在使用 freeglut、GLEW和 DevIL使用顶点和片段着色器来渲染纹理茶壶。这在 Ubuntu 14.04 上的 OpenGL 2.0 和 GLSL 1.2 中一切正常。

现在,我想将凹凸贴图应用到茶壶。我的讲师显然不自己泡茶,所以不知道它们应该是光滑的。无论如何,我找到了一个关于老式凹凸贴图的漂亮教程,其中包括一个片段着色器,开头是:

他们没有提到的是如何首先将两个纹理传递给着色器。

以前我

所以现在我

但这不起作用。质地完全消失(实际上茶壶是白色的)。我已经尝试过 GL_TEXTURE_2D_ARRAY、glActiveTexture 和其他一些看起来可能但没有结果的选项。

在筛选了对新旧 OpenGL 和 GLSL 的常见参考资料后,我得出的结论是,我可能需要glGetUniformLocation. 我究竟如何在 OpenGL cpp 文件中使用它来将已经填充的纹理句柄传递给片段着色器?

(这是作业,所以请用最少的代码片段(如果有的话)回答。谢谢!)

如果做不到这一点,有人有茶舒适网吗?

0 投票
2 回答
1483 浏览

opengl-es-2.0 - 使用与以前相同的值调用 glBindBuffer、glUseProgram 等是否效率低下?

我已经读过,在 OpenGL 2(尤其是 ES)中优化非透明对象的渲染顺序的最佳方法是将避免上下文更改(绑定不同的缓冲区、着色器程序等)优先于深度排序。

如果您使用已经绑定的缓冲区调用 glBindBuffer 或使用已经是当前程序的着色器程序调用 glUseProgram 等,它们是否仍会导致管道刷新效率低下,或者库是否足够聪明以将它们识别为 NOOP?如果我可以在需要的时候绑定所有内容,而不必跟踪已经绑定的内容并对其进行检查,它将使我的代码更简单。

0 投票
1 回答
986 浏览

opengl - OpenGL - ARB 扩展

我正在使用 MacBook Pro(13 英寸,2010 年中)并且使用 OpenGL。我注意到,库中缺少一些功能。我在互联网上找到了关于我的硬件的规范,上面写着:“支持 OpenGL 3.3 ”。这很奇怪,所以我打印了我的 OpenGL 版本,它是 2.1,不是 3.3!. (然后我发现,最新的 MacBook(2014 年)具有相同的 OpenGL 版本 2.1,WTF)

然后我差点从窗户跳下来。(JK)

我用一些扩展ARB搜索了一些关于 2.1 的内容,但是没有文档,没有用法,没有人使用它。谁能解释一下,那是什么?如何使用它?有什么区别?

我读过(如果我理解得好),而不是新的 OpenGL 3.X,有类似的 ARB 扩展。我希望,如果他们写入支持 3.3 版的规范,ARB 应该是相同的(至少相同的功能)。

如果有人向我解释发生了什么,我会很高兴。

问题:

我对 FBO 绘图的多样本纹理有疑问。它可以由glTexImage2DMultisample带有参数的函数创建GL_TEXTURE_2D_MULTISAMPLE。它来自 3.2 或更高版本。

那么我应该使用什么,或者使用 ARB 可以做到吗?

GL_ARB_multisample在图书馆找到的。那是什么?有什么用处吗?我在互联网上找到的所有功能都丢失了。有一些定义,例如GL_MULTISAMPLE_ARB在标题中。我试图通过glEnableGL_MULTISAMPLE也定义)启用它,它不起作用。

请帮我。:(

编辑:

如果您知道解决此问题的不同方法,我会很高兴。

原始问题: OpenGL - FBO 和 alpha 混合

0 投票
0 回答
1258 浏览

c++ - 让 OpenGL 将纹理渲染到屏幕上

我无法将图像纹理渲染到屏幕上。除了空白的黑屏,什么都没有显示,也没有明显的错误。我相信这个问题与glOrtho通话有关,但我不确定。

所有相关代码都包含在下面。(在初始化之后和第一次渲染调用之前调用 OnResize)

需要 OpenGL2.1 兼容性,以便以后添加着色器。硬编码到渲染器的纹理只是暂时的,我已经准备好一个纹理类,一旦我找出问题所在。

我想我可能在某个地方需要一个 FrameBuffer 对象?我发现的教程经常有很大的不同,并且通常针对 OGL3

编辑:好吧,我是个白痴,我实际上并没有画任何东西。我发现添加以下作品,在哪里// do stuff

这是最好的方法吗?

0 投票
1 回答
1155 浏览

c++ - 在 Opengl 2.x [C++] 中获取 ModelView 和投影矩阵

我知道 StackOverflow 充满了类似的问题(比如这个那个),但给出的解决方案似乎对我不起作用。我的目标是用来gluProject从 3D 空间中获取某个点的屏幕坐标。在此之前,我希望通过执行以下操作来获取矩阵:

知道这三个允许计算点的屏幕坐标。然而,当我调用这些函数时,我得到了奇怪的结果:

使用gluPerspective和生成矩阵gluLookAt。视口显然是正确的,但矩阵是错误的,不仅因为它们的值对我来说似乎不太正常,还因为值在矩阵元素之间的分布(参见 [1,2] 元素投影矩阵应该为零,但它不是,而 [3,3] 元素为零,它不应该)。

这些奇怪的值指向glGet()函数调用中的一些问题,但我想不通。我已经检查过我没有在andglGet()之间打电话。实际上,我在正确绘制一些点之后和使用相同的 ModelView 和 Projection 矩阵正确绘制一些球体之前调用。我的代码有一个更大的片段(调用序列是):glBegin()glEnd()glGet()main->CheckForPlanetPosition->Planet::GetScreenLocation

希望你这次能帮到我!提前感谢您的回答:)

0 投票
1 回答
339 浏览

glsl - Cubemap PCF:在给定点获取垂直于矢量的平面

我正在尝试为 OpenGL 2.0 中的阴影立方体贴图实现 PCF。我想我在这里找到了一个解决方案(搜索Percentage closer filtering (PCF) algorithm以找到立方体贴图 PCF 部分的开头),但代码依赖samplerCubeShadow于 OpenGL 2.0 中不可用的那个,所以我不能使用texture(samplerCubeShadow(), vec4())显示的调用页。

这个问题的第一部分是:有没有办法从samplerCubeOpenGL 2.0/GLSL 1.10 中检索相同的结果?通过使用 atextureCube或其他东西?

第二部分涉及我必须解决这个问题的想法。下图说明了我想做的事情。

光到顶点/平原

蓝色实线和红色虚线都是来自samplerCube存储我的深度值的一个面的向量。蓝线与黑色方块中心的深灰色方块的交点代表立方体的采样点。我想创建一个垂直于蓝色矢量的平面(由浅灰色矩形表示)。然后我想通过将 Z 向量从灯光位置(这些是红色虚线)投射到该平面上的 x、Y 值来从相机中采样 4 个黑点。之后,我将使用这些值与原始样本的值相结合来计算 PCF 阴影值。

这是为点光源/立方体贴图计算 PCF 的可行且有效的方法吗?我将如何创建平行平面,然后从中检索我需要的 X 和 Y 坐标?