着色器
最后更新适配版本:1.16.200.2正式版
用料
顶点,片段着色器(有时还包括几何着色器)与某些选项作为材料结合在一起,是自定义着色器所必需的。要创建新材料,您需要创建文件,该文件与原始资源包中的.material文件名匹配。例如:materials/particles.material
。材质通过在冒号之后添加父材质来支持继承。例如:entity_alpha:entity_base
通用材料定义字段
栏位名称 | 描述 | 示例值 | 笔记 |
---|---|---|---|
vertexShader | 相对于hlsl / glsl文件夹的着色器的路径 | 对于HLSL着色器,.hlsl 添加了后缀。 | |
fragmentShader | 相对于hlsl / glsl文件夹的着色器的路径 | 对于HLSL着色器,.hlsl 添加了后缀。 | |
vertexFields | 传递给顶点着色器的字段数组 | 最好从香草材料中复制该字段。 | |
variants | 对象数组,定义材料的变体 | 最好从香草材料中复制该字段。 | |
+defines | #define 要添加到着色器源的指令数组 | 对于重用着色器很有用,但可以更改一些较小的设置。 | |
+states | 要启用的状态数组 | ["Blending", "DisableAlphaWrite", "DisableDepthWrite"] | 对于OpenGL实现,这等效于glEnable调用。 |
-defines | #defines 从继承中删除的指令数组+defines | ||
+samplerStates | 对象数组,定义如何处理特定索引处的纹理 | { "samplerIndex": 0, "textureFilter": "Point" } | textureFilter 指定textureWrap 在纹理尺寸外部访问时如何对纹理进行采样并指定行为。 |
msaaSupport | 多样本抗锯齿支持 | Both | |
blendSrc | 指定如何计算颜色源混合因子 | One | 对于OpenGL实现,这等效于glBlendFunc调用。 |
blendDst | 指定如何计算颜色目标混合因子 | One | 对于OpenGL实现,这等效于glBlendFunc调用。 |
例:
{
"materials": {
"version": "1.0.0",
"particle_debug": {
"vertexShader": "shaders/particle_generic.vertex",
"fragmentShader": "shaders/particle_debug.fragment",
"vertexFields": [
{ "field": "Position" },
{ "field": "Color" },
{ "field": "UV0" }
],
"+samplerStates": [
{
"samplerIndex": 0,
"textureFilter": "Point"
}
],
"msaaSupport": "Both"
}
}
}