手册:材质/RenderMaterialV1

来自Minecraft基岩版开发Wiki
Miemie Method讨论 | 贡献2022年8月7日 (日) 04:44的版本 (Miemie Method移动页面Manual:材质/RenderMaterialManual:材质/RenderMaterialV1,不留重定向)
    •  states:定义了该材质的渲染状态列表,决定了该材质提供的功能。该字段的前缀会影响该字段的继承类型。此时不添加前缀,为替换模式,将替换掉所继承的材质中所有的渲染状态。
    •  +states:定义了该材质相比于所继承的材质新增加的渲染状态列表。此时前缀为+,为增加模式,只有在 states字段不存在时才会解析,先于 -states的解析。
    •  -states:定义了该材质相比于所继承的材质要删去的渲染状态列表。此时前缀为-,为删去模式,只有在 states字段不存在时才会解析。
      • :一个渲染状态。如果在所有 [+-]states解析结束时列表中存在EnableAlphaToCoverage渲染状态,将自动为该材质添加ALPHA_TO_COVERAGE宏定义,该操作先于 [+-]defines的解析。
    •  vertexShader:定义了该材质的顶点着色器
    •  fragmentShader:定义了该材质的片元着色器
    •  geometryShader:定义了该材质的几何着色器
    •  vrGeometryShader:定义了该材质的VR几何着色器
    •  defines:定义了该材质使用的宏定义列表,用于配合激活或切换着色器代码中的特定部分。该字段的前缀会影响该字段的继承类型。此时不添加前缀,为替换模式,将替换掉所继承的材质中所有的宏定义。
    •  +defines:定义了该材质相比于所继承的材质新增加的宏定义列表。此时前缀为+,为增加模式,只有在 defines字段不存在时才会解析,先于 -defines的解析。
    •  -defines:定义了该材质相比于所继承的材质要删去的宏定义列表。此时前缀为-,为删去模式,只有在 defines字段不存在时才会解析。
    •  depthFunc:该材质的深度模板测试中使用的深度函数,是一个比较函数,负责源深度值与深度缓冲区比较。
    •  depthStencilFaceName:该材质的模板测试中使用的面的名称,当前为一个占位符。
    •  frontFace:该材质正面的模板测试。
      •  stencilFunc:该材质正面的模板函数,是一个比较函数,负责模板参考值与模板缓冲区比较。
      •  stencilFailOp:该材质正面的模板失败操作,是一个模板操作,在模板测试失败时执行。
      •  stencilDepthFailOp:该材质正面的深度失败操作,是一个模板操作,在模板测试通过但深度测试失败时执行。
      •  stencilPassOp:该材质正面的模板通过操作,是一个模板操作,在模板测试与深度测试皆通过时执行。
    •  backFace:该材质背面的模板测试。
      •  stencilFunc:该材质背面的模板函数,是一个比较函数,负责模板参考值与模板缓冲区比较。
      •  stencilFailOp:该材质背面的模板失败操作,是一个模板操作,在模板测试失败时执行。
      •  stencilDepthFailOp:该材质背面的深度失败操作,是一个模板操作,在模板测试通过但深度测试失败时执行。
      •  stencilPassOp:该材质背面的模板通过操作,是一个模板操作,在模板测试与深度测试皆通过时执行。
    •  stencilRefOverride:该材质的模板测试中是否使用参考值覆写,如果为真,将使用 stencilRef的值为模板测试参考值,默认为假。
    •  stencilRef:该材质的模板测试的参考值覆写,接受非负整数。存在该字段时 stencilRefOverride默认为真。
    •  stencilReadMask:该材质的模板测试的读取掩码,会在模板测试比较前与参考值进行按位与运算,接受非负整数。
    •  stencilWriteMask:该材质的模板测试的写入掩码,会在模板测试比较后与参考值进行按位与运算,接受非负整数。
    •  blendSrc:颜色混合前源颜色需要采取的操作,是一个混合目标,默认为SourceAlpha
    •  blendDst:颜色混合前缓冲区中的目标颜色需要采取的操作,是一个混合目标,默认为OneMinusSrcAlpha
    •  alphaSrc:透明度混合前源颜色需要采取的操作,是一个混合目标,默认为One
    •  alphaDst:透明度混合前缓冲区中的目标颜色需要采取的操作,是一个混合目标,默认为OneMinusSrcAlpha
    •  samplerStates:定义了该材质使用的纹理采样状态列表,用于配置纹理的过滤与折绕。该字段的前缀会影响该字段的继承类型。此时不添加前缀,为替换模式,将替换掉所继承的材质中所有的宏定义。
    •  +samplerStates:定义了该材质相比于所继承的材质新增加的纹理采样状态列表。此时前缀为+,为增加模式,只有在 samplerStates字段不存在时才会解析。
    •  -samplerStates:纹理采样状态列表的删去功能尚不可用,该字段此时为占位符。
      •  [0-7]:一个纹理采样状态。一个材质最多只支持存在8个纹理采样状态。
        •  samplerIndex:采样索引,代表第几张纹理。
        •  textureFilter纹理过滤模式,决定源纹理与实际显示的缩放过的纹理间点的映射关系。
        •  textureWrap纹理折绕模式,决定了纹理的UV超过[0,1]时折行或环绕的模式。
        •  shaderStage着色器阶段
        •  comparisonFunc比较函数
    •  vertexFields:该材质使用的顶点场列表,用于决定该材质渲染时网格的每个顶点都存有何种信息。
    •  depthBias:该材质栅格化时使用的深度偏差。
    •  slopeScaledDepthBias:该材质栅格化时使用的斜率缩放深度偏差。
    •  depthBiasOGL:OpenGL平台上该材质栅格化时使用的深度偏差。
    •  slopeScaledDepthBiasOGL:OpenGL平台上该材质栅格化时使用的斜率缩放深度偏差。
    •  msaaSupport:材质栅格化时是否支持多重采样抗锯齿(MSAA),支持的值见MSAA支持
    •  primitiveMode:该材质的基本图元模式,默认为TriangleList
    •  renderTargetFormats:该材质的渲染目标格式列表。
      • :一个渲染目标格式列表。
    •  isAnimatedTexture:该材质的渲染目标是否是动态纹理。