IMPORTANT: Canvas One for 1.16 is in an extended BETA. Expect missing features and bugs.
Visit Grondag's Discord for news, dev snapshot builds, and planned features: Discord: https://discord.gg/7NaqR2e
Help me buy test equipment on Ko-Fi: https://ko-fi.com/grondag
What is Canvas?
When people first hear about Canvas they often ask if it is a performance mod or a replacement for Optifine / shader packs. The answer is "no, but..."
Optifine and shader packs primarily target vanilla Minecraft. They work with modded, often well, but they aren't designed as tools for *mod authors*.
Canvas' main purpose is to give mod authors more control and options for rendering modded blocks. It can also be used for building shader packs, but the design is entirely different than OF and does not yet support all the features needed for a full shader pack implementation. Unlike OF shader packs, Canvas shader packs can be mixed together by adding multiple resource packs.
How is Performance?
Performance-wise, Canvas tries to be be faster than Vanilla with extended features. It is optimized heavily - but the intent of these changes is to make better rendering practical, not to be a general-purpose performance mod. It isn't meant to run on low-end hardware and may or may not make your game run faster overall.
Canvas will try to fully use your hardware and will not be timid about it. It wants at least 4GB and will push both your CPU and GPU. It will stress your cooling system.
If you're looking to max performance with Canvas, the config menu tool tips indicate which features can help. Bloom is especially expensive at high resolutions. But bloom is also fun to look at, so.... your call.
More optimizations will be added after a stable release.
Playing with Canvas
Add Canvas to your mods folder and make sure you have recent versions of Fabric Loader and API, plus at least 4GB of memory allocated to Minecraft. An in-game config menu is available in video options, or via Mod Menu if you have it installed.
Is Canvas Compatible with Sodium?
This question gets asked a lot. Canvas and Sodium will never be compatible because both mods more or less replace the rendering engine. Both mods will give you better rendering performance than Vanilla/Indigo but Sodium is significantly faster with most hardware and drivers.
Sodium and Canvas serve different purposes and audiences. Sodium is a performance mod that uses shaders to optimize and also offers some nice visual improvements. Canvas is a shaders mod with enough optimization to give good performance.
Canvas has extensive optimizations and more are being added - but the gains are used to support new features. You could turn off all the aesthetic features of Canvas and it would be an OK optimization mod, but then you'd probably be better off using Sodium. Sodium's existence has improved Canvas by allowing me to focus on features and not also try to accommodate users who mainly want performance improvement
If you're playing with mods that use the Fabric rendering API or want the visual improvements that are being added to Canvas then try Canvas. (Sodium will eventually support the rendering API also.) If you don't need those and want the best possible performance then you should try Sodium.
No matter which renderer you choose, you should definitely be using other optimization mods available from CaffeineMC: Lithium and Phosphor. Canvas is compatible with both.
Are Optifine shaders be compatible with Canvas?
No. Canvas shaders are more modular and also more tightly integrated with the renderer to provide control for mod authors that want to use shaders for their content. When Canvas is feature complete, some existing shaders could probably be ported with moderate effort.
"Some" and "probably" are in that last sentence because Canvas will necessarily make some choices about the pipeline design that may force a rethink of current approaches, though I aim to make it as flexible as possible.
Does Canvas allow third party shader development?
Yes, third parties are encouraged to write shaders for Canvas. The shaders are just assets. However the structure of the shader code is more modular and the setup is different.
For example, Canvas lets you define materials and assign those to quads either via JAVA or using a JSON block : sprite : material maps. Each material can have separate shader functions. This can be done piece-wise - different mods or resource packs can contribute different/partial shaders and material maps. Canvas invokes the appropriate shader functions automatically for each quad.
However, I don't expect third-party shaders to be available until Canvas is more feature complete. Canvas does however come with a default shader pack that currently adds a bloom effect for most emissive blocks and wavy foliage was just added. More is coming soon.
Update: there is now a resource pack that adds support for some Canvas features (bloom, mostly) to other mods:
https://www.curseforge.com/minecraft/texture-packs/more-canvas-compat/screenshots
The Traverse and Terrestria biome mods also support wavy grass.
Mod Authors and Pack Makers
- There isn't much documentation yet, but see the canvas Wiki for information on creating custom shaders: https://github.com/grondag/canvas/wiki
The discord is also a good resource.
Finding Bugs
I test Canvas on OSX, Windows 10 and Ubuntu 18.04.2. I do not have the means to test on many hardware/OS combinations so bug reports are appreciated. Please include full logs.
Does anybody know where to get shader packs for Canvas? I've searched for a bit but I can't find anything ^^
Hey all, Canvas development is still alive and well. I've added shadow maps and several other features and those need some significant fixes and optimizations before they are stable enough even for a beta release. If you want to know about developments and get access to the bleeding edge builds (which will probably not work too well!) check out the discord. https://discord.gg/7NaqR2e
I'd love to see support added for mob variety textures (Such as this: Creature Variety for 1.16 & 1.15 - Random Mobs (Over 2800 Textures!) Minecraft Texture Pack (planetminecraft.com)), alongside other features that could be grabbed from certain shaders - namely, anti-aliasing support, motion blur, depth of field, how chunks appear into the world, etc. I'm not a modder so these might already be able to be added via resource pack creators, but those were just some ideas I had about that based on some beautiful shaders on Optifine.
In reply to monstertrexy:
Mob variety could probably be added by a 3rd-party mod. AA, Motion-Blur, and DoF will be up to pipeline authors. ("Pipeline" is synonymous with OF shaderpack.) I will probably add AA to the default pipeline that ships with Canvas, not sure about the other two.
Mods that play with how chunks appear in the world will be tricky because Canvas messes heavily with terrain culling and buffering - it would be possible but complicated and probably slow things down. In other words, won't be soon unless someone else wants to PR it.
cursefirge
In reply to epiphenomenalism:
ok
How do you delete replys lol
are there any shaders that look somewhat decent right now? i tried lumi lights and it looked like a bedrock edition shader
In reply to sweepswap:
Will be a while longer before we have the level of shaders you can currently get with OF, but I'm still going at it.
Plssss make it forge i was looking for a mod like this for a very long time, i test it and minecraft looks 100X better, but sinse i use forge i cant use it.
thx :D
In reply to iansupernoob:
It will likely never be on forge. Fabric imo has a much better moding community anyways as I see a lot more focus towards vanilla like gameplay with massive performance improvments.
Want to try out this mod out as opposed to Sodium, having trouble loading it up though. I'm using RT Launcher, I've added all the dependencies (excluding FREX as it said it's included) as well as removed Sodium, Lithium, and Phosphor. Every time I launch it crashes without showing the Mojang screen and then the launcher reopens. Any help would be appreciated, thanks!
In reply to loneredwolf24:
Figured it out, for some reason the Horse Stats mod is incompatible
Is this required on both the server and client? If no, are there any benefits to having it on both?
In reply to realsrnyx:
You should only need Canvas on the client, as it's an alternative renderer for all of the blocks and entities Minecraft puts out. I don't think Canvas does anything when installed on a server.
Is it compatible with optifabric
In reply to krmasterwastaken:
No. Both mods have different shader implementations.
1.16.5?
In reply to Trash_Thrower:
Nevermind
In reply to Trash_Thrower:
Did you manage to get it to work? This is a fairly ominous statement without context.