WAYNETS.ORG

Game and Program

渲染器(Renderer)

作者:

发表于

Context Polling System Post-Processing Renderer

什么是渲染器?

渲染器(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