MC光影进阶使用教程(一)发现与反馈光影包问题
rrtt217
编辑于 2025年12月03日 23:24
收录于文集
共1篇
MC图形社区

本教程作为这个视频​的随附教程,主要聚焦于发现与反馈光影包问题。如果你还不会安装或加载光影包,你应该查看MGC文档。

1.发现问题与收集信息

1.1 光影bug的简要分类

按bug的表现可以分为:

  • JVM崩溃(可能会产生hs_err_pidxxx.log,不会产生crash report,比如视频中Photon的崩溃以及下图):

(图源Revelation/issue#33的错误报告)

当然也有不产生hs_err_pid的情况,如Photon >=1.2在Windows Intel上的崩溃。这种情况通常是在打开主菜单前游戏就突然退出,且log也突然中断。

由于光影导致的JVM崩溃通常与系统配置,尤其是驱动有关。

  • 游戏崩溃(产生crash report):

(图为Revelation在Iris 1.7.x上的崩溃(#25),IrisFixes修复了这个bug)

由于光影导致的游戏崩溃通常与特定模组相关,你(或者AI)可以从堆栈中推测出导致崩溃的模组。如果模组就是Iris/Oculus/Optifine本身,你可能需要检查版本是否最新且满足作者要求,然后再进行下一步;如果是其他模组,这通常意味着复杂的兼容性问题,你需要采取二分法找出有问题的模组,然后收集尽可能多的信息用于反馈。

  • 光影加载失败/编译错误

对于Iris,聊天框中出现The shader pack failed to load! Copy Info./The shaderpack failed to load! please report the error to the shader developer.点击蓝色字体即可复制一段简短的错误提示。 对于Optifine,聊天框中出现Invalid Program: xxx.且画面异常。

导致这个问题的一般有三种可能:光影源文件中出现了一般的语法错误,你的硬件对GLSL语法的要求更严格,或你的硬件特性支持过老。以下是Deepseek生成的示例错误信息,以供参考:

语法错误信息

ERROR: 0:8: 'time' : syntax error

ERROR: 0:10: 'gl_FragColor' : undeclared identifier

ERROR: 0:12: '=' : dimension mismatch

ERROR: 0:15: 'constructor' : not enough data provided for construction

ERROR: 0:18: 'main' : function is already defined

ERROR: 0:21: 'if' : conditional expression must be scalar boolean

ERROR: 0:25: '[]' : array index out of bounds

ERROR: 0:28: 'texture' : no matching overloaded function found

ERROR: 0:30: '=' : cannot convert from 'float' to 'int'

扩展不支持错误信息

ERROR: 0:3: 'textureGather' : function is not supported in this profile

ERROR: 0:7: 'GL_ARB_shader_image_load_store' : extension is not supported

ERROR: 0:12: '#extension' : extension 'GL_NV_gpu_shader5' is not supported

ERROR: 0:18: 'gl_ClipDistance' : requires extension GL_EXT_clip_cull_distance

ERROR: 0:22: 'imageLoad' : imaging features are not supported in this profile

ERROR: 0:25: 'subpassLoad' : requires Vulkan memory model or GL_EXT_subpasses extension

ERROR: 0:30: 'fma' : double precision requires GL_ARB_gpu_shader_fp64

ERROR: 0:35: 'atomicAdd' : atomics require GL_ARB_shader_atomic_counters extension

GLSL版本过低错误信息

ERROR: 0:3: 'out' : storage qualifier supported in GLSL 1.40 or later

ERROR: 0:7: 'layout' : syntax error: syntax error

ERROR: 0:12: 'texture' : function is not available in GLSL 1.30 (GLSL 1.30 required)

ERROR: 0:18: 'trunc' : no matching overloaded function found in GLSL 1.20

ERROR: 0:22: 'isnan' : function available in GLSL 1.30 or later only

ERROR: 0:25: 'switch' : statement not supported in this profile (GLSL 1.30 required)

ERROR: 0:30: 'in' : storage qualifier not supported before GLSL 1.30

ERROR: 0:35: 'gl_InstanceID' : built-in variable requires GLSL 1.40 or later

ERROR: 0:40: 'uint' : type not supported before GLSL 1.30

ERROR: 0:45: 'flat' : interpolation qualifier supported in GLSL 1.30 or later

ERROR: 0:50: 'bitfieldExtract' : function available in GLSL 4.00 or later only

如果要大致确定可能成因,可以询问AI。

  • 光影虽加载成功,但画面严重损坏

如白屏,黑屏,花屏等,见视频中的Windows itt3.2。

有可能是特定显卡实现的问题,或是光影内部的逻辑错误。同样需要在不同显卡平台上测试。

  • 光影在原版很多场景正常工作,但在特定情况画面损坏

如视频中的Windows Photon的染色玻璃。似乎已在voxy-support分支修复。

可能原因同上。

  • 原版工作正常,整合包里工作异常

字面意思。一般是光影在开发过程中未考虑特定模组兼容,反之亦然。需要看光影/模组开发者是否有意愿修复。

1.2 通用调试信息生成技巧

  • 截图:

(以上为截图方式)

  • 应该在哪些界面内截图:F3(展示系统信息);游戏内(展示具体渲染错误)

  • 不应该在哪些界面内截图:

(。。。)

  • Minecraft/JVM日志:

Minecraft日志:位于<实例文件夹>/logs

Minecraft崩溃报告:位于<实例文件夹>/crash-reports

JVM崩溃报告:位于<实例文件夹>/hs_err_pidxxx.log

  • 光影加载器调试功能:

Optifine:应当全部包含在日志中。

Iris:在光影选择界面(按O键打开的那个)按下Ctrl+D,然后确认,即可启用更多调试功能。重启以应用全部更改。此时,你可以在<实例文件夹>/patched-shaders获得经Iris处理后的光影源文件。这些源文件可以与log一同被发送给光影开发者。

  • 游戏外图形调试器:

如RenderDoc,Nsight.具体在下篇再介绍。

2.反馈问题

2.1 光影bug的反馈渠道/方式

一般来说,国外光影的问题反馈平台在Github Issues/Discord频道中的"support"子频道。要访问Github可以使用Watt Toolkit等工具,其他方式在此不多说。如果光影有Modrinth页面,一般可以在Modrinth页面中找到所有上述链接,如下图。

shaderLabs也有一个光影包页面:https://shaderlabs.org/wiki/Shaderpacks。

如果你不能访问这些链接,可以联系身边人代发。

国内光影可以尝试在MGC QQ频道上发帖子。如果光影有官方QQ群也可以在QQ群中反馈。 2.2 反馈的具体格式

如果Github/Discord提供了具体Bug反馈模板,可以照着模板填写。

一般Bug反馈需包含如下信息:

  • 配置:GPU型号,驱动版本,系统,MC版本,光影加载器类别及版本,是否使用了与光影(加载器)互动的模组(如Distant Horizons, Physics Mod,Colorwheel),或者是否排查出了导致问题的其他模组;

  • 具体发生了什么问题:你可以按上述1.1的分类结合具体现象来简要概括。如果可以进入游戏,应该附上发生Bug的游戏内截图;

  • 复现方式:如何从完全默认的配置下通过一系列操作使问题在你的设备上100%或较高概率出现。

以下是Bliss Shaders的问题反馈模板(由Deepseek翻译),留作参考):

注意⚠️:

1. 上传日志时,最好不要复制粘贴,而是通过mclo.gs等服务生成分享链接,或者在GitHub上直接上传。

2.先读作者对光影的介绍。如果问题超出了作者承诺维护的范围,不要提交问题。

3.结语 通过以上的教程,你应该已经对发现与反馈光影包问题有了基础了解。你可以尝试在评论区按照规范格式描述你所遇到的光影包问题,或者描述视频中出现的问题,作为练习。祝愿每个人都可以享受MC光影带来的震撼视觉体验!