Manual:材质/RenderMaterialV0:修订间差异

来自Minecraft基岩版开发Wiki
添加的内容 删除的内容
无编辑摘要
标签2017年版源代码编辑
无编辑摘要
标签2017年版源代码编辑
 
第38行: 第38行:
*** {{json|object}}:一个顶点场。
*** {{json|object}}:一个顶点场。
**** {{json|enum|field}}:该顶点场的[[#顶点场|顶点场类型]]。
**** {{json|enum|field}}:该顶点场的[[#顶点场|顶点场类型]]。
** {{json|float|depthBias}}:该材质栅化时使用的深度偏差。
** {{json|float|depthBias}}:该材质栅化时使用的深度偏差。
** {{json|float|slopeScaledDepthBias}}:该材质栅化时使用的斜率缩放深度偏差。
** {{json|float|slopeScaledDepthBias}}:该材质栅化时使用的斜率缩放深度偏差。
** {{json|float|depthBiasOGL}}:OpenGL平台上该材质栅化时使用的深度偏差。
** {{json|float|depthBiasOGL}}:OpenGL平台上该材质栅化时使用的深度偏差。
** {{json|float|slopeScaledDepthBiasOGL}}:OpenGL平台上该材质栅化时使用的斜率缩放深度偏差。
** {{json|float|slopeScaledDepthBiasOGL}}:OpenGL平台上该材质栅化时使用的斜率缩放深度偏差。
** {{json|enum|msaaSupport}}:材质栅化时是否支持多重采样抗锯齿(MSAA),支持的值见[[#MSAA支持|MSAA支持]]。
** {{json|enum|msaaSupport}}:材质栅化时是否支持多重采样抗锯齿(MSAA),支持的值见[[#MSAA支持|MSAA支持]]。
** {{json|enum|primitiveMode}}:该材质的[[#基本图元模式|基本图元模式]],默认为{{cd|TriangleList}}。
** {{json|enum|primitiveMode}}:该材质的[[#基本图元模式|基本图元模式]],默认为{{cd|TriangleList}}。
** {{json|array|renderTargetFormats}}:该材质的渲染目标格式列表。
** {{json|array|renderTargetFormats}}:该材质的渲染目标格式列表。

2022年8月7日 (日) 15:23的最新版本

    •  states:定义了该材质的渲染状态列表,决定了该材质提供的功能。
      • :一个渲染状态。如果在所有 [+-]states解析结束时列表中存在EnableAlphaToCoverage渲染状态,将自动为该材质添加ALPHA_TO_COVERAGE宏定义,该操作先于 [+-]defines的解析。
    •  vertexShader:定义了该材质的顶点着色器路径,格式通常为shaders/<shader_name>.vertex。引擎会为GFX API插入中间值和追加后缀,对于HLSL,会在shaders后插入/hlsl,并在文件末追加.hlsl扩展名以构成完整路径;对于GLSL,会在shaders后插入/glsl以构成完整路径。该追加操作适用于以下所有类型的着色器路径。
    •  fragmentShader:定义了该材质的片元着色器路径,格式通常为shaders/<shader_name>.fragment
    •  geometryShader:定义了该材质的几何着色器路径,格式通常为shaders/<shader_name>.geometry
    •  vrGeometryShader:定义了该材质的VR几何着色器路径,格式通常为shaders/<shader_name>.geometry
    •  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:定义了该材质使用的纹理采样状态列表,用于配置纹理的过滤与折绕。
      •  [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:该材质的渲染目标是否是动态纹理。
    •  varients:定义了该材质的变体,变体会继承本体定义的所有属性,并支持覆写、添加或删去一些属性。
    •  varient:相当于 varients
      • :变体列表中的一个元素。
        •  <variant_name>:一个变体,变体列表中每个元素只允许定义一个变体,最终变体的可以用于引用的完整名称将为<material_name>.<variant_name>
    •  PolygonOffsetLevel:多边形偏移级别。