例如在某些游戏中有3种不同的显示模式
这是什么软件模式?比如,程序员如何制作不使用OpenGL或DirectX生成图像的游戏引擎C ++中是否有生成帧的类?
答案 0 :(得分:8)
软件就是指:软件。
所有渲染都是通过某种算法着色像素。该算法可以通过专用硬件完成,但您可以在实际代码中自行实现这些功能。现在,这并不意味着它特别快;实现具有良好速度的三角形光栅化器需要很多技巧。
答案 1 :(得分:1)
软件模式可能意味着两件事:
系统提供的仿真层。例如,DX11提供WARP设备,作为应用程序员,您只需指定“我想使用WARP”,其余部分由DirectX完成。仿真层基本上执行选项2:
手工完成。本质上,硬件加速的GFX卡主要只绘制三角形。您可以编写一个函数,将纹理三角形的像素直接绘制到图形卡的屏幕内存中。现在它不是很快(这就是为什么硬件加速的gfx卡存在的原因),但这就是80年代和90年代没有这样的卡存在的方式。
粗略地说明纹理贴图的工作原理只需查看wikpedia文章:https://en.wikipedia.org/wiki/Texture_mapping
我不知道任何提供自己软件层的gfx-libs,但我确定它们存在于某个地方。
答案 2 :(得分:0)
作为一个例子,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