2013-02-10 77 views
1

我在某个地方看到有人打算创建一个类似于opengl的光栅引擎来充分理解opengl的作用。创建您自己的光栅引擎是什么意思?

这是我的理解,你不能这样做,因为你的显卡上有opengl/directx,你不能使用任何其他的图形核心。

我认为我的观点不正确,但有人可以纠正它吗?

回答

1

OpenGL是一种处理图形的标准方式。它并不是单独作为一个独立的软件生活在显卡上。如果你的图形卡具有OpenGL硬件加速功能,这意味着你的计算机可以将一些OpenGL命令发送给图形卡,并卸载CPU必须处理的工作 - 但仅仅是因为该卡已经预先设计用于OpenGL标准。

如果你没有你的卡上OpenGL硬件支持,一切都必须通过您的主处理器发送,通常不是最佳的。

实际上有许多OpenGL的实现。有些是由ATI和NVidia等公司硬件注入的,他们提供了自己的opengl实现来将opengl处理转发给卡。其他人则是基于开源MESA的软件。如果您运行的是不匹配的卡和游戏,比如DirectX卡和OpenGL游戏,那么您可能需要使用纯软件实现进行渲染。

所以,一个纯粹的软件实现是可能的,但不是最优的。但有时候,如果您需要访问和操纵底层图形信息,则需要软件实现。知道如何做到这一点是一项非常棒的技能。

0

您仍然可以在某些上下文中访问视频内存,并且可以执行blitting,这是光栅实现的核心。编写自己的图形引擎作为学习工具是合理的,我甚至会说它很常见。在计算机科学课上,我们也编写了编译器作为学习练习,即使知道它们不符合商业实现。