【发布时间】:2013-12-04 13:23:52
【问题描述】:
我是 OpenGL3 的新手,现在我正在考虑迁移到 OpenGL3 并移植我的旧代码。我开始阅读昨天在网上找到的一些教程。我已经有使用旧 OpenGL 的经验。令我震惊的是,我所知道的几乎所有内容都已从核心中弃用/删除/销毁。
所以我需要一些指针来理解新架构。
我需要将顶点缓冲区传递给图形硬件,它会更快,没关系。但是从这一点开始,教程将继续编写和编译 GLSL 着色器。这是否意味着从现在开始我需要着色器来完成(以前)最简单的任务并处理所有血淋淋的细节?例如。绘制一个 gouraud 阴影三角形,但确保它的透视渲染正确(片段着色器)。或者自己进行透视变换(顶点“着色”)。
我以前从未编写过着色器或使用过任何高级渲染。所以现在是学习 GLSL 的时候了……
代码可以在旧电脑上运行吗?我的第一台电脑用了 9 年(2004 年购买)并且仍在工作,那个时代的许多 3D 游戏都可以正常运行... OpenGL3 是否需要现代硬件?
【问题讨论】:
-
好吧,glsl 最初是与 ogl 2 一起发布的,所以很多计算机都支持这些版本。但是您不会拥有该语言的最新功能。我建议你专注于学习你的电脑支持的最新版本,然后担心便携性。
-
OpenGL 2.0 于 2004 年发布,如果我没记错的话,它支持着色器的 ARB 扩展。虽然我的猜测是今天(2009 年,4 年前)至少大多数计算机都支持 OpenGL 3.2 也像 @AntonD 所说的学习并专注于新东西。为什么?因为在已经知道新东西的情况下学习旧东西要容易得多。反过来做可能最终会困难得多。
-
是的,你当然可以。有用于此目的的兼容性配置文件。但是,GL3 及更高版本中的大量新功能仅适用于和/或只能在着色器中使用。 GL3 通常需要 DX10 类硬件,即使某些 DX10 的东西直到 GL4 才被提升为核心 GL,并且 GL3 中的某些功能不需要 DX10 硬件。您的 2004 年硬件不太可能符合要求,原因可能是供应商对在旧硬件上支持新版本的 OpenGL 缺乏兴趣,或者确实缺乏硬件功能支持。