Skip to content

GameGraph.MaterialSystem ​

LandscapePatchBlend 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct LandscapePatchBlend : IEquatable<LandscapePatchBlend>

Landscape patch 使用的地表贴图组合。

构造函数 ​

LandscapePatchBlend 双端 ​

csharp
public LandscapePatchBlend(Vector4 BlendIndex, Vector4? BlendIndex2 = null)

Landscape patch 使用的地表贴图组合。

属性 ​

BlendIndex 双端 ​

csharp
public Vector4 BlendIndex { get; init; }

BlendIndex2 双端 ​

csharp
public Vector4? BlendIndex2 { get; init; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(LandscapePatchBlend left, LandscapePatchBlend right)

operator == 双端 ​

csharp
public static bool operator ==(LandscapePatchBlend left, LandscapePatchBlend right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(LandscapePatchBlend other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out Vector4 BlendIndex, out Vector4? BlendIndex2)

Material 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public abstract class Material : Resource

属性 ​

Technique 仅客户端 ​

csharp
public Technique? Technique { get; set; }

当前材质绑定的 Technique XML 渲染方案。

Shader 仅客户端 ​

csharp
public Shader? Shader { get; set; }

当前材质绑定的 Technique 的兼容属性。

Textures 仅客户端 ​

csharp
public MaterialTextureAccessor Textures { get; set; }

获取材质纹理访问器

StencilState 仅客户端 ​

csharp
public StencilState StencilState { get; set; }

获取/设置材质模板状态

CullMode 仅客户端 ​

csharp
public CullMode CullMode { get; set; }

获取/设置材质裁剪模式

FillMode 仅客户端 ​

csharp
public FillMode FillMode { get; set; }

获取/设置材质填充模式

RenderOrder 仅客户端 ​

csharp
public uint RenderOrder { get; set; }

获取/设置材质渲染优先级

UVTiling 仅客户端 ​

csharp
public Vector2 UVTiling { get; set; }

纹理坐标平铺、速度和旋转参数。

UVSpeed 仅客户端 ​

csharp
public Vector2 UVSpeed { get; set; }

TextureRotation 仅客户端 ​

csharp
public float TextureRotation { get; set; }

BacksideLighting 仅客户端 ​

csharp
public bool BacksideLighting { get; set; }

Transparent 仅客户端 ​

csharp
public bool Transparent { get; set; }

HasAlphaTestPass 仅客户端 ​

csharp
public bool HasAlphaTestPass { get; }

AuxViewFrameNumber 仅客户端 ​

csharp
public uint AuxViewFrameNumber { get; }

ShaderParameterHash 仅客户端 ​

csharp
public uint ShaderParameterHash { get; }

TemplateName 仅客户端 ​

csharp
public UTF8String TemplateName { get; set; }

IsColorTintSupported 仅客户端 ​

csharp
public bool IsColorTintSupported { get; }

RuntimeTint 仅客户端 ​

csharp
public bool RuntimeTint { get; set; }

方法 ​

SetShaderParameterAnimation 仅客户端 ​

csharp
public void SetShaderParameterAnimation(string name, ValueAnimation? animation, ObjectAnimationWrapMode wrapMode = ObjectAnimationWrapMode.Loop, float speed = 1f)

Attaches a client-side ValueAnimation to a shader parameter. Passing null removes the animation for that parameter.

GetShaderParameterAnimation 仅客户端 ​

csharp
public ValueAnimation? GetShaderParameterAnimation(string name)

GetShaderParameterAnimationWrapMode 仅客户端 ​

csharp
public ObjectAnimationWrapMode GetShaderParameterAnimationWrapMode(string name)

SetShaderParameterAnimationWrapMode 仅客户端 ​

csharp
public void SetShaderParameterAnimationWrapMode(string name, ObjectAnimationWrapMode wrapMode)

GetShaderParameterAnimationSpeed 仅客户端 ​

csharp
public float GetShaderParameterAnimationSpeed(string name)

SetShaderParameterAnimationSpeed 仅客户端 ​

csharp
public void SetShaderParameterAnimationSpeed(string name, float speed)

Load 仅客户端 ​

csharp
public static Material? Load(GameCore.ResourceType.Material materialPath)

从资源路径加载材质文件,并在可能时转换为 SDK 已知的强类型材质。

  • materialPath — 材质资源路径。

返回: 加载失败时返回 null;加载成功后根据 Technique 路径返回 MaterialPBR、MaterialFlatLambert、MaterialWater、 MaterialVertexColor 或 MaterialCustom。

SetTemplate 仅客户端 ​

csharp
public bool SetTemplate(UTF8String templatePath, bool force = false)

IsCompatible 仅客户端 ​

csharp
public bool IsCompatible(Material? other)

SetPassEnabled 仅客户端 ​

csharp
public void SetPassEnabled(string passName, bool enabled)

设置 Technique pass 是否可用。

SetPassDepthWrite 仅客户端 ​

csharp
public void SetPassDepthWrite(string passName, bool depthWrite)

设置 Technique pass 的深度写入状态。

SetPassColorWrite 仅客户端 ​

csharp
public void SetPassColorWrite(string passName, bool colorWrite)

设置 Technique pass 的颜色写入状态。

HasPass 仅客户端 ​

csharp
public bool HasPass(string passName, uint techniqueIndex = 0u)

判断指定 Technique 上是否存在指定 pass。

SetShaderPassEnabled 仅客户端 ​

csharp
public void SetShaderPassEnabled(string passName, bool enabled)

SetShaderPassDepthWrite 仅客户端 ​

csharp
public void SetShaderPassDepthWrite(string passName, bool depthWrite)

SetShaderPassColorWrite 仅客户端 ​

csharp
public void SetShaderPassColorWrite(string passName, bool colorWrite)

HasShaderPass 仅客户端 ​

csharp
public bool HasShaderPass(string passName, uint techniqueIndex = 0u)

GetDebugInfo 仅客户端 ​

csharp
public MaterialDebugInfo GetDebugInfo(IEnumerable<string>? passNames = null)

获取材质运行时诊断快照,便于和 RenderDoc/PIX 抓帧结果对照。

DebugDescribe 仅客户端 ​

csharp
public string DebugDescribe(IEnumerable<string>? passNames = null)

返回一行可读的材质诊断摘要。

MaterialCustom 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public class MaterialCustom : Material

自定义材质,用于设置材质参数。与其它材质不同的是,其它材质使用固定的材质参数,而自定义材质可以输入材质参数名来设置材质参数。

构造函数 ​

MaterialCustom 仅客户端 ​

csharp
public MaterialCustom()

MaterialCustom 仅客户端 ​

csharp
public MaterialCustom(Technique technique)

MaterialCustom 仅客户端 ​

csharp
public MaterialCustom(Shader shader)

属性 ​

Colors 仅客户端 ​

csharp
public ColorProperty Colors { get; }

预定义颜色属性访问器。

Floats 仅客户端 ​

csharp
public FloatProperty Floats { get; }

预定义浮点属性访问器。

Vectors 仅客户端 ​

csharp
public VectorProperty Vectors { get; }

预定义向量属性访问器。

方法 ​

ToKnownMaterial 仅客户端 ​

csharp
public Material? ToKnownMaterial()

如果当前 Technique 路径匹配 SDK 已知材质,则返回对应的强类型材质包装。

返回: 匹配成功时返回 MaterialPBR、MaterialFlatLambert 或 MaterialWater 或 MaterialVertexColor;否则返回 null。

SetFloat 仅客户端 ​

csharp
public void SetFloat(string propertyName, float value)

设置材质参数

  • propertyName — 材质参数名
  • value — 材质参数值(float)

GetFloat 仅客户端 ​

csharp
public float GetFloat(string propertyName)

获取材质参数

  • propertyName — 材质参数名

返回: 材质参值

SetFloat 仅客户端 ​

csharp
public void SetFloat(uint propertyId, float value)

设置材质参数

  • propertyId — 材质参id
  • value — 材质参数值(float)

GetFloat 仅客户端 ​

csharp
public float GetFloat(uint propertyId)

获取材质参数

  • propertyId — 材质参数id

返回: 材质参值

SetVector 仅客户端 ​

csharp
public void SetVector(string propertyName, Vector4 value)

设置材质参数

  • propertyName — 材质参数名
  • value — 材质参数值(Vector4)

GetVector 仅客户端 ​

csharp
public Vector4 GetVector(string propertyName)

获取材质参数

  • propertyName — 材质参数名

返回: 材质参数值

SetVector 仅客户端 ​

csharp
public void SetVector(uint propertyId, Vector4 value)

设置材质参数

  • propertyId — 材质参数id
  • value — 材质参数值(Vector4)

GetVector 仅客户端 ​

csharp
public Vector4 GetVector(uint propertyId)

获取材质参数

  • propertyId — 材质参数id

返回: 材质参数值

SetColor 仅客户端 ​

csharp
public void SetColor(string propertyName, HdrColor value)

设置材质参数

  • propertyName — 材质参数名
  • value — 材质参数值(Color)

GetColor 仅客户端 ​

csharp
public HdrColor GetColor(string propertyName)

获取材质参数

  • propertyName — 材质参数名

返回: 材质参数值

SetColor 仅客户端 ​

csharp
public void SetColor(uint propertyId, HdrColor value)

设置材质参数

  • propertyId — 材质参数id
  • value — 材质参数值(Color)

GetColor 仅客户端 ​

csharp
public HdrColor GetColor(uint propertyId)

获取材质参数

  • propertyId — 材质参数id

返回: 材质参数值

MaterialDebugInfo 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public sealed class MaterialDebugInfo

材质运行时诊断快照。只描述调用时刻的状态,不持有 native 生命周期。

构造函数 ​

MaterialDebugInfo 仅客户端 ​

csharp
public MaterialDebugInfo()

属性 ​

MaterialType 仅客户端 ​

csharp
public required string MaterialType { get; init; }

运行时材质类型名,例如 MaterialPBR、MaterialFlatLambert 或 MaterialCustom。

ShaderPath 仅客户端 ​

csharp
public string? ShaderPath { get; init; }

当前材质绑定的 technique XML 路径。

TechniquePath 仅客户端 ​

csharp
public string? TechniquePath { get; }

当前材质绑定的 Technique XML 路径。

HasShader 仅客户端 ​

csharp
public bool HasShader { get; init; }

当前材质是否绑定了 Technique。

HasTechnique 仅客户端 ​

csharp
public bool HasTechnique { get; }

当前材质是否绑定了 Technique。

TechniqueCount 仅客户端 ​

csharp
public uint TechniqueCount { get; init; }

当前材质上的 technique 数量。

VertexShaderDefines 仅客户端 ​

csharp
public required string VertexShaderDefines { get; init; }

材质级顶点 shader defines。

PixelShaderDefines 仅客户端 ​

csharp
public required string PixelShaderDefines { get; init; }

材质级像素 shader defines。

CullMode 仅客户端 ​

csharp
public CullMode CullMode { get; init; }

背面剔除模式。

FillMode 仅客户端 ​

csharp
public FillMode FillMode { get; init; }

几何填充模式。

RenderOrder 仅客户端 ​

csharp
public uint RenderOrder { get; init; }

渲染顺序,值越大越晚渲染。

AlphaToCoverage 仅客户端 ​

csharp
public bool AlphaToCoverage { get; init; }

是否启用 alpha-to-coverage。

Occlusion 仅客户端 ​

csharp
public bool Occlusion { get; init; }

是否参与遮挡相关渲染逻辑。

Specular 仅客户端 ​

csharp
public bool Specular { get; init; }

是否启用高光相关材质状态。

StencilState 仅客户端 ​

csharp
public StencilState StencilState { get; init; }

模板测试状态。

Passes 仅客户端 ​

csharp
public required MaterialDebugPassInfo[] Passes { get; init; }

指定 pass 在各 technique 上是否存在。

Properties 仅客户端 ​

csharp
public required MaterialDebugPropertyInfo[] Properties { get; init; }

已知材质类型的关键参数快照。

方法 ​

Describe 仅客户端 ​

csharp
public string Describe()

返回一行适合写入日志的材质诊断摘要。

字段 ​

DefaultPassNames 仅客户端 ​

csharp
public static readonly string[] DefaultPassNames

默认检查的常见 RenderPath pass 名称。

MaterialDebugPassInfo 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct MaterialDebugPassInfo : IEquatable<MaterialDebugPassInfo>

单个 shader pass 的存在性诊断结果。

  • TechniqueIndex — Technique 索引。
  • Name — Pass 名称。
  • Exists — 指定 technique 上是否存在该 pass。

构造函数 ​

MaterialDebugPassInfo 仅客户端 ​

csharp
public MaterialDebugPassInfo(uint TechniqueIndex, string Name, bool Exists)

单个 shader pass 的存在性诊断结果。

  • TechniqueIndex — Technique 索引。
  • Name — Pass 名称。
  • Exists — 指定 technique 上是否存在该 pass。

属性 ​

TechniqueIndex 仅客户端 ​

csharp
public uint TechniqueIndex { get; init; }

Technique 索引。

Name 仅客户端 ​

csharp
public string Name { get; init; }

Pass 名称。

Exists 仅客户端 ​

csharp
public bool Exists { get; init; }

指定 technique 上是否存在该 pass。

方法 ​

ToString 仅客户端 ​

csharp
public override string ToString()

operator != 仅客户端 ​

csharp
public static bool operator !=(MaterialDebugPassInfo left, MaterialDebugPassInfo right)

operator == 仅客户端 ​

csharp
public static bool operator ==(MaterialDebugPassInfo left, MaterialDebugPassInfo right)

GetHashCode 仅客户端 ​

csharp
public override int GetHashCode()

Equals 仅客户端 ​

csharp
public override bool Equals(object obj)

Equals 仅客户端 ​

csharp
public bool Equals(MaterialDebugPassInfo other)

Deconstruct 仅客户端 ​

csharp
public void Deconstruct(out uint TechniqueIndex, out string Name, out bool Exists)

MaterialDebugPropertyInfo 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct MaterialDebugPropertyInfo : IEquatable<MaterialDebugPropertyInfo>

材质关键参数诊断项。

  • Name — 参数名。
  • Value — 格式化后的参数值。

构造函数 ​

MaterialDebugPropertyInfo 仅客户端 ​

csharp
public MaterialDebugPropertyInfo(string Name, string Value)

材质关键参数诊断项。

  • Name — 参数名。
  • Value — 格式化后的参数值。

属性 ​

Name 仅客户端 ​

csharp
public string Name { get; init; }

参数名。

Value 仅客户端 ​

csharp
public string Value { get; init; }

格式化后的参数值。

方法 ​

ToString 仅客户端 ​

csharp
public override string ToString()

operator != 仅客户端 ​

csharp
public static bool operator !=(MaterialDebugPropertyInfo left, MaterialDebugPropertyInfo right)

operator == 仅客户端 ​

csharp
public static bool operator ==(MaterialDebugPropertyInfo left, MaterialDebugPropertyInfo right)

GetHashCode 仅客户端 ​

csharp
public override int GetHashCode()

Equals 仅客户端 ​

csharp
public override bool Equals(object obj)

Equals 仅客户端 ​

csharp
public bool Equals(MaterialDebugPropertyInfo other)

Deconstruct 仅客户端 ​

csharp
public void Deconstruct(out string Name, out string Value)

MaterialFlatLambert 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public sealed class MaterialFlatLambert : Material

无贴图 Lambert 纯色材质,会受场景光照与 SSAO 影响。

备注

适用于程序生成网格、调试可视化和不需要贴图的简单几何体。若需要严格不受光照影响的 Unlit, 需要等待对应 shadercache 覆盖后再使用专门的 Unlit 材质。

构造函数 ​

MaterialFlatLambert 仅客户端 ​

csharp
public MaterialFlatLambert(bool transparent = false)

创建一个新的无贴图 Lambert 材质实例。

  • transparent — 是否使用透明 pass。透明模式下颜色的 Alpha 通道有效。

属性 ​

Transparent 仅客户端 ​

csharp
public new bool Transparent { get; set; }

是否使用透明 pass。

Color 仅客户端 ​

csharp
public HdrColor Color { get; set; }

主颜色。透明模式下 Alpha 通道参与混合。

MaterialPBR 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public sealed class MaterialPBR : Material

PBR(Physically Based Rendering)材质,基于物理的渲染材质。

备注

使用金属度-粗糙度工作流(Metallic-Roughness workflow)。

构造函数 ​

MaterialPBR 仅客户端 ​

csharp
public MaterialPBR(bool useAlbedoTexture = false, bool useAlphaChannel = false)

创建一个新的 PBR 材质实例。

  • useAlbedoTexture — 是否使用Albedo纹理。为false时,Albedo使用白色。
  • useAlphaChannel — 是否使用透明通道。

MaterialPBR 仅客户端 ​

csharp
public MaterialPBR(Texture2D albedoTexture, bool useAlphaChannel = false)

使用指定 Albedo 纹理创建一个新的 PBR 材质实例。

  • albedoTexture — Albedo 纹理。
  • useAlphaChannel — 是否使用透明通道。

属性 ​

UseAlbedoTexture 仅客户端 ​

csharp
public bool UseAlbedoTexture { get; set; }

是否使用 Albedo 纹理。

备注

为 false 时,Albedo 使用白色(Solid 模式)。 更改此属性会切换底层 Technique。

UseAlphaChannel 仅客户端 ​

csharp
public bool UseAlphaChannel { get; set; }

是否使用透明通道。

备注

从不透明模式设为 true 时切换到 Alpha 混合;设为 false 时切回不透明。 已明确选择 AlphaCutout 时,再设为 true 会保留裁剪模式。 新代码需要区分混合与裁剪时请使用 AlphaMode。

AlphaMode 仅客户端 ​

csharp
public PBRAlphaMode AlphaMode { get; set; }

Alpha 渲染模式。

备注

Alpha 裁剪要求启用 Albedo 纹理,固定阈值为 0.5。

ColorFactor 仅客户端 ​

csharp
public HdrColor ColorFactor { get; set; }

颜色因子(与纹理颜色相乘的比例系数),定义材质的固有颜色。

EmissiveColor 仅客户端 ​

csharp
public HdrColor EmissiveColor { get; set; }

自发光颜色,使材质表面发出光亮。

备注

配合 EmissiveIntensity 控制发光强度。

MetallicFactor 仅客户端 ​

csharp
public float MetallicFactor { get; set; }

金属度,范围 0~1。

备注

0 = 非金属(电介质),1 = 全金属。

RoughnessFactor 仅客户端 ​

csharp
public float RoughnessFactor { get; set; }

粗糙度,范围 0~1。

备注

0 = 完全光滑(镜面反射),1 = 完全粗糙(漫反射)。

EmissiveIntensity 仅客户端 ​

csharp
public float EmissiveIntensity { get; set; }

自发光强度乘数。

备注

可超过 1 用于 HDR 效果,与 EmissiveColor 相乘得到最终发光值。

方法 ​

Create 仅客户端 ​

csharp
public static MaterialPBR Create(PBRAlphaMode alphaMode, bool useAlbedoTexture = false)

使用明确的 Alpha 模式创建一个新的 PBR 材质实例。

  • alphaMode — Alpha 渲染模式。
  • useAlbedoTexture — 是否使用 Albedo 纹理。

Create 仅客户端 ​

csharp
public static MaterialPBR Create(Texture2D albedoTexture, PBRAlphaMode alphaMode)

使用指定 Albedo 纹理与明确的 Alpha 模式创建一个新的 PBR 材质实例。

  • albedoTexture — Albedo 纹理。
  • alphaMode — Alpha 渲染模式。

UseDefaultTextures 仅客户端 ​

csharp
public void UseDefaultTextures()

将内置的白色 Albedo 与默认金属度/粗糙度纹理绑定到材质。

MaterialPBRVertexColor 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public sealed class MaterialPBRVertexColor : Material

将 PBR 贴图、材质乘色与网格顶点颜色相乘的材质。

备注

网格必须提供 Position、Normal、UV、Color 与 Tangent 顶点流。 金属度读取混合贴图 G 通道,粗糙度读取 R 通道。

构造函数 ​

MaterialPBRVertexColor 仅客户端 ​

csharp
public MaterialPBRVertexColor(Texture2D albedoTexture, Texture2D normalTexture, Texture2D roughnessMetalnessTexture, PBRVertexColorMaterialMode mode = PBRVertexColorMaterialMode.Opaque)

使用完整的 PBR 贴图组创建顶点颜色材质。

  • albedoTexture — 与顶点颜色相乘的 Albedo 贴图。
  • normalTexture — 法线贴图。
  • roughnessMetalnessTexture — R 通道为粗糙度、G 通道为金属度的混合贴图。
  • mode — 渲染模式。

属性 ​

Mode 仅客户端 ​

csharp
public PBRVertexColorMaterialMode Mode { get; set; }

当前渲染模式。更改后会切换到对应的固定 Technique。

AlbedoTexture 仅客户端 ​

csharp
public Texture2D? AlbedoTexture { get; set; }

与顶点颜色相乘的 Albedo 贴图。

NormalTexture 仅客户端 ​

csharp
public Texture2D? NormalTexture { get; set; }

法线贴图。

RoughnessMetalnessTexture 仅客户端 ​

csharp
public Texture2D? RoughnessMetalnessTexture { get; set; }

R 通道为粗糙度、G 通道为金属度的混合贴图。

ColorFactor 仅客户端 ​

csharp
public HdrColor ColorFactor { get; set; }

材质乘色;最终颜色还会乘以 Albedo 与顶点 RGBA。

SpecularFactor 仅客户端 ​

csharp
public HdrColor SpecularFactor { get; set; }

非金属区域的高光颜色因子。

MetallicOffset 仅客户端 ​

csharp
public float MetallicOffset { get; set; }

加到混合贴图 G 通道上的金属度偏移。

RoughnessOffset 仅客户端 ​

csharp
public float RoughnessOffset { get; set; }

加到混合贴图 R 通道上的粗糙度偏移。

MaterialUrho2D 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public sealed class MaterialUrho2D : Material

Urho2D 无光照材质,输出主纹理、精灵顶点颜色和材质颜色的乘积。

备注

每个实例拥有独立的 Technique,可单独修改混合和深度状态。 赋给 StaticSprite2D.CustomMaterial 后,纹理和混合方式由此材质管理,不再自动跟随精灵。 AnimatedSprite2D 会把同一个自定义材质用于所有批次;本材质不会自动适配多图集或多种混合方式。 需要客户端已有 Technique/Pass 接口及 Urho2D shadercache。

构造函数 ​

MaterialUrho2D 仅客户端 ​

csharp
public MaterialUrho2D()

创建独立材质。默认白色乘色、Alpha 混合、LessEqual 深度测试、不写深度、双面绘制;纹理需自行绑定。

属性 ​

Texture 仅客户端 ​

csharp
public Texture2D? Texture { get; set; }

主纹理。更换精灵资源后需自行更新;null 不代表自动使用精灵纹理。

Color 仅客户端 ​

csharp
public HdrColor Color { get; set; }

材质乘色,默认白色。Alpha 也参与相乘;不会替换精灵自身的 Color/Alpha。

BlendMode 仅客户端 ​

csharp
public BlendMode BlendMode { get; set; }

混合方式,默认 Alpha。设置 PremulAlpha 不会自动预乘纹理或颜色。

DepthTestMode 仅客户端 ​

csharp
public CompareMode DepthTestMode { get; set; }

深度比较,默认 LessEqual。Always 可忽略已有深度遮挡,但不保证覆盖后续绘制的对象。

DepthWrite 仅客户端 ​

csharp
public bool DepthWrite { get; set; }

是否写入深度,默认 false。开启后透明纹素也可能写入深度,不会自动按 Alpha 裁剪。

MaterialVertexColor 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public sealed class MaterialVertexColor : Material

将 Albedo 贴图、材质乘色与网格顶点颜色相乘的材质。

备注

网格必须提供 Color 顶点流。需要透明效果时,请选择明确的裁剪或混合模式, 不要通过运行时修改 Technique pass 或 shader defines 改变透明语义。

构造函数 ​

MaterialVertexColor 仅客户端 ​

csharp
public MaterialVertexColor(Texture2D albedoTexture, VertexColorMaterialMode mode = VertexColorMaterialMode.LitOpaque)

使用指定 Albedo 纹理创建顶点颜色材质。

  • albedoTexture — 与顶点颜色相乘的 Albedo 纹理。
  • mode — 渲染模式,默认为受光照的不透明模式。

属性 ​

Mode 仅客户端 ​

csharp
public VertexColorMaterialMode Mode { get; set; }

当前渲染模式。更改后会切换到对应的固定 Technique。

AlbedoTexture 仅客户端 ​

csharp
public Texture2D? AlbedoTexture { get; set; }

与顶点颜色相乘的 Albedo 纹理。

ColorFactor 仅客户端 ​

csharp
public HdrColor ColorFactor { get; set; }

材质乘色,默认白色;最终颜色还会乘以 Albedo 与顶点颜色。

MaterialWater 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public sealed class MaterialWater : Material

水面材质,用于渲染简单的水体效果。

备注

基于单层水面渲染(Single Layer Water),适用于性能要求较高的场景。

构造函数 ​

MaterialWater 仅客户端 ​

csharp
public MaterialWater()

创建一个新的水面材质实例。

属性 ​

TintColor 仅客户端 ​

csharp
public HdrColor TintColor { get; set; }

水体染色颜色,用于调整水面的整体色调。

PBRAlphaMode 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public enum PBRAlphaMode

PBR 材质的 Alpha 渲染模式。

枚举值 ​

  • Opaque — 不使用纹理 Alpha,按不透明材质渲染。
  • AlphaBlend — 使用纹理或颜色 Alpha 混合,并关闭深度写入。
  • AlphaCutout — 按 Albedo Alpha 以固定阈值 0.5 裁剪颜色、深度和阴影。

PBRVertexColorMaterialMode 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public enum PBRVertexColorMaterialMode

PBR 贴图与顶点颜色组合材质的渲染模式。

枚举值 ​

  • Opaque — 受场景光照影响的不透明材质。
  • AlphaCutout — 受场景光照影响,并按 Albedo Alpha 裁剪颜色、深度和阴影。

Terrain 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public class Terrain

构造函数 ​

Terrain 双端 ​

csharp
public Terrain()

属性 ​

MaterialCount 仅客户端 ​

csharp
public static int MaterialCount { get; }

当前客户端可访问的地形材质数量。

TileStyleMapSize 仅客户端 ​

csharp
public static TerrainTexturePoint TileStyleMapSize { get; }

获取运行时离散瓦片地图尺寸(单位:tile)。

LandscapePatchCount 仅客户端 ​

csharp
public static TerrainTexturePoint LandscapePatchCount { get; }

当前 Landscape patch 数量。

LandscapeWeightMapSize 仅客户端 ​

csharp
public static TerrainTexturePoint LandscapeWeightMapSize { get; }

当前 Landscape weight map 尺寸。

方法 ​

GetMaterials 仅客户端 ​

csharp
public static Material[] GetMaterials()

获取当前客户端地形材质实例。

备注

返回的是当前运行中地形渲染使用的材质对象;修改这些材质的贴图或参数只影响当前客户端视觉, 不会同步到服务器,也不会写回地图数据、地形权重或 landscape patch 配置。

GetMaterial 仅客户端 ​

csharp
public static Material? GetMaterial(uint index)

获取指定索引的当前客户端地形材质实例。

TryGetMaterial 仅客户端 ​

csharp
public static bool TryGetMaterial(uint index, out Material? material)

尝试获取指定索引的当前客户端地形材质实例。

GetMaterialTexture 仅客户端 ​

csharp
public static GameGraph.ResourceSystem.Texture? GetMaterialTexture(uint materialIndex, TextureUnit unit)

获取指定地形材质上的贴图槽位。

SetMaterialTexture 仅客户端 ​

csharp
public static bool SetMaterialTexture(uint materialIndex, TextureUnit unit, GameGraph.ResourceSystem.Texture? texture)

设置指定地形材质上的贴图槽位。

备注

这是 runtime-only、client-only 的视觉修改;它只替换材质实例上的纹理, 不会修改地表 texture weight、landscape weight map 或场景数据。

SetMaterialTexture 仅客户端 ​

csharp
public static bool SetMaterialTexture(uint materialIndex, TextureUnit unit, GameCore.ResourceType.Texture texturePath)

加载纹理资源并设置到指定地形材质的贴图槽位。

返回: 材质索引有效且纹理加载成功时返回 true。

WorldPositionToTextureWeightPoint 仅客户端 ​

csharp
public static TerrainTexturePoint WorldPositionToTextureWeightPoint(ScenePoint position)

将场景世界坐标转换为普通 tile 地表 texture weight 采样点坐标。

TryGetTextureWeights 仅客户端 ​

csharp
public static bool TryGetTextureWeights(int x, int y, out TerrainTextureWeights weights)

尝试读取普通 tile 地表的 texture weight。

GetTextureWeights 仅客户端 ​

csharp
public static TerrainTextureWeights? GetTextureWeights(int x, int y)

读取普通 tile 地表的 texture weight。

TryGetTextureWeights 仅客户端 ​

csharp
public static bool TryGetTextureWeights(ScenePoint position, out TerrainTextureWeights weights)

尝试读取指定世界坐标处的普通 tile 地表 texture weight。

GetTextureWeights 仅客户端 ​

csharp
public static TerrainTextureWeights? GetTextureWeights(ScenePoint position)

读取指定世界坐标处的普通 tile 地表 texture weight。

SetTextureWeights 仅客户端 ​

csharp
public static bool SetTextureWeights(int x, int y, TerrainTextureWeights weights, bool refresh = true)

设置普通 tile 地表的 texture weight。

备注

runtime-only、client-only;只修改当前客户端视觉,不同步服务器,也不写回地图文件。 场景加载前应启用 GameDataScene.EnableRuntimeTerrainTextureEditing,并使用支持 RuntimeTerrainTextureEditing 的客户端;普通加载会释放未启用场景的权重和重建数据。

SetTextureWeights 仅客户端 ​

csharp
public static bool SetTextureWeights(ScenePoint position, TerrainTextureWeights weights, bool refresh = true)

设置指定世界坐标处的普通 tile 地表 texture weight。

备注

runtime-only、client-only;只修改当前客户端视觉,不同步服务器,也不写回地图文件。

TryGetTextureLabel 仅客户端 ​

csharp
public static bool TryGetTextureLabel(int x, int y, out TerrainTextureLabel label)

尝试读取普通 tile 地表采样点当前主导贴图的名称和标签。

GetTextureLabel 仅客户端 ​

csharp
public static TerrainTextureLabel? GetTextureLabel(int x, int y)

读取普通 tile 地表采样点当前主导贴图的名称和标签。

GetStyleInfos 仅客户端 ​

csharp
public static TerrainStyleInfo[] GetStyleInfos()

获取当前客户端地形配置中已加载的离散瓦片风格目录。

TryGetTileStyle 仅客户端 ​

csharp
public static bool TryGetTileStyle(int x, int y, out string style)

尝试读取指定 tile 的运行时 TileSet/style 名称。

TryGetTextureLabel 仅客户端 ​

csharp
public static bool TryGetTextureLabel(ScenePoint position, out TerrainTextureLabel label)

尝试读取指定世界坐标处当前主导贴图的名称和标签。

GetTextureLabel 仅客户端 ​

csharp
public static TerrainTextureLabel? GetTextureLabel(ScenePoint position)

读取指定世界坐标处当前主导贴图的名称和标签。

RefreshDirtyTerrain 仅客户端 ​

csharp
public static void RefreshDirtyTerrain()

刷新普通 tile 地表 dirty mesh。

TryGetLandscapePatchBlend 仅客户端 ​

csharp
public static bool TryGetLandscapePatchBlend(int patchX, int patchY, out LandscapePatchBlend blend)

尝试读取 Landscape patch 的地表贴图组合。

GetLandscapePatchBlend 仅客户端 ​

csharp
public static LandscapePatchBlend? GetLandscapePatchBlend(int patchX, int patchY)

读取 Landscape patch 的地表贴图组合。

SetLandscapePatchBlend 仅客户端 ​

csharp
public static bool SetLandscapePatchBlend(int patchX, int patchY, LandscapePatchBlend blend)

设置 Landscape patch 的地表贴图组合。

备注

runtime-only、client-only;只修改当前客户端视觉,不同步服务器,也不写回 landscape.xml。

TryGetLandscapeWeightMapPixel 仅客户端 ​

csharp
public static bool TryGetLandscapeWeightMapPixel(int x, int y, out Vector4 weights)

尝试读取 Landscape weight map 像素。

GetLandscapeWeightMapPixel 仅客户端 ​

csharp
public static Vector4? GetLandscapeWeightMapPixel(int x, int y)

读取 Landscape weight map 像素。

SetLandscapeWeightMapPixel 仅客户端 ​

csharp
public static bool SetLandscapeWeightMapPixel(int x, int y, Vector4 weights)

设置 Landscape weight map 像素。

备注

runtime-only、client-only;只更新当前客户端的 weight texture,不同步服务器,也不写回 weightmap.png。

PaintLandscapeWeights 仅客户端 ​

csharp
public static bool PaintLandscapeWeights(TerrainPixelRect area, TerrainWeightPaintOptions options)

在 Landscape weight map 上按矩形区域涂刷权重。

备注

runtime-only、client-only;只更新当前客户端的 weight texture,不同步服务器,也不写回 weightmap.png。

TerrainPixelRect 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct TerrainPixelRect : IEquatable<TerrainPixelRect>

Landscape weight map 像素矩形。

构造函数 ​

TerrainPixelRect 双端 ​

csharp
public TerrainPixelRect(int X, int Y, int Width, int Height)

Landscape weight map 像素矩形。

属性 ​

X 双端 ​

csharp
public int X { get; init; }

Y 双端 ​

csharp
public int Y { get; init; }

Width 双端 ​

csharp
public int Width { get; init; }

Height 双端 ​

csharp
public int Height { get; init; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(TerrainPixelRect left, TerrainPixelRect right)

operator == 双端 ​

csharp
public static bool operator ==(TerrainPixelRect left, TerrainPixelRect right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(TerrainPixelRect other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out int X, out int Y, out int Width, out int Height)

TerrainStyleInfo 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct TerrainStyleInfo : IEquatable<TerrainStyleInfo>

当前客户端已加载的离散瓦片地表风格目录项。

构造函数 ​

TerrainStyleInfo 双端 ​

csharp
public TerrainStyleInfo(int Id, string TileStyle, string TextureStyle)

当前客户端已加载的离散瓦片地表风格目录项。

属性 ​

Id 双端 ​

csharp
public int Id { get; init; }

TileStyle 双端 ​

csharp
public string TileStyle { get; init; }

TextureStyle 双端 ​

csharp
public string TextureStyle { get; init; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(TerrainStyleInfo left, TerrainStyleInfo right)

operator == 双端 ​

csharp
public static bool operator ==(TerrainStyleInfo left, TerrainStyleInfo right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(TerrainStyleInfo other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out int Id, out string TileStyle, out string TextureStyle)

TerrainTextureLabel 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct TerrainTextureLabel : IEquatable<TerrainTextureLabel>

地表贴图名称/标签。

构造函数 ​

TerrainTextureLabel 双端 ​

csharp
public TerrainTextureLabel(string Name, string Tag)

地表贴图名称/标签。

属性 ​

Name 双端 ​

csharp
public string Name { get; init; }

Tag 双端 ​

csharp
public string Tag { get; init; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(TerrainTextureLabel left, TerrainTextureLabel right)

operator == 双端 ​

csharp
public static bool operator ==(TerrainTextureLabel left, TerrainTextureLabel right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(TerrainTextureLabel other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out string Name, out string Tag)

TerrainTexturePoint 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct TerrainTexturePoint : IEquatable<TerrainTexturePoint>

普通 tile 地表的 texture weight 采样点坐标。

构造函数 ​

TerrainTexturePoint 双端 ​

csharp
public TerrainTexturePoint(int X, int Y)

普通 tile 地表的 texture weight 采样点坐标。

属性 ​

X 双端 ​

csharp
public int X { get; init; }

Y 双端 ​

csharp
public int Y { get; init; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(TerrainTexturePoint left, TerrainTexturePoint right)

operator == 双端 ​

csharp
public static bool operator ==(TerrainTexturePoint left, TerrainTexturePoint right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(TerrainTexturePoint other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out int X, out int Y)

TerrainTextureWeights 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct TerrainTextureWeights : IEquatable<TerrainTextureWeights>

普通 tile 地表的贴图索引和混合权重。

备注

SCE tile 地表底层把 style、三个 texture index 以及前两个权重编码在 vertex color 中; 第三个权重按 1 - Weight1 - Weight2 推导。

构造函数 ​

TerrainTextureWeights 双端 ​

csharp
public TerrainTextureWeights(uint TextureStyle, uint Texture1, uint Texture2, uint Texture3, float Weight1, float Weight2, Vector4 ExtendedWeights)

普通 tile 地表的贴图索引和混合权重。

备注

SCE tile 地表底层把 style、三个 texture index 以及前两个权重编码在 vertex color 中; 第三个权重按 1 - Weight1 - Weight2 推导。

TerrainTextureWeights 双端 ​

csharp
public TerrainTextureWeights(uint textureStyle, uint texture1, uint texture2, uint texture3, float weight1, float weight2)

创建不带高质量扩展权重的 tile 地表权重。

属性 ​

TextureStyle 双端 ​

csharp
public uint TextureStyle { get; init; }

Texture1 双端 ​

csharp
public uint Texture1 { get; init; }

Texture2 双端 ​

csharp
public uint Texture2 { get; init; }

Texture3 双端 ​

csharp
public uint Texture3 { get; init; }

Weight1 双端 ​

csharp
public float Weight1 { get; init; }

Weight2 双端 ​

csharp
public float Weight2 { get; init; }

ExtendedWeights 双端 ​

csharp
public Vector4 ExtendedWeights { get; init; }

Weight3 双端 ​

csharp
public float Weight3 { get; }

第三个贴图权重。

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(TerrainTextureWeights left, TerrainTextureWeights right)

operator == 双端 ​

csharp
public static bool operator ==(TerrainTextureWeights left, TerrainTextureWeights right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(TerrainTextureWeights other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out uint TextureStyle, out uint Texture1, out uint Texture2, out uint Texture3, out float Weight1, out float Weight2, out Vector4 ExtendedWeights)

TerrainWeightPaintOptions 双端 ​

命名空间 GameGraph.MaterialSystem

csharp
public readonly struct TerrainWeightPaintOptions : IEquatable<TerrainWeightPaintOptions>

Landscape weight map 运行时涂刷参数。

构造函数 ​

TerrainWeightPaintOptions 双端 ​

csharp
public TerrainWeightPaintOptions(Vector4 Weights, float Opacity = 1f)

Landscape weight map 运行时涂刷参数。

属性 ​

Weights 双端 ​

csharp
public Vector4 Weights { get; init; }

Opacity 双端 ​

csharp
public float Opacity { get; init; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(TerrainWeightPaintOptions left, TerrainWeightPaintOptions right)

operator == 双端 ​

csharp
public static bool operator ==(TerrainWeightPaintOptions left, TerrainWeightPaintOptions right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(TerrainWeightPaintOptions other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out Vector4 Weights, out float Opacity)

VertexColorMaterialMode 仅客户端 ​

命名空间 GameGraph.MaterialSystem

csharp
public enum VertexColorMaterialMode

贴图与顶点颜色组合材质的渲染模式。

枚举值 ​

  • LitOpaque — 受场景光照影响的不透明材质。
  • UnlitOpaque — 不受场景光照影响的不透明材质,适合使用顶点 RGB 烘焙亮度。
  • LitAlphaCutout — 受场景光照影响,并按 Albedo Alpha 裁剪的材质。
  • UnlitAlphaBlend — 不受场景光照影响,并使用 Alpha 混合的材质。

KnownColorProperty 双端 ​

命名空间 GameGraph.MaterialSystem.Enum

csharp
public readonly struct KnownColorProperty

属性 ​

PropertyId 双端 ​

csharp
public required uint PropertyId { get; init; }

PBRColorFactor 双端 ​

csharp
public static KnownColorProperty PBRColorFactor { get; }

PBR 颜色因子(与纹理颜色相乘的比例系数)

Urho2DColor 仅客户端 ​

csharp
public static KnownColorProperty Urho2DColor { get; }

Urho2D 材质乘色,与主纹理和精灵顶点颜色相乘。

VertexColorColorFactor 仅客户端 ​

csharp
public static KnownColorProperty VertexColorColorFactor { get; }

贴图顶点颜色材质乘色,与 Albedo 和顶点颜色相乘。

PBRVertexColorColorFactor 仅客户端 ​

csharp
public static KnownColorProperty PBRVertexColorColorFactor { get; }

PBR 顶点颜色材质乘色,与 Albedo 和顶点颜色相乘。

PBRVertexColorSpecularFactor 仅客户端 ​

csharp
public static KnownColorProperty PBRVertexColorSpecularFactor { get; }

PBR 顶点颜色材质的高光颜色因子。

PBREmissiveColor 双端 ​

csharp
public static KnownColorProperty PBREmissiveColor { get; }

PBR 自发光颜色

FlatLambertColor 双端 ​

csharp
public static KnownColorProperty FlatLambertColor { get; }

无贴图 Lambert 主颜色

OverrideColor 双端 ​

csharp
public static KnownColorProperty OverrideColor { get; }

覆盖颜色(将纹理颜色覆盖为指定颜色)

WaterTintColor 双端 ​

csharp
public static KnownColorProperty WaterTintColor { get; }

水体染色

KnownFloatProperty 双端 ​

命名空间 GameGraph.MaterialSystem.Enum

csharp
public readonly struct KnownFloatProperty

属性 ​

PropertyId 双端 ​

csharp
public required uint PropertyId { get; init; }

PBRMetallicFactor 双端 ​

csharp
public static KnownFloatProperty PBRMetallicFactor { get; }

PBR 金属度(0=非金属,1=全金属)

PBRRoughnessFactor 双端 ​

csharp
public static KnownFloatProperty PBRRoughnessFactor { get; }

PBR 粗糙度(0=光滑,1=粗糙)

PBREmissiveIntensity 双端 ​

csharp
public static KnownFloatProperty PBREmissiveIntensity { get; }

PBR 自发光强度乘数(可超过1用于HDR效果)

PBRVertexColorMetallicOffset 仅客户端 ​

csharp
public static KnownFloatProperty PBRVertexColorMetallicOffset { get; }

PBR 顶点颜色材质的金属度偏移。

PBRVertexColorRoughnessOffset 仅客户端 ​

csharp
public static KnownFloatProperty PBRVertexColorRoughnessOffset { get; }

PBR 顶点颜色材质的粗糙度偏移。

KnownShader 双端 ​

命名空间 GameGraph.MaterialSystem.Enum

csharp
public readonly struct KnownShader

已加载的 SDK 推荐材质 Technique 的兼容名称。

属性 ​

PhysicalBasedRendering 双端 ​

csharp
public static Shader PhysicalBasedRendering { get; }

PBR 默认材质,使用 Albedo 与金属度/粗糙度贴图。

PhysicalBasedRenderingAlpha 双端 ​

csharp
public static Shader PhysicalBasedRenderingAlpha { get; }

PBR 透明材质,使用 Albedo 的 Alpha 通道。

PhysicalBasedRenderingSolid 双端 ​

csharp
public static Shader PhysicalBasedRenderingSolid { get; }

无 Albedo 贴图的 PBR 不透明材质。

PhysicalBasedRenderingAlphaSolid 双端 ​

csharp
public static Shader PhysicalBasedRenderingAlphaSolid { get; }

无 Albedo 贴图的 PBR 透明材质。

DefaultLambert 双端 ​

csharp
public static Shader DefaultLambert { get; }

引擎默认 Lambert 材质。

ParticleLambert 双端 ​

csharp
public static Shader ParticleLambert { get; }

粒子 Mesh 推荐使用的 Lambert technique。

UnlitStealth 双端 ​

csharp
public static Shader UnlitStealth { get; }

内部使用的无光照外观 Lambert 变体;外部项目通常优先使用 FlatLambert。

GrayLevelFive 双端 ​

csharp
public static Shader GrayLevelFive { get; }

内置灰度五级材质。

GrayLevelTwo 双端 ​

csharp
public static Shader GrayLevelTwo { get; }

内置灰度二级材质。

HairSimulation 双端 ​

csharp
public static Shader HairSimulation { get; }

头发模拟专用材质。

StaticObject 双端 ​

csharp
public static Shader StaticObject { get; }

静态物体专用 PBR 材质。

FlatLambert 双端 ​

csharp
public static Shader FlatLambert { get; }

无贴图 Lambert 纯色不透明材质。

FlatLambertAlpha 双端 ​

csharp
public static Shader FlatLambertAlpha { get; }

无贴图 Lambert 纯色透明材质。

Water 双端 ​

csharp
public static Shader Water { get; }

单层水面材质。

KnownShaderPath 双端 ​

命名空间 GameGraph.MaterialSystem.Enum

csharp
public readonly struct KnownShaderPath

内置或 SDK 推荐的材质 Technique XML 路径兼容名称。

属性 ​

Path 双端 ​

csharp
public UTF8String Path { get; init; }

Technique XML 资源路径。

PhysicalBasedRendering 双端 ​

csharp
public static KnownShaderPath PhysicalBasedRendering { get; }

PBR 默认材质,使用 Albedo 与金属度/粗糙度贴图。

PhysicalBasedRenderingAlpha 双端 ​

csharp
public static KnownShaderPath PhysicalBasedRenderingAlpha { get; }

PBR 透明材质,使用 Albedo 的 Alpha 通道。

PhysicalBasedRenderingSolid 双端 ​

csharp
public static KnownShaderPath PhysicalBasedRenderingSolid { get; }

无 Albedo 贴图的 PBR 不透明材质。

PhysicalBasedRenderingAlphaSolid 双端 ​

csharp
public static KnownShaderPath PhysicalBasedRenderingAlphaSolid { get; }

无 Albedo 贴图的 PBR 透明材质。

DefaultLambert 双端 ​

csharp
public static KnownShaderPath DefaultLambert { get; }

引擎默认 Lambert 材质。

ParticleLambert 双端 ​

csharp
public static KnownShaderPath ParticleLambert { get; }

粒子 Mesh 推荐使用的 Lambert technique。

UnlitStealth 双端 ​

csharp
public static KnownShaderPath UnlitStealth { get; }

内部使用的无光照外观 Lambert 变体;外部项目通常优先使用 FlatLambert。

GrayLevelFive 双端 ​

csharp
public static KnownShaderPath GrayLevelFive { get; }

内置灰度五级材质。

GrayLevelTwo 双端 ​

csharp
public static KnownShaderPath GrayLevelTwo { get; }

内置灰度二级材质。

HairSimulation 双端 ​

csharp
public static KnownShaderPath HairSimulation { get; }

头发模拟专用材质。

StaticObject 双端 ​

csharp
public static KnownShaderPath StaticObject { get; }

静态物体专用 PBR 材质。

FlatLambert 双端 ​

csharp
public static KnownShaderPath FlatLambert { get; }

无贴图 Lambert 纯色不透明材质。

FlatLambertAlpha 双端 ​

csharp
public static KnownShaderPath FlatLambertAlpha { get; }

无贴图 Lambert 纯色透明材质。

Water 双端 ​

csharp
public static KnownShaderPath Water { get; }

单层水面材质。

KnownTechnique 双端 ​

命名空间 GameGraph.MaterialSystem.Enum

csharp
public static class KnownTechnique

已加载的 SDK 推荐材质 Technique。

属性 ​

Urho2D 仅客户端 ​

csharp
public static Technique Urho2D { get; }

Urho2D 无光照透明绘制方案,使用 alpha pass。

备注

按需在内存中创建,无对应 XML 路径。此实例共享;修改 pass 前请 Clone,或使用 MaterialUrho2D。

PhysicalBasedRendering 双端 ​

csharp
public static Technique PhysicalBasedRendering { get; }

PhysicalBasedRenderingAlpha 双端 ​

csharp
public static Technique PhysicalBasedRenderingAlpha { get; }

PhysicalBasedRenderingSolid 双端 ​

csharp
public static Technique PhysicalBasedRenderingSolid { get; }

PhysicalBasedRenderingAlphaSolid 双端 ​

csharp
public static Technique PhysicalBasedRenderingAlphaSolid { get; }

DefaultLambert 双端 ​

csharp
public static Technique DefaultLambert { get; }

ParticleLambert 双端 ​

csharp
public static Technique ParticleLambert { get; }

UnlitStealth 双端 ​

csharp
public static Technique UnlitStealth { get; }

GrayLevelFive 双端 ​

csharp
public static Technique GrayLevelFive { get; }

GrayLevelTwo 双端 ​

csharp
public static Technique GrayLevelTwo { get; }

HairSimulation 双端 ​

csharp
public static Technique HairSimulation { get; }

StaticObject 双端 ​

csharp
public static Technique StaticObject { get; }

FlatLambert 双端 ​

csharp
public static Technique FlatLambert { get; }

FlatLambertAlpha 双端 ​

csharp
public static Technique FlatLambertAlpha { get; }

Water 双端 ​

csharp
public static Technique Water { get; }

PhysicalBasedRenderingAlphaCutout 仅客户端 ​

csharp
public static Technique PhysicalBasedRenderingAlphaCutout { get; }

使用 Albedo Alpha 固定阈值裁剪的 PBR Technique。

PhysicalBasedRenderingAlphaBlend 仅客户端 ​

csharp
public static Technique PhysicalBasedRenderingAlphaBlend { get; }

读取 Albedo Alpha 且不写深度的 PBR 混合 Technique。

PhysicalBasedRenderingAlphaBlendSolid 仅客户端 ​

csharp
public static Technique PhysicalBasedRenderingAlphaBlendSolid { get; }

使用材质颜色 Alpha 且不写深度的无贴图 PBR 混合 Technique。

TexturedVertexColorLitOpaque 仅客户端 ​

csharp
public static Technique TexturedVertexColorLitOpaque { get; }

受光照的不透明贴图顶点颜色 Technique。

TexturedVertexColorUnlitOpaque 仅客户端 ​

csharp
public static Technique TexturedVertexColorUnlitOpaque { get; }

不受光照的不透明贴图顶点颜色 Technique。

TexturedVertexColorLitAlphaCutout 仅客户端 ​

csharp
public static Technique TexturedVertexColorLitAlphaCutout { get; }

受光照且使用 Alpha 裁剪的贴图顶点颜色 Technique。

TexturedVertexColorUnlitAlphaBlend 仅客户端 ​

csharp
public static Technique TexturedVertexColorUnlitAlphaBlend { get; }

不受光照且使用 Alpha 混合的贴图顶点颜色 Technique。

PhysicalBasedRenderingVertexColor 仅客户端 ​

csharp
public static Technique PhysicalBasedRenderingVertexColor { get; }

贴图乘顶点 RGBA 的不透明 PBR Technique。

PhysicalBasedRenderingVertexColorAlphaCutout 仅客户端 ​

csharp
public static Technique PhysicalBasedRenderingVertexColorAlphaCutout { get; }

贴图乘顶点 RGBA,并按 Albedo Alpha 裁剪的 PBR Technique。

KnownTechniquePath 双端 ​

命名空间 GameGraph.MaterialSystem.Enum

csharp
public readonly struct KnownTechniquePath

内置或 SDK 推荐的材质 Technique XML 路径。

属性 ​

Path 双端 ​

csharp
public UTF8String Path { get; init; }

Technique XML 资源路径。

PhysicalBasedRendering 双端 ​

csharp
public static KnownTechniquePath PhysicalBasedRendering { get; }

PhysicalBasedRenderingAlpha 双端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingAlpha { get; }

PhysicalBasedRenderingSolid 双端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingSolid { get; }

PhysicalBasedRenderingAlphaSolid 双端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingAlphaSolid { get; }

PhysicalBasedRenderingAlphaCutout 仅客户端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingAlphaCutout { get; }

使用 Albedo Alpha 固定阈值裁剪的 PBR Technique。

PhysicalBasedRenderingAlphaBlend 仅客户端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingAlphaBlend { get; }

读取 Albedo Alpha 且不写深度的 PBR 混合 Technique。

PhysicalBasedRenderingAlphaBlendSolid 仅客户端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingAlphaBlendSolid { get; }

使用材质颜色 Alpha 且不写深度的无贴图 PBR 混合 Technique。

DefaultLambert 双端 ​

csharp
public static KnownTechniquePath DefaultLambert { get; }

ParticleLambert 双端 ​

csharp
public static KnownTechniquePath ParticleLambert { get; }

UnlitStealth 双端 ​

csharp
public static KnownTechniquePath UnlitStealth { get; }

GrayLevelFive 双端 ​

csharp
public static KnownTechniquePath GrayLevelFive { get; }

GrayLevelTwo 双端 ​

csharp
public static KnownTechniquePath GrayLevelTwo { get; }

HairSimulation 双端 ​

csharp
public static KnownTechniquePath HairSimulation { get; }

StaticObject 双端 ​

csharp
public static KnownTechniquePath StaticObject { get; }

FlatLambert 双端 ​

csharp
public static KnownTechniquePath FlatLambert { get; }

FlatLambertAlpha 双端 ​

csharp
public static KnownTechniquePath FlatLambertAlpha { get; }

Water 双端 ​

csharp
public static KnownTechniquePath Water { get; }

TexturedVertexColorLitOpaque 仅客户端 ​

csharp
public static KnownTechniquePath TexturedVertexColorLitOpaque { get; }

受光照的不透明贴图顶点颜色 Technique。

TexturedVertexColorUnlitOpaque 仅客户端 ​

csharp
public static KnownTechniquePath TexturedVertexColorUnlitOpaque { get; }

不受光照的不透明贴图顶点颜色 Technique。

TexturedVertexColorLitAlphaCutout 仅客户端 ​

csharp
public static KnownTechniquePath TexturedVertexColorLitAlphaCutout { get; }

受光照且使用 Alpha 裁剪的贴图顶点颜色 Technique。

TexturedVertexColorUnlitAlphaBlend 仅客户端 ​

csharp
public static KnownTechniquePath TexturedVertexColorUnlitAlphaBlend { get; }

不受光照且使用 Alpha 混合的贴图顶点颜色 Technique。

PhysicalBasedRenderingVertexColor 仅客户端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingVertexColor { get; }

贴图乘顶点 RGBA 的不透明 PBR Technique。

PhysicalBasedRenderingVertexColorAlphaCutout 仅客户端 ​

csharp
public static KnownTechniquePath PhysicalBasedRenderingVertexColorAlphaCutout { get; }

贴图乘顶点 RGBA,并按 Albedo Alpha 裁剪的 PBR Technique。

KnownVectorProperty 双端 ​

命名空间 GameGraph.MaterialSystem.Enum

csharp
public readonly struct KnownVectorProperty

属性 ​

PropertyId 双端 ​

csharp
public required uint PropertyId { get; init; }