- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
手冊:材質/1.0.0..
出自Minecraft基岩版开发Wiki
該格式版本下允許欄位繼承。
- <material_name>[:<inherited_material_name>]:一個材質,可以使用
:
繼承另一個材質。- states:定義了該材質的繪製狀態列表,決定了該材質提供的功能。該欄位的前綴會影響該欄位的繼承型別。此時不加入前綴,為替換模式,將替換掉所繼承的材質中所有的繪製狀態。
- +states:定義了該材質相比於所繼承的材質新增加的繪製狀態列表。此時前綴為
+
,為增加模式,只有在 states欄位不存在時才會解析,先於 -states的解析。 - -states:定義了該材質相比於所繼承的材質要刪去的繪製狀態列表。此時前綴為
-
,為刪去模式,只有在 states欄位不存在時才會解析。- :一個繪製狀態。如果在所有 [+-]states解析結束時列表中存在
EnableAlphaToCoverage
繪製狀態,將自動為該材質加入ALPHA_TO_COVERAGE
宏定義,該操作先於 [+-]defines的解析。
- :一個繪製狀態。如果在所有 [+-]states解析結束時列表中存在
- 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:定義了該材質使用的宏定義列表,用於配合啟動或切換著色器程式碼中的特定部分。該欄位的前綴會影響該欄位的繼承型別。此時不加入前綴,為替換模式,將替換掉所繼承的材質中所有的宏定義。
- +defines:定義了該材質相比於所繼承的材質新增加的宏定義列表。此時前綴為
+
,為增加模式,只有在 defines欄位不存在時才會解析,先於 -defines的解析。 - -defines:定義了該材質相比於所繼承的材質要刪去的宏定義列表。此時前綴為
-
,為刪去模式,只有在 defines欄位不存在時才會解析。- :一個宏定義。
- depthFunc:該材質的深度模板測試中使用的深度函式,是一個比較函式,負責源深度值與深度緩衝區比較。
- depthStencilFaceName:該材質的模板測試中使用的面的名稱,目前為一個佔位符。
- frontFace:該材質正面的模板測試。
- backFace:該材質背面的模板測試。
- stencilRefOverride:該材質的模板測試中是否使用參考值覆寫,如果為真,將使用 stencilRef的值為模板測試參考值,預設為假。
- stencilRef:該材質的模板測試的參考值覆寫,接受非負整數。存在該欄位時 stencilRefOverride預設為真。
- stencilReadMask:該材質的模板測試的讀取掩碼,會在模板測試比較前與參考值進行按位與運算,接受非負整數。
- stencilWriteMask:該材質的模板測試的寫入掩碼,會在模板測試比較後與參考值進行按位與運算,接受非負整數。
- blendSrc:顏色混合前源顏色需要採取的操作,是一個混合目標,預設為
SourceAlpha
。 - blendDst:顏色混合前緩衝區中的目標顏色需要採取的操作,是一個混合目標,預設為
OneMinusSrcAlpha
。 - alphaSrc:透明度混合前源顏色需要採取的操作,是一個混合目標,預設為
One
。 - alphaDst:透明度混合前緩衝區中的目標顏色需要採取的操作,是一個混合目標,預設為
OneMinusSrcAlpha
。 - samplerStates:定義了該材質使用的紋理採樣狀態列表,用於組態紋理的過濾與折繞。該欄位的前綴會影響該欄位的繼承型別。此時不加入前綴,為替換模式,將替換掉所繼承的材質中所有的紋理採樣狀態。
- +samplerStates:定義了該材質相比於所繼承的材質新增加的紋理採樣狀態列表。此時前綴為
+
,為增加模式,只有在 samplerStates欄位不存在時才會解析。 - -samplerStates:紋理採樣狀態列表的刪去功能尚不可用,該欄位此時為佔位符。
- vertexFields:該材質使用的頂點場列表,用於決定該材質繪製時網格的每個頂點都存有何種資訊。
- :一個頂點場。
- field:該頂點場的頂點場型別。
- :一個頂點場。
- depthBias:該材質光柵化時使用的深度偏差。
- slopeScaledDepthBias:該材質光柵化時使用的斜率縮放深度偏差。
- depthBiasOGL:OpenGL平台上該材質光柵化時使用的深度偏差。
- slopeScaledDepthBiasOGL:OpenGL平台上該材質光柵化時使用的斜率縮放深度偏差。
- msaaSupport:材質光柵化時是否支援多重採樣抗鋸齒(MSAA),支援的值見MSAA支援。
- primitiveMode:該材質的基本圖元模式,預設為
TriangleList
。 - renderTargetFormats:該材質的繪製目標格式列表。
- :一個繪製目標格式列表。
- :一個繪製目標格式,是一個紋理格式。
- :一個繪製目標格式列表。
- isAnimatedTexture:該材質的繪製目標是否是動態紋理。
- varients:定義了該材質的變體,變體會繼承本體定義的所有屬性,並支援覆寫、加入或刪去一些屬性。該欄位的前綴會影響該欄位的繼承型別。此時不加入前綴,為替換模式,將替換掉所繼承的材質中所有變體。
- +varients:定義了該材質相比於所繼承的材質新增加的變體。此時前綴為
+
,為增加模式,只有在 states欄位不存在時才會解析。 - -varients:變體的刪去功能尚不可用,該欄位此時為佔位符。
- varient:相當於 varients。
- +varient:相當於 +varients。
- -varient:相當於 -varients。
- :變體列表中的一個元素。
- <variant_name>:一個變體,變體列表中每個元素只允許定義一個變體,最終變體的可以用於引用的完整名稱將為
<material_name>.<variant_name>
。- 材質定義V1 參見Manual:材質/RenderMaterialV1
- <variant_name>:一個變體,變體列表中每個元素只允許定義一個變體,最終變體的可以用於引用的完整名稱將為
- :變體列表中的一個元素。