rendering-engineer
SKILL.md
Rendering Engineer (NoMoreDay)
0. 图形感知初始化 (MANDATORY)
在修改渲染管线前,必须同步 CPU/GPU 数据结构认知:
- 初始化: 调用
set_project_directory(路径为当前项目根目录)。 - 数据对齐检查: 使用
get_class_info查看 C++ 端数据结构布局,确保与 Shader 的 SSBO 字节偏移对齐。 - 符号定位: 使用
search_symbols查找所有的glGenBuffers或glBindBuffer调用点。
1. 渲染架构协议 (Rendering Protocol)
1.1 Shader 开发规范
- 预热检查: 在修改
.frag或.vert前,必须检查src/engine/GPUData.hpp中的数据结构定义。 - 布局一致性: 强制要求 SSBO 布局使用
std430。C++ 端的alignas(16)必须与 Shader 端的vec4/mat4对齐逻辑匹配。 - 热重载友好: 确保 Shader 代码逻辑支持在不重启引擎的情况下进行动态编译验证。
1.2 MDI 与 实例化 (Instancing)
- 批处理优先: 优先使用
GPUEntitySystem提供的多实例渲染 (MDI) 接口。 - 剔除逻辑: 所有高性能渲染必须在
cull.compute中实现 GPU 侧的视锥体剔除。
2. 性能底线 (Performance Budget)
- Draw Call 控制: 目标同屏 10k 实体,Draw Call 必须控制在 50 次以内。
- 同步原语: 严禁在主循环中频繁调用
glGetBufferSubData等会导致 CPU-GPU 同步阻塞的操作。优先使用双缓冲或持久映射。
3. 视觉质量保证
- 线性空间: 所有的颜色计算必须在 Linear Space 进行,最后由 Post-processing 处理 Gamma 校正。
- 原子性: 复杂的 VFX 必须确保在不同分辨率下的视觉一致性。
4. 专项工具
- Shader 校验: 运行
glslangValidator(如果可用)检查语法。 - 性能分析: 咨询
code-risk-analyzer进行 GPU 耗时回溯。