问题标签 [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.
c++ - OpenGL 3.2 核心配置指南
任何人都可以建议学习 OpenGL 3.2 核心配置文件的指南吗?
SDK很难阅读,而且我看到的大多数指南都只教授旧方法。
opengl - 用于理解 OpenGL 中的视图、投影、“虚拟相机”或一般图形的资源
我注意到大多数资源要么假设你已经知道很多,要么假设你知道专业水平的数学,或者假设你会找到其他资源来填补空白。
有没有一种资源可以让没有图形视图矩阵知识的人充分了解如何
- 设置“虚拟相机”
- 移动对象
- 移动观察者
- 等等
如果它在 OpenGL 上,那将是理想的。
请注意,我对 OpenGL 中的自动方式不感兴趣,因为
- 它们在最新版本的规范中已被弃用和删除,必须手动设置它们
- 那不是理解。
opengl - 旧笔记本电脑硬件上的 OpenGL-3 编程
我有兴趣做一些针对 OpenGL 3 的初始开发。不幸的是,我的硬件已经过时了大约 6 年,而且看起来 ATI 没有为我的视频卡提供任何支持较新的 OpenGL API 的驱动程序。
是否有任何 OpenGL 3 API 的软件实现?我知道性能可能会非常缓慢,但这足以让我坚持下去,直到我可以购买一台新笔记本电脑:)
opengl - 如何在 OpenTK(.Glu.Cylinder) 中绘制圆柱体?
如何在 OpenTK 中使用 OpenGL 绘制圆柱体?
opengl - OpenGL 3、OpenGL 4 实现中的已知错误
正如我们最终都知道的那样,规范是一回事,实现是另一回事。大多数错误是我们自己造成的,但有时情况并非如此。
我相信列出以下内容会很有用:
GPU 驱动程序中当前已知的与最新版本的 OpenGL 和 GLSL 的实现有关的错误是什么?
请记住始终张贴相关的显卡和驱动程序版本。
opengl - OpenGL 3.x:使用顶点缓冲区对象和 glDrawElements(...) 时的访问冲突
我无法使用顶点缓冲区对象渲染一些几何图形。我打算画一个点平面,所以基本上在我空间的每个离散位置都有一个顶点。但是,我无法渲染该平面,因为每次调用 glDrawElements(...) 时,应用程序都会崩溃并返回访问冲突异常。我猜初始化时一定有一些错误。
这是我到目前为止所拥有的:
opengl - 我在哪里可以找到不使用任何已弃用功能的优秀在线 OpenGL 3.0 教程?
我刚刚购买了第五版 OpenGL SuperBible。我很高兴他们避免使用已弃用的功能,但他们的示例使用GLTools
. GLTools
提供了一系列有用的函数来渲染简单的 3D 对象和管理视锥体、相机和变换矩阵。
这一切都很好,但是提供的抽象隐藏了低级细节,而且我很难转移到我无法使用的代码GLTools
——例如,pyopengl
. 我在网上看到的绝大多数教程都使用即时模式,我试图避免这种模式。那些使用glDrawArrays
的人使用glEnableClientState
,我也试图避免。
我正在寻找的是完全兼容 OpenGL 3.x 的介绍性教程。如果这个订单太高,也许一份洗衣清单好的“起点”功能就可以了。
opengl - 现代 OpenGL 着色器应该如何编写才能相互兼容?
在花哨的 OpenGL 新版本(3.0 和 4.0 以上)中,不推荐使用 gl_Vertex 等内置顶点属性。实际渲染任何东西的“新方法”是为位置、颜色等指定您自己的顶点属性,然后将这些自定义属性绑定到缓冲区。
我的问题是:如何在不紧密耦合渲染代码和着色器的情况下做到这一点?如果我编写一个使用“位置”作为顶点位置的着色器,则使用着色器的主机代码必须知道这一点并将顶点数据作为“位置”传递。如果我想使用一个不同的着色器来获取“vertex_pos”中的顶点数据,我必须先重写该着色器,或者修改我的主机代码以将顶点数据作为“vertex_pos”发送。
是否有一组所有着色器都应该使用的标准顶点和片段属性的最佳实践名称?或者是否存在特定于引擎的巴尔干化标准,这样为一个引擎编写的着色器在不修改的情况下无法在另一个引擎上工作?还是根本没有标准,这样,通常每个对象都需要自己的自定义渲染代码来匹配其自定义着色器?
.net - OpenGL 3 和 Radeon HD 4850x2
前段时间,我拿起一本 OpenGL SuperBible 第五版的副本,在从学校回来的时候习惯了 1.0 的方式之后,慢慢而痛苦地开始自学 OpenGL 3.3 的方式。让事情变得更具挑战性,我主要是一名 .NET 开发人员,所以我在 Mono 中使用 OpenTK OpenGL 包装器工作。在我的笔记本电脑上,我编写了一个程序,让用户使用几个着色器在简单的风景中走动,这些着色器实现了每个顶点的着色、照明和纹理映射。在我在桌面上运行相同的程序之前,一切都运行良好。
灾难!什么都不会渲染!我已经将我的程序削减到相机位于原点附近的点,指向原点,并渲染一个正方形(从技术上讲,一个三角形扇形)。四边形在我的笔记本电脑上完美呈现,着色、照明、纹理等等,但桌面呈现一个小的扭曲的非方形四边形,颜色不正确,不受灯光影响,也没有纹理。
我怀疑显卡有问题,因为无论我启动到 Ubuntu 10.10 还是 Win XP,我都会得到相同的结果。我确实发现,如果我将顶点着色器缩减为仅输出位置数据,将片段着色器缩减为仅输出纯色(白色),则四边形渲染正确。但是,一旦我开始传入颜色数据(无论我是否在片段着色器中使用它),顶点着色器的输出就会再次失真。着色器紧随其后。我留下了预先存在的代码,但注释掉了,这样你就可以知道我在做什么。我是 glsl 的菜鸟,所以代码可能会好很多。
我的笔记本电脑是旧的 lenovo T61p,带有 Centrino (Core 2) Duo 和运行 Ubuntu 10.10 的 nVidia Quadro 显卡 我的台式机有 i7 和 Saphire 双启动到 Ubuntu 10.10 的 Radeon HD 4850 x2(单卡,双 GPU)和视窗XP。XP 和 Ubuntu 都会出现此问题。
任何人都可以看到我遗漏的错误吗?我的 HD 4850x2 有什么“特别”之处?
请注意,在此代码中,颜色数据被接受但并未实际使用。无论片段着色器是否使用可变颜色,几何体的输出都是相同的(错误的)。只有当我注释掉该行时varyingColor = in_color;
,几何输出才会正确。最初着色器采用 vec3 输入,我只在故障排除时将它们修改为采用 vec4。
opengl - 我应该使用某种引擎还是从头开始?
我想学习如何制作很酷的图形,比如灯光、阴影、水等等。我也想最终把它变成一个游戏。不过,创建游戏是排在第二位的,我真的很想首先专注于制作好的图形。
那么无论如何,这样做的最佳方法是什么?我想使用 OpenGL 3.0+,因为我不喜欢使用过时的东西,而且我必须能够在 linux 和 Windows 7 之间传输相同的代码并让它在不改变任何东西的情况下运行。
到目前为止,我一直在尝试从头开始,但我似乎找不到创建跨平台的最新 OpenGL 3.0+ 上下文的好方法。我一直在搜索并尝试 SDL 之类的东西来帮助更加独立于平台,但我发现 Windows 上的几乎所有东西都有不同于 Linux 的版本,所以几乎不可能在不做重要工作的情况下使其跨平台代码更改。
于是我开始考虑使用某种引擎。我不太确定我在寻找什么引擎,但我希望我能够找到一个可以轻松跨平台使用相同代码的引擎。我在考虑使用 OGRE,但它似乎为你处理了所有的东西,比如光照和阴影。是否有任何其他类型的引擎可以让我专注于制作酷炫的图形,同时独立于平台?
有人对我应该做什么或使用什么有任何建议吗?