什么是渲染器?
渲染器(Renderer)是游戏引擎中最核心的子系统之一,它负责将游戏世界中的数据(模型、纹理、光照、摄像机等)转换为最终呈现在屏幕上的图像。
渲染器是引擎中负责图形绘制的模块,它接收渲染命令和资源数据(顶点、纹理、Shader 等),并调用 OpenGL/D3D/Vulkan 等图形 API,绘制出画面。
可以将它理解为:一种中间层 —— 把游戏世界的逻辑状态翻译为 GPU 可执行的图形操作。
图形API
每种API都有不同的设计哲学、平台支持、性能表现与学习曲线。
目前的主流图形API有:OpenGL, Vulkan, DirectX 12, Metal, WebGPU等,对于个人引擎开发而言,尽管OpenGL的框架较为陈旧,但由于其较为简单,所以将被优先应用于本引擎。
但是对于大型商业游戏引擎而言,仅支持一个图形接口是不够的,因为它要面向多种平台使用,而不同的平台所使用的图形接口也不同,所以一个图形抽象层对于游戏引擎至关重要。
渲染接口
问题:在编译时还是运行时选择渲染接口?
(1) 编译时选择渲染接口(Compile-Time Selection)
优点:
性能最佳:
代码结构清晰:
可剔除无用代码:
(2) 运行时
渲染上下文
交互式
物理
实时渲染
并行处理
渲染接口
为什么使用OpenGL:允许访问显卡并使用,是最简单的接口
vlukan:交换链
一个显卡接口是不够的,不同的平台有不同的接口
抽象层:设计一个接口抽象,将所有实际的渲染接口类隐藏在抽象中

Leave a comment