Canvas Renderer
阅读
2020-08-22更新
最新编辑:Salt_lovely
阅读:
更新日期:2020-08-22
最新编辑:Salt_lovely
Canvas Renderer 是由grondagthebarbarian为 Fabric 模组设计的一个渲染库,它能够为玩家提供更优秀的视觉效果,同时实现了一个 API,使得模组作者得以实现一些原版接口无法实现的渲染效果。Canvas 同时也能够提升区块加载速度和游戏帧率——对大多数情况而言。
注意事项
支持 Minecraft 1.16 版本的 Canvas 1.x 正处于扩展测试阶段,尚存功能缺失和漏洞。
Canvas 与 JellySquid 开发的 Sodium 模组兼容吗?
这个问题已经被提及了很多次,答案是 Canvas 和 Sodium 将永远无法实现兼容,因为它们都或多或少地重写了渲染引擎。这两个模组都能为 Minecraft 提供更优秀的渲染表现,但在大多数硬件上,Sodium 的效果更好。
Sodium 和 Canvas 是为不同的目标和用户而设计的。Sodium 是一个性能模组,但添加了着色器(Shaders)进行优化,同时提供了一些不错的视觉提升;而 Canvas 则是一个着色器模组(Shaders mod),附加了一些优化从而从而获得更好的性能表现。
Canvas 已经为 Minecraft 提供了很多的优化,并且正在继续添加更多性能优化——但是其优化得到的增益被用于提供更多新的功能,所以如果你关掉 Canvas 的所有视觉效果,那么它的确是一个很不错的优化模组,但既然如此,为什么不选择 Sodium ?有了 Sodium 模组的出现,我就能够将开发重心放在新功能的开发上而不必同时满足需要性能优化功能的用户。
如果您正在游玩一些需要用到 Fabric Rendering API 的模组,或者您希望体验 Canvas 为您准备的优秀视觉效果,那么选择 Canvas 吧(Sodium 也将会在未来实现 Fabric Rendering API )。如果您完全不需要这些,而只是想要卓越的性能,您应该选择 Sodium。
但无论如何,您都可以使用 JellySquid 的另外两个优化模组:锂和照明优化,Canvas 是与这二者完全兼容的。
Optifine 光影能够与 Canvas 兼容吗?
不能。Canvas 模组更加模块化同时也与渲染联系更加紧密,从而为模组作者们提供一个为模组内容增光的光影控制。在 Canvas 的功能实现完毕后,或许经过一些努力,某些光影也能够移植到 Canvas 上运行。
之所以说“或许”和“某些”是因为 Canvas 将需要对管道设计(Pipeline Design)做出一些选择,这或者会迫使我们重新思考目前的实现,尽管我的目标是尽可能让它灵活。
Canvas 允许第三方光影开发吗?
当然,我非常鼓励第三方开发者来为 Canvas 编写光影。光影只是一些附件,但光影的代码是非常模块化的,并且其安装方式也不太一样。
举个例子,Canvas 允许你定义一些材质并将其绑定到物体上,既可以使用 Java 也可以通过 JSON 的 block:sprite:material 映射来完成。每一个材质都可以拥有多个分离的光影函数,这将是一个高度区域化的工作:不同的模组和资源包能够为其提供不同或部分的光影和材质映射。Canvas 将通过援引的方式选择合适的光影函数并自动将之应用到物体上。
然而,我并不期望第三方光影在 Canvas 的更多功能开发出来前有效,Canvas 目前已经提供了一个默认的着色器(Shaders),它为很多发光的方块添加了模糊(称之为 Bloom)效果,也为树叶和草(草和高草丛)添加了摇动效果。我未来还会继续开发更多功能。
硬件需求和性能
Canvas 旨在为高性能硬件提供优化,但也能够在任何支持 OpenGL 2.1 和 GLSL 的机器上运行。
模组作者和整合包作者
- 还没有相关的文档,但您可以查看 Canvas 的维基页面获知更多信息,从而创建您的自定义光影。
- Discord 也是个不错的主意。
漏洞反馈
我已经在Mac、Windows 10和Ubuntu 18.04.2上测试过Canvas,但我没有更多精力去测试所有平台,所以您可以在这里馈漏洞报告。请一定记得附带完整日志文件。