LogoArcartX Doc

Shader着色器

Shader着色器配置指南

每个时代都有它的任务,完成这些任务便推动了人类的进步

概述

ArcartX提供了多种改变世界环境外观的方式:

  • Shader着色器
  • 修改天空盒贴图
  • 修改雾气颜色浓度距离

值得注意的是,不同版本对资源域的命名方式似乎略有差异,请根据你的游戏版本进行定义

本文主要介绍Shader着色器的配置方法,其他功能可以在Shimmer、API、命令文档中找到。

文件结构

你的shader文件.json
你的shader文件.json
你的shader文件.fsh

重要提示:Shader文件需要部署在服务端,且资源域必须修改为arcartx

配置示例

Post处理配置

shader/post/blur.json
{
    "targets": [
        "swap"
    ],
    "passes": [
        {
            "name": "arcartx:blur",
            "intarget": "minecraft:main",
            "outtarget": "swap",
            "uniforms": [
                {
                    "name": "BlurDir",
                    "values": [ 1.0, 0.0 ]
                },
                {
                    "name": "Radius",
                    "values": [ 8.0 ]
                }
            ]
        }
        // ... 更多passes配置
    ]
}

程序配置

shader/program/blur.json
{
    "blend": {
        "func": "add",
        "srcrgb": "srcalpha",
        "dstrgb": "1-srcalpha"
    },
    "vertex": "sobel",
    "fragment": "arcartx:blur",
    "attributes": [ "Position" ],
    "samplers": [
        { "name": "DiffuseSampler" }
    ],
    "uniforms": [
        { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] },
        // ... 更多uniforms配置
    ]
}

着色器代码

#version 150

uniform sampler2D DiffuseSampler;
// ... 着色器代码

使用方法

配置完成后,你可以通过以下方式启用shader:

  • API调用
  • Shimmer脚本
  • 游戏命令

关于着色器编写:

  • 需要具备GLSL语言基础
  • 建议参考相关技术文档
  • 可以从现有着色器示例中学习

On this page