如何在不使用DirectX或OpenGL的情况下渲染游戏?
How do you render a game without using DirectX or OpenGL?
例如在一些游戏中有3种不同的显示模式
- OpenGL
- 举 件>
这个软件模式是什么?就像,程序员如何使游戏引擎生成图像不使用OpenGL或DirectX有类在c++中生成帧?
软件的意思就是:软件。
所有的渲染都是通过某种算法对像素进行着色。该算法可以通过专用硬件完成,但您可以在实际代码中自己简单地实现这些函数。这并不意味着它特别快;实现一个具有良好速度的三角形光栅化需要大量的技巧。
软件模式有两种含义:
-
系统提供的仿真层。例如,DX11提供了WARP设备,作为应用程序程序员,您只需指定"我想使用WARP",其余的由DirectX完成。仿真层基本上执行选项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
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在未初始化映射的情况下,将值插入到映射的映射中
- 是默认情况下分配给char数组常量的值
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在已经使用Git的情况下减少编译时间
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 如何在没有信号的情况下从C++执行QML插槽
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 为什么在某些情况下不写入此文件?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- 在C++不适用于猜数字游戏的情况下再次播放选项
- 如何在没有现有引擎的情况下在游戏中设计我的事件触发器框架?
- 在不暂停贪吃蛇游戏的情况下获取输入
- 我不能在不使用指针的情况下返回 2d 数组!我正在制作一个井字游戏类型游戏,这是我的向上移动功能
- 允许人们在没有端口转发的情况下主持自己的多人游戏
- 如何在不使用DirectX或OpenGL的情况下渲染游戏?
- 如何在没有平铺地图的情况下使用Cocos2D制作滚动游戏