OpenGL vs OGRE:哪个是最适合初学者的?[关闭]


10

我对游戏开发感兴趣,并且具备良好的C / C ++编程技能。我之前尝试过OGRE,但很好奇我是否应该以OGRE或OpenGL为起点。

据我了解,OGRE是OpenGL和DirectX的包装。那么,假设我学习OGRE,是否还需要学习OpenGL来开发游戏?

另外,有人可以为我指出OpenGL的好教程吗?我发现OGRE有充分的文档记录(甚至随发行版一起提供!),但对于OpenGL,我上来的大多数教程都是过时的。


如果您是3D图形编程的新手,我将尝试了解低级API首先运行的方式(OpenGL或D3D,这并不重要),然后切换到现成的图形引擎,例如作为OGRE,因此您可以专注于应用程序/游戏,而不是渲染引擎的设计/开发。
drxzcl 2011年

1
我会先选择2D,而不是3D。
共产党鸭子

1
大多数2D不仅是“没有Y的3D”,而且有自己的习惯用法和入门技巧,我不确定进入2D方面是否已经对具有“良好c / c ++”的人有好处。
帕特里克·休斯

为什么这个问题没有建设性?
Songbreaker 2014年

Answers:


13

Ogre确实是OpenGL的包装器,但是这种包装器的想法是您不必担心OpenGL的复杂性。当然,这对了解OpenGL有一定帮助,但是Ogre会为您隐藏很多丑陋的细节。

我想说Ogre可以说比OpenGL更容易学习,或者至少可以更快地获得有趣的结果。当然,如果值得学习OpenGL,则完全取决于您要进行的评估。

关于OpenGL教程,是的,其中大多数都是相当过时的,但是规范并没有很快发展,因此许多旧教程仍然适用于大多数OpenGL。

我的一些最爱:


28
请停止派人去NeHe。这些教程很好,但是令人难以置信的过时了。OpenGL 1.x的时代已经一去不复返了,让我们尽量避免削弱下一代图形程序员!
drxzcl 2011年

5
见“的前奏,以现代的OpenGL”:duriansoftware.com/joe/...
drxzcl

1
@Ranieri我绝对非常非常同意。该站点多年来一直保持不变,并且由于OpenGL在过去几年中发生了巨大变化,因此确实不建议使用。@Songbreaker请注意这一点,并考虑避免使用NeHe的教程,或者至少将它们与一小撮盐混合。固定管道早已一去不复返了。
Ricket

1
@ Ranieri,@ Ricket我绝对非常不同意。考虑一个完全不熟悉图形编程的初学者的OpenGL 4.x的学习曲线,并且他们在没有任何指导的情况下可以自由地使用SDK。OpenGL 4.x的文档如何?有关更多详细信息,请参见我的帖子。
Andrew Rasmussen

4
@Songbreaker:我尝试。我让你来决定他们是否好。
Nicol Bolas

17

OpenGL!是的,到目前为止,我公开不同意董事会中的每个人。

OGRE一团糟。学习曲线陡峭。是的,他们有一些不错的教程,但是要走出教程的界限,做自己的事非常困难。我希望花三周的时间来设置OGRE并开始工作,完成教程并弄清楚下一步该怎么做。关于OGRE,没有什么比OpenGL更好或更简单的了。如果您像声称的那样是一名优秀的C程序员,并且了解指针/数组/函数,那么OpenGL将同样容易,即使不是那么容易。

这就是为什么我强烈建议从OpenGL开始的原因。OpenGL将迫使您学习图形的所有基础知识。有趣的是,您实际上将意识到他们在后台发生了什么。是的,从NeHe的教程开始。是的,它们是1.x,这已经过时了(Ranieri,这是给您的),但是跳入OpenGL 4.x的学习曲线太陡了。

从1.x(glBegin,glEnd)中的立即模式开始,然后了解顶点数组。如果需要,可以玩显示列表来学习。然后移向顶点缓冲区对象。然后了解着色器。这些过渡中的每一个都非常容易,并且在线上有很多很棒的教程。VBO位于4.1的核心,因此,当您到达那里时,您将不再学习过时的资料,而从1.x的东西开始要容易得多。

另外,如果您想从事游戏开发事业,没有人会雇用您,因为您可以使多维数据集在现成的库中旋转。他们之所以雇用您,是因为您了解可能发生的最低水平的事情,并且可以基于这些宝贵的知识来做出设计决策。

参考文献:我在那里。我在OGRE上花费了一个月,一个星期尝试了Irrlicht,一个星期尝试了Horde3d,两天使用DirectX,一个月使用OpenGL。在使用OGRE一个月之后,我几乎超出了教程的范围。在使用OpenGL的一个月后,我有一个角色运行在《我的世界》世界中,以700+帧频渲染每帧260,000个纹理立方体。


我不同意你的陈述,也认为你所经历的经历没有任何意义。Ogre和OGL都要求您具有如何与图形卡对话的基本知识,这并不意味着您必须了解OGL或DX,但基本上您必须知道它们可以做什么。在这一点上,Ogre添加了一个图层,初学者需要花费数月的时间才能正确设置该图层,而您在一个月内设置的示例将看不到该图层。知道OGL总是很高兴,但是由于您的经验而将Ogre解雇并不意味着任何事情。
克莱姆

1
不,OGRE并不真正要求您知道如何与图形卡对话-这就是重点。此外,OGRE不仅是图形API的包装器,还是场景管理器,模型加载器等
。– Jarrett

5

简短的答案?食人魔

渴望的答案?OGRE是OpenGL的包装器,因此您要做的工作要少得多。您不必担心将数据发送到GPU或绑定着色器,或在较低级别上整理顶点。使用OGRE比使用OpenGL进行生产要快得多,而且您的代码也可能(非常有限地)更快。

如果您对引擎开发感兴趣,请使用GL。否则,请使用OGRE。而且我可能还是从OGRE开始。


3

游戏开发不需要知道计算机图形硬件。它需要成为图形程序员或游戏公司的渲染开发团队的一部分(个人说明:这是整个游戏开发中最大的乐趣:)。

如果您不希望成为渲染工程师,则可能不需要学习整个openGL或DX即可开发游戏。


2

我认为这对初学者都不是最好的选择,但是“最佳”则是一个相对术语,取决于您究竟想获得什么。例如,如果您想要学习3D图形编程以获取可以用来当游戏公司的3D图形程序员的工作的技能,那么这些选择就很有意义。出于这个目标,您可能还会关注DirectX。

但是,如果您有其他目标,那么我建议您考虑其他选择。对于初学者,虽然从您的问题出发,您会假设您想以程序员的身份参与游戏开发,但实际上并没有具体说明。无论是用OpenGL编写图形引擎还是在Ogre之上构建,都绝对适合硬核程序员。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.