问题标签 [opengl-3]
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.
opengl - 我们如何获得 glDrawElements() 的索引?
我正在尝试使用 Assimp 库将模型导入使用 VBO 的基本 OpenGL 应用程序。
如果我理解正确,glDrawElements 是一种理想的现代绘画方式。
但是我们如何从通用导入库中获取这些信息呢?
如果您有特定的 Assimp 库知识,我们将不胜感激。
--
生成这些的一般过程是什么?
opengl - OpenGL 中关于核心配置文件 330 上的顶点着色器和输入顶点的特殊行为
在 NVIDIA 上使用“#version 330 core”,
通过使用 glBindAttribLocation(program, 0, "in_Vertex"); 输入顶点与“in vec4 in_Vertex;”一起使用。但是,我注意到客户端应用程序中没有 OGL 函数调用,它仍然有效。它似乎是“默认的第一个输入变量”。为什么?它应该被省略还是通过 glBindAttribLocation 显式连接到它?[根据标准,理想是什么?] 还有“in vec4 gl_Vertex;” 在规范将其称为已弃用并且着色器的编译器不会发出任何警告时工作。为什么?我本来希望它至少会发出警告。我猜最后一个问题可能是编译器(GLSL 编译器)中的一个错误,但第一个问题尤其令人费解。
opengl - 现代 OpenGL 颜色
我注意到旧代码具有 glMaterialfv 的 GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR 等输入。这些在现代 GLSL 代码中是如何替换的?
例如,假设一个库导入模型(Assimp)为这些颜色类别提供了直接值,它们是否仍然可以直接使用(在核心上下文中)?
opengl - 每个 BindBuffer 之后是否需要 VertexAttribPointer?
我注意到除非我重新调用 VertexAttribPointer,否则在 BindBuffer 之后没有着色器的输入。那有必要吗?着色器可能不会在写入时更改,而只会更改使用的缓冲区。
opengl - 如何在现代 OpenGL 中进行光线追踪?
所以我现在应该开始为我的单色模型照明。测试应用程序是仅用于实现最新方法的测试用例,因此我意识到理想情况下它应该实现光线追踪(因为理论上,它可能在几年内成为实时图形的理想选择)。
但是我从哪里开始呢?
假设我从来没有在旧的 OpenGL 中做过光照,所以我会直接使用非弃用的方法。
该应用程序当前已正确设置顶点缓冲区对象、顶点、法线和颜色输入,并且它正确地在空间中以平面颜色绘制和转换模型。
是否有一个信息来源可以从平面彩色顶点到通过 GLSL 获得正确最终结果所需的所有信息?理想情况下,与可能需要补充它的任何其他附加照明方法一起使用。
opengl - GLSL 是否使用 SLI?有 OpenCL 吗?多 GPU 的 GLSL 或 OpenCL 哪个更好?
OpenGL 的 GLSL 在多大程度上利用了 SLI 设置?它是在执行时使用还是仅用于最终渲染?
同样,我知道 OpenCL 与 SLI 不同,但假设一个有多个 GPU,它在多处理方面与 GLSL 相比如何?
由于它可能取决于应用程序,例如常见转换或光线追踪,您能否提供有关不同应用程序类型差异的见解?
cygwin - 在 cygwin 下构建 gl3 应用
我有一个使用标准 gnu 工具(gmake/gcc)在 linux 上开发的小型 opengl 3.2 应用程序。代码看起来很便携——在我开始使用 mac mini gl 驱动程序似乎不支持的 gl3 功能之前,我在 osx 上运行它没有问题。我在同一个 mini 上有一个带有 windows xp 的 bootcamp 分区,如果可能的话,我想在那里运行我的应用程序。
Windows 驱动程序肯定支持 gl 3.2,但我无法链接。这似乎是一个非常普遍的问题,但我没有在网上找到任何在cygwin下使用opengl > 1.2解决的答案。我正在使用 glew-1.5.5 并像这样链接:
g++ -o glToy *.o -L/cygdrive/c/Program\ Files/glew-1.5.5/lib -lglew32 -lglut32 -lglu32 -lopengl32
但我得到了很多这样的输出:
任何想法我做错了什么?或者这不是一个可行的设置?在 mac mini(2009 版)上进行此操作的其他想法?谢谢!
opengl - 现代 OpenGL 中的 gl_LightSource[0].position.xyz
我是初学者。我注意到旧代码
我认为这是动态变化的,因此不能仅使用静态 vec3 对其进行测试。
如何在现代 OpenGL 中替换上述内容?一个例子将不胜感激。
opengl - 现代 GLSL 中的每像素照明?
我正在寻找一个适当的简单示例。
现在我有一些基于教程的东西,但我没有看到三角形中间的变化。看起来每个三角形都会改变颜色,但只是整体改变。
..在顶点着色器上。
和
在片段着色器上:
但正如我所说,每个三角形似乎都是纯色(仅整体变化)。
我听说规范化可能会起作用,但如果我 normalize() vertex_normal 它是相同的结果。
opengl - 现代 OpenGL 中的 gl_ModelViewMatrix 和 gl_ModelViewProjectionMatrix 是什么?
我有这段代码,它是上下文“#version 330 core”
哪一部分是旧的gl_ModelViewMatrix,哪一部分是gl_ModelViewProjectionMatrix?(用于创建 ModelViewProjection 的 gl_ProjectionMatrix 是什么?)