创建自己的光栅引擎意味着什么?

时间:2013-02-10 04:19:01

标签: graphics render raster

我在某处读到有人打算创建一个类似于opengl的光栅引擎,以完全理解opengl的作用。

我的理解是你无法做到这一点,因为你的显卡上有opengl / directx,你不能用任何其他东西作为图形的核心。

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

2 个答案:

答案 0 :(得分:1)

OpenGL是处理图形的标准方法。它不仅仅作为一个孤立的软件存在于显卡上。如果您的显卡具有OpenGL硬件加速功能,则意味着您的计算机可以将一些OpenGL命令发送到显卡并卸载CPU本来必须处理的工作 - 但这只是因为该卡已预先设计用于OpenGL标准。

如果您的卡上没有OpenGL硬件支持,则所有内容都必须通过主处理器发送,并且通常不是最佳选择。

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

是的,纯软件实现是可能的,但不是最佳的。但是,如果您需要动态访问和操作较低级别的图形信息,有时需要软件实现。知道如何做到这一点是一项很棒的技能。

答案 1 :(得分:0)

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