MineGraph Docs Help

OptiFine 提供的数据

统一变量

纹理

通用

uniform sampler2D shadowtex0; uniform sampler2D shadowtex1; uniform sampler2D depthtex0; uniform sampler2D depthtex1; uniform sampler2D depthtex2; uniform sampler2D colortex4; uniform sampler2D colortex5; uniform sampler2D colortex6; uniform sampler2D colortex7; uniform sampler2D colortex8; uniform sampler2D colortex9; uniform sampler2D colortex10; uniform sampler2D colortex11; uniform sampler2D colortex12; uniform sampler2D colortex13; uniform sampler2D colortex14; uniform sampler2D colortex15; uniform sampler2D shadowcolor0; uniform sampler2D shadowcolor1; uniform sampler2D noisetex;

几何缓冲专用

uniform sampler2D gtexture; uniform sampler2D lightmap; uniform sampler2D normals; uniform sampler2D specular;

延迟处理专用

uniform sampler2D colortex0; uniform sampler2D colortex1; uniform sampler2D colortex2; uniform sampler2D colortex3;

顶点属性

in vec3 vaPosition; // position (x, y, z) 1.17+,对于地形(terrain)来说是区块起始位置,需要配合 chunkOffset 使用 in vec4 vaColor; // color (r, g, b, a) 1.17+ in vec2 vaUV0; // texture (u, v) 1.17+ // in ivec2 vaUV1; // overlay (u, v) 1.17+,在原版中的作用被 entityColor 替代,若在 Iris 中声明此属性可能导致报错 in ivec2 vaUV2; // lightmap (u, v) 1.17+ in vec3 vaNormal; // normal (x, y, z) 1.17+ in vec3 mc_Entity; // xy = 方块ID, 渲染器类型 方块 ID 只用于在 block.properties 中有定义的方块 in vec2 mc_midTexCoord; // st = midTexU, midTexV 精灵图的纹理中央UV in vec4 at_tangent; // xyz = 切向量, w = 手系 in vec3 at_velocity; // 上一帧的顶点偏移量 视口坐标,仅实体和方块实体 in vec3 at_midBlock; // 向方块中心偏移1/64m 仅方块

标准宏

标准宏会在每个着色器文件的 #version 行后自动定义,可以在着色器程序中随时使用,无需进行手动定义。

Minecraft 版本
#define MC_VERSION <value>

值为 122 格式(主 1, 次 2, 发布 2) 例如: JE 1.9.4-> 10904JE 1.11.2-> 11102 等。

最高支持的 GL 版本
#define MC_GL_VERSION <value>

整型值,例如: 210320450

最高支持的 GLSL 版本
#define MC_GLSL_VERSION <value>

整型值,例如: 120150450

操作系统

下列之一:

#define MC_OS_WINDOWS #define MC_OS_MAC #define MC_OS_LINUX #define MC_OS_OTHER
驱动程序

下列之一:

#define MC_GL_VENDOR_AMD #define MC_GL_VENDOR_ATI #define MC_GL_VENDOR_INTEL #define MC_GL_VENDOR_MESA #define MC_GL_VENDOR_NVIDIA #define MC_GL_VENDOR_XORG #define MC_GL_VENDOR_OTHER
GPU

下列之一:

#define MC_GL_RENDERER_RADEON #define MC_GL_RENDERER_GEFORCE #define MC_GL_RENDERER_QUADRO #define MC_GL_RENDERER_INTEL #define MC_GL_RENDERER_GALLIUM #define MC_GL_RENDERER_MESA #define MC_GL_RENDERER_OTHER
OpenGL 扩展

与受支持的 GL 扩展同名的前缀为 MC_ 的宏。

  • 例如,当支持扩展 GL_ARB_shader_texture_lod 时,会定义宏 MC_GL_ARB_shader_text_lod

  • 只有支持且引用了的扩展才会被添加到着色器中。

设置

<value> 的值由光影选择页面的设置给出。

#define MC_FXAA_LEVEL <value> // 当 FXAA 启用时,值:2、4 #define MC_NORMAL_MAP // 当法线贴图启用时 #define MC_SPECULAR_MAP // 当高光贴图启用时 #define MC_RENDER_QUALITY <value> // 值:0.5、0.70710677、1.0、1.4142135、2.0 #define MC_SHADOW_QUALITY <value> // 值:0.5、0.70710677、1.0、1.4142135、2.0 #define MC_HAND_DEPTH <value> // 值:0.0625、0.125、0.25 #define MC_OLD_HAND_LIGHT // 当经典手持光源启用时 #define MC_OLD_LIGHTING // 当经典光照启用时 #define MC_ANISOTROPIC_FILTERING <value> // 当各向异性过滤启用时
纹理

OptiFineDoc "texture.properties"

#define MC_TEXTURE_FORMAT_LAB_PBR // LabPBR 纹理格式 ([[[Wiki|https://wiki.shaderlabs.org/wiki/LabPBR_Material_Standard]]]) #define MC_TEXTURE_FORMAT_LAB_PBR_1_3 // 版本 1.3

你也可以在站内找到 LabPBR 格式标准的翻译版本

渲染阶段

<const> 其值按执行顺序给出,用于统一变量 renderStage 。由于部分几何共用一个几何缓冲程序,因此可以使用形如 if(renderStage == MC_RENDER_STAGE_XXX) 进行当前渲染几何类型判断。

#define MC_RENDER_STAGE_NONE <const> // 未定义 #define MC_RENDER_STAGE_SKY <const> // 天空 #define MC_RENDER_STAGE_SUNSET <const> // 日出和日落的天空覆盖 #define MC_RENDER_STAGE_CUSTOM_SKY <const> // 自定义天空 #define MC_RENDER_STAGE_SUN <const> // 太阳 #define MC_RENDER_STAGE_MOON <const> // 月亮 #define MC_RENDER_STAGE_STARS <const> // 星星 #define MC_RENDER_STAGE_VOID <const> // 虚空 #define MC_RENDER_STAGE_TERRAIN_SOLID <const> // 固体地形 #define MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED <const> // 带有 MipMap 的裁切地形 #define MC_RENDER_STAGE_TERRAIN_CUTOUT <const> // 裁切地形 #define MC_RENDER_STAGE_ENTITIES <const> // 实体 #define MC_RENDER_STAGE_BLOCK_ENTITIES <const> // 方块实体 #define MC_RENDER_STAGE_DESTROY <const> // 挖掘裂纹覆盖 #define MC_RENDER_STAGE_OUTLINE <const> // 方块选择框 #define MC_RENDER_STAGE_DEBUG <const> // 调试渲染 #define MC_RENDER_STAGE_HAND_SOLID <const> // 固体手持物品 #define MC_RENDER_STAGE_TERRAIN_TRANSLUCENT <const> // 半透明地形 #define MC_RENDER_STAGE_TRIPWIRE <const> // 绊线 #define MC_RENDER_STAGE_PARTICLES <const> // 粒子 #define MC_RENDER_STAGE_CLOUDS <const> // 云 #define MC_RENDER_STAGE_RAIN_SNOW <const> // 雨雪 #define MC_RENDER_STAGE_WORLD_BORDER <const> // 世界边界 #define MC_RENDER_STAGE_HAND_TRANSLUCENT <const> // 半透明手持物品
05 二月 2026