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

Graphics 创建自己的光栅引擎意味着什么?,graphics,render,raster,Graphics,Render,Raster,我在某个地方读到,有人打算创建一个类似于opengl的光栅引擎,以完全理解opengl的功能 据我所知,您不能这样做,因为您的图形卡上有opengl/directx,并且您不能使用其他任何东西作为图形的核心 我认为我的观点是不正确的,有人能纠正它吗?在某些环境下,您仍然可以访问视频内存,并可以执行blitting,这是光栅实现的核心。编写自己的图形引擎作为一种学习工具似乎是可行的,我甚至可以说它相当普遍。在计算机科学课程中,我们也将编写编译器作为学习练习,即使知道它们无法与商业实现相匹配。您仍然

我在某个地方读到,有人打算创建一个类似于opengl的光栅引擎,以完全理解opengl的功能

据我所知,您不能这样做,因为您的图形卡上有opengl/directx,并且您不能使用其他任何东西作为图形的核心


我认为我的观点是不正确的,有人能纠正它吗?

在某些环境下,您仍然可以访问视频内存,并可以执行blitting,这是光栅实现的核心。编写自己的图形引擎作为一种学习工具似乎是可行的,我甚至可以说它相当普遍。在计算机科学课程中,我们也将编写编译器作为学习练习,即使知道它们无法与商业实现相匹配。

您仍然可以在特定环境下访问视频内存,并可以执行blitting,这是光栅实现的核心。编写自己的图形引擎作为一种学习工具似乎是可行的,我甚至可以说它相当普遍。在计算机科学课程中,我们也将编写编译器作为学习练习,即使知道它们无法与商业实现相匹配。

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

如果您的卡上没有OpenGL硬件支持,那么所有内容都必须通过主处理器发送,这通常不是最优的

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


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

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

如果您的卡上没有OpenGL硬件支持,那么所有内容都必须通过主处理器发送,这通常不是最优的

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

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