问题标签 [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.
c++ - 如何使用顶点缓冲区(OpenGL 4+)绘制 SDL_Texture(SDL 2)?
我试图找到一些代码,但发现只是过时的。我只制作了 verts & indices 数组(希望它们是正确的):
下一个是什么?我需要一些 SDL 2 和 OpenGL 4+ 的代码。也可以接受新的想法。
opengl - SSBO 和图像加载/存储之间的区别
“着色器存储缓冲区对象”(SSBO)和图像加载存储操作之间有什么区别
什么时候应该使用一个而不是另一个?
它们都可以进行原子操作,我假设它们存储在相同类型的内存中。而且无论它们是否存储在相同类型的内存中,它们是否具有相同的性能特征?
编辑:最初的问题是在 SSBO 和统一缓冲区对象之间询问,它是在 SSBO 和图像加载存储之间。
c++ - 如何在 3d 场景中旋转单个对象?
我想在 3d 场景中旋转一个对象。在下面的代码中,我只是旋转了 WorldMatrix。但是如果场景包含 2 个对象而不是 1 个呢?如果我旋转 WorldMatrix 两者都会旋转(以一种奇怪的方式)。我应该如何在不改变任何其他模型的情况下旋转场景中的单个对象?
c++ - OpenGL SuperBible 第 6 版,缺少头文件 sb6.h
最近我开始学习 OpenGL 和;反过来,开始阅读OpenGL SuperBible 6th edition,它使用了OpenGL 4.3。
我的问题出在 sb6.h 头文件中,因为在书中写到这是一个 c++ 头文件,它定义了一个名为 sb6 的命名空间,其中包括应用程序类的声明。
当我尝试编译我的程序时,我的 C++ IDE(Visual Studio 2010) 会抛出一个错误,指出找不到这样的头文件。
所以也许你们当中有人听说过这个问题,或者也开始阅读这本书并且知道如何解决这个问题;如果是,请回复。
opengl - 将 OpenGL 2.0 与现代 OpenGL 混合
是否可以在一个程序中同时使用新旧 OpenGL?假设我已经理解了差异。
在我的程序中,我使用过:
但例如,我可以使用包含此的函数来绘制网格吗:(旧)
还有一个像这样的函数,用于纹理和渲染一些东西:(新)
还是使用使用vao
/的较新版本会使vbo
包含glBegin
/的函数glEnd
过时?
我希望这是有道理的。请原谅天真。
opengl - OpenGL 4.0++ 核心配置文件中固定功能管道的属性位置是什么?
我想知道nVidia OpenGL 驱动程序的固定管道(未附加着色器)内的属性位置:
根据经验,我找到了顶点和原色位置,但仍然会很高兴了解它们。
如果您想知道原因,那么出于兼容性原因,甚至出于GLSL调试(只是为了查看当着色器尚未工作时我是否将正确的数据传递到正确的位置)等等......
opengl - OpenGL - GLenum 如何是无符号的 32 位整数?
首先,OpenGL 中有 8 种类型的缓冲区对象:
- GL_ARRAY_BUFFER</li>
- GL_ELEMENT_ARRAY_BUFFER</li>
- GL_COPY_READ_BUFFER
- ...
它们是枚举,或者更具体地说是 GLenum 的。其中 GLenum 是一个无符号的 32 位整数,可以说它的值高达 ~ 4,743,222,432。
缓冲区对象的大多数用途涉及将它们绑定到某个目标,如下所示:例如
glBindBuffer (GL_ARRAY_BUFFER, 缓冲区 [大小]);
[void glBindBuffer(GLenum 目标,GLuint 缓冲区)] 文档
我的问题是 - 如果它是一个枚举,它的唯一值必须分别是 0,1,2,3,4..7 那么如果它只有高达 7 的值,为什么要一直让它成为一个 32 位整数呢?请原谅我对 CS 和 OpenGL 的了解,这似乎是不道德的。
opengl - 我可以在没有显卡或 MESA 的情况下在我的计算机上编程/编译 OpenGL 4.0 代码吗?
我最近开始使用 Redbook 第 8 版使用 Open GL 4.0。从早上到现在,我无法编译 OpenGL 程序的“HelloWorld”。
我配置了依赖项,将 freeGlut/GLEW/GLSL 的文件内容传输到我的 VS 2013 C++ IDE 的相应 VC 文件夹中。我最终确信,这种事件崩溃的催化剂发生了,因为 VS 引用了不同位置的多个 lib 文件,并且链接器无法对它所引用的内容进行正面连接。
然而,我意识到另一个我天真/无知的问题。我会不会因为我的依赖配置而遇到编译问题,而是因为我只有一个内置的芯片组而不是一个卡并且没有 MESA?
我不知道我的内置芯片组是否支持openGL 4.0
英特尔(R) 高清显卡 4000
编辑:我在 VS 2013 中的编译错误没有给出任何“线索”表明它是硬件问题。所有这些都是LNK2005问题。
opengl - Haskell OpenGL 程序生成
我正在尝试使用 Haskell 以程序方式生成给定宽度的三角方形地形,以提供给 OpenGL。
唯一实际程序生成的是高度,这一点也不难,我只是使用随机函数创建一个[[GLfloat]]
,表示高度的行。
然后我还有一个函数,heightsToCoords
它接受[[GLfloat]]
并返回[GLfloat]
包含每个顶点的 x、y 和 z 坐标的 a。
所以如果我打电话heightsToCoords [[0, 1], [1, 0]]
,它会返回
我遇到的问题是将数据获取到 OpenGL。OpenGL 需要对每个面进行三角剖分(至少在我的设置中),而我所拥有的只是点,我不确定如何创建面。
如何将这些数据从点列表转换为人脸列表?忽略法线和顶点的顺序。
opengl - 是否有将纹理重置为纯色的 OpenGL 函数?
有没有办法用纯色初始化或重置 OpenGL 纹理?我可以使用最高 OpenGL 4.0 的功能,因为我想支持笔记本的 Intel HD Graphics 4000。