# ShaderSDK 概述

ShaderSDK 提供面向 RenderDragon 的 Custom Surface Shader(CSS)开发能力。CSS 在引擎既有表面数据的基础上读取输入并写入 StandardSurfaceOutput,从而影响指定渲染目标的表面着色结果。

本文档当前只提供 CSS r21u12 API 参考,用于查询着色器入口、表面输出、Property、引擎内置能力以及根类型与材质的对应关系。工具操作、工程创建、编译发布和效果案例不在本文档范围内。

# 核心模型

一个 CSS 由以下几部分组成:

部分 作用 参考
根类型 指定 CSS 作用的玩法目标,例如地形、实体或天空 根类型与材质映射
属性 在 Properties 块中声明作者参数、纹理和引擎提供的只读数据 属性
入口函数 接收固定输入并修改表面结果 入口函数
标准表面输出 通过 StandardSurfaceOutput 承载颜色、透明度以及 PBR 表面参数 标准表面输出
内置能力 提供时间、相机、天气等 Uniform 以及游戏状态辅助函数 保留内置 Uniform内置函数

完整的查询入口见 API 参考索引

# 渲染环境

CSS 的输出字段在两种渲染环境中的有效性不同:

环境 生效的表面输出
花式渲染器(Fancy Renderer) Albedo、Alpha
灵动视效(Vibrant Visuals) Albedo、Alpha、Metallic、Roughness、Emissive、Subsurface、ViewSpaceNormal

API 表格中的“全部”表示字段在花式渲染器和灵动视效中均有效;“仅灵动视效”表示字段只参与灵动视效的 PBR 路径,花式渲染器不使用该字段。

# 文档约定

  • 标识符、类型名、函数名、属性名和材质名保留规格中的英文拼写;这些名称区分大小写时,应按文档原样使用。
  • “必须”表示满足当前规格所需的要求;“应”表示推荐做法;“可”表示可选能力。
  • 保留内置 Uniform 的兼容性使用规格原词 Upgradeable: Yes/No。No 表示不保证未来版本继续支持,不等同于当前已弃用。
  • “当前版本”指本文档适用的 CSS r21u12;未来规划不描述为当前可用能力。

# 版本与兼容性

本文档以 CSS r21u12 规格为准。当开发者将项目升级游戏版本时,应对照目标版本的官方文档检查项目实际使用的以下内容:

  • 项目使用的 Upgradeable: No 保留内置 Uniform 及其辅助函数在目标版本中是否仍然存在,以及类型和语义是否发生变化;
  • 项目使用的根类型在目标版本中是否仍受支持,以及它与具体材质之间的映射是否发生变化;
  • 灵动视效目标在目标版本中是否要求分别覆盖 Prepass 与 ForwardPBR 材质。

开发者只需检查项目实际使用的 API。若目标版本调整或移除了相关能力,应按目标版本文档修改实现后再进行发布验证。