# offscreen_renderer **Repository Path**: a5k3rn3l/offscreen_renderer ## Basic Information - **Project Name**: offscreen_renderer - **Description**: 无头离线渲染器,使用 OpenGL,使用 DSL 定义渲染步骤,调用 OpenGL 进行渲染。支持传统渲染(VS + GS + FS),支持通用计算(CS)。四舍五入约等于一个山寨 CUDA。 - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-31 - **Last Updated**: 2025-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 离屏渲染器 ## 语言 Language [English](ReadMe.md) | 简体中文 ## 简介 一款通过命令行运行OpenGL片段着色器或计算着色器的工具,可利用 GPU 进行图像绘制或数据处理。 ## 使用方法 编译后按以下方式运行: ``` ./offscreen_renderer [配置文件路径] ``` 程序将读取ini配置文件,解析`[common]`段中定义的任务列表。例如: ``` [common] tasks=任务1,任务2 ``` 随后检查是否存在`[任务1]`和`[任务2]`段,并获取任务配置信息。 典型任务配置如下: ``` [任务1] type=Draw # 任务类型:Draw(绘图)/Compute(计算) shader=xxxx.fsh # 着色器文件 input=输入纹理1,输入纹理2 # 输入资源 output=输出纹理 # 输出资源 ``` **特别说明** - 若`type=Compute`,需补充`groups=x,y,z`定义工作组维度 - 所有输入/输出资源需独立配置段 **资源定义示例** 输入纹理配置: ``` [输入纹理1] load=纹理1.png # 加载图像文件 format=RGBA8 # 指定数据格式 ``` 输出纹理配置: ``` [输出纹理] size=512,512 # 输出分辨率 save=结果图.png # 保存路径 format=RGBA8 # 数据格式 ``` **着色器使用规范** - 片段着色器可通过 `uniform sampler2D 输入纹理1, 输入纹理2;` 读取输入,注意不支持中文。 - 自动注入 `uniform vec2 Resolution;` 变量表示输出纹理尺寸 ### 参考案例 查看`presets`文件夹中的示例: 1. `pano`:将 6 张图片拼接为全景图的着色器 2. `test`:组合使用片段着色器与计算着色器生成图片的脚本