如何在不使用DirectX或OpenGL的情况下渲染游戏?

How do you render a game without using DirectX or OpenGL?

本文关键字:情况下 游戏 OpenGL DirectX      更新时间:2023-10-16

例如在一些游戏中有3种不同的显示模式

  1. OpenGL
  2. 件>

这个软件模式是什么?就像,程序员如何使游戏引擎生成图像不使用OpenGL或DirectX有类在c++中生成帧?

软件的意思就是:软件。

所有的渲染都是通过某种算法对像素进行着色。该算法可以通过专用硬件完成,但您可以在实际代码中自己简单地实现这些函数。这并不意味着它特别快;实现一个具有良好速度的三角形光栅化需要大量的技巧。

软件模式有两种含义:

  1. 系统提供的仿真层。例如,DX11提供了WARP设备,作为应用程序程序员,您只需指定"我想使用WARP",其余的由DirectX完成。仿真层基本上执行选项2:

  2. 手工完成。基本上,硬件加速的gfx卡只能绘制三角形。您可以编写一个函数,将纹理三角形的像素直接绘制到显卡的屏幕内存中。现在它不是很快(这就是为什么硬件加速的gfx卡存在的原因),但这是在80年代和90年代实现的,当时还没有这样的卡。

对于纹理映射器如何工作的粗略示例,请查看维基百科文章:https://en.wikipedia.org/wiki/Texture_mapping

我不知道有任何gfx-lib提供自己的软件层,但我确信它们存在于某个地方。

作为一个例子,directx有一个分层的设置,有代码接口,它与HAL或硬件抽象层交互。根据底层硬件的能力,HAL可能会在CPU上运行一些代码,因为驱动程序报告GPU不支持该功能。(是的,我知道这有点过于简单化了)

见:http://msdn.microsoft.com/en-us/library/gg426101 (v = vs.85) . aspx

: http://www.codeproject.com/KB/graphics/DirectX_Lessons_2_.aspx