我在某处读到有人打算创建一个类似于opengl的光栅引擎,以完全理解opengl的作用。
我的理解是你无法做到这一点,因为你的显卡上有opengl / directx,你不能用任何其他东西作为图形的核心。
我认为我的观点不正确,有人可以纠正吗?
答案 0 :(得分:1)
OpenGL是处理图形的标准方法。它不仅仅作为一个孤立的软件存在于显卡上。如果您的显卡具有OpenGL硬件加速功能,则意味着您的计算机可以将一些OpenGL命令发送到显卡并卸载CPU本来必须处理的工作 - 但这只是因为该卡已预先设计用于OpenGL标准。
如果您的卡上没有OpenGL硬件支持,则所有内容都必须通过主处理器发送,并且通常不是最佳选择。
实际上有很多OpenGL实现。有些是由ATI和NVidia等公司注入硬件的,它们提供了自己的opengl实现,用于将opengl处理转发到卡上。其他是基于软件的开源MESA。如果您运行的是不匹配的卡和游戏,如DirectX卡和OpenGL游戏,那么您可能需要使用纯软件实现进行渲染。
是的,纯软件实现是可能的,但不是最佳的。但是,如果您需要动态访问和操作较低级别的图形信息,有时需要软件实现。知道如何做到这一点是一项很棒的技能。
答案 1 :(得分:0)
您仍然可以在某些上下文中访问视频内存,并且可以执行blitting,这是栅格实现的核心。将自己的图形引擎编写为学习工具似乎是合理的,我甚至会说它很常见。在计算机科学课上,我们也将编译器编写为学习练习,即使知道它们也不符合商业实现。