A mod for 1.12.2+ that creates smooth terrain in Minecraft
It is the spiritual successor of the NoCubes mod by Click_Me for 1.7.10
Important: Read BEFORE you download!
- NoCubes is currently under development. It is not fully stable or completely finished
- Bug reports/Issues should go on GitHub or in the appropriate channel on the discord server
- Visit the official website of NoCubes here and join our discord server for pre-releases, development updates and much, much more!
Thats all the super-important stuff, feel free to download and play the mod now. Enjoy!
About NoCubes
No Cubes is a completely unique mod that aims to add an exceptional twist to normal Minecraft gameplay and is the first mod in Minecraft history to fully transform and improve Minecraft’s terrain. NoCubes drastically transforms Minecraft’s traditional blocky terrain into smooth, rolling landscapes complete with circular caves, flowing mountain ranges and jaw-droppingly realistic scenery while leaving your painstakingly curated buildings untouched.
The mod is entirety multiplayer compatible, so you can adventure and enjoy the experience of re-exploring all that Minecraft’s abundant landscape has to offer in the company of your friends. Furthermore, the mod has an endless range of customisable options that the player can tweak to their hearts content in order to achieve the perfect experience. Additionally, NoCubes has built-in compatibility with other mods, most notably BetterFoliage, OptiFine, Dynamic Lights and Shaders so that you can view Minecraft in its full glory.
NoCubes is exceptional for a number of reasons. Firstly, it does all its modifications without affecting your FPS at all. It is also so optimised that, when used on certain configurations, it is faster than Vanilla’s rendering system. Finally, it functions in a way that doesn’t actually modify the way the game works. Blocks, while their appearance and collisions may have been changed, are still square at heart. The mod merely makes the existing cubes have more polygons in a way that makes sense for their environment.
At first glance the world may seem to have been drastically changed, but this strange new world actually feels quite similar once you explore it for a little bit. After traveling around your world for a while, you will realise that the vista you are inside is still the same familiar landscape you know and love. And, though the ground is smoother and the trees are round; the magical and unique way the world unfolds, generates and interacts with you hasn’t changed.
The latest update to the mod features new renderers - such as OldNoCubes and SurfaceNets - to better suit individual players preferences, smooth lighting, liquid bodies that reach all the way to the shoreline, accurate collisions, rounded trees, smooth biome color transitions, enchanted multiplayer capabilities, many performance improvements and speed upgrades, RAM optimisations, texture randomisation, particle integration, leaves separation, faster lighting, texture improvement, emissive lighting support, increased mod compatibility and a multitude of other user-customisable options.
This isn’t all that this mod has in store though, with even more mod compatibility, texture blending, even more performance optimisations, tree branch and trunk tweaks, placement previews, 3d minimaps, community configuration presets, higher resolution renders, more translations and more renderers all being worked on, and scheduled to be added in an upcoming update.
Bonus Features in NoCubes
This mod includes fixes for a number of vanilla fluid rendering bugs. These fixes are enabled separately from the main mod, so you can play without smooth terrain and only the improved fluid rendering. These features include Smooth Fluid Lighting, Smooth Fluid Biome Color Blending and Natural Fluid Textures.
Credits
- Thank you to Click_Me for the original mod, the amazing idea for this and the massive amount of work they put into the their original mod. Without them this mod would definitely not exist
- Thank you to FellFromTheSky for his port of noCubes 0.8 in 1.7.10. It will surely be reuploaded any soon.
- Thank you to CosmicDan for their 1.7.10 port and deobfuscation of the Click_Me's original 1.0 release. I initially based my code off their repo and without them I would probably have given up before I even started.
- Thank you to Elix_x for helping FellFromTheSky for creating the first No Cubes port in 1.10.2.
- Thank you to LeBossMax2 for their tips on porting the OldNoCubes renderer, their work on NoCubes Reloaded and their tips about how SurfaceNets works
- Thank you to EquityX for not giving up on this mod and continuing to try and find a dev to continue it
- Thank you to Tailer for making the NoCubes discord server and patiently waiting for NoCubes since 2014
- Thank you to V0idWa1k3r for looking over my code and spotting the gamebreakinig bug that I couldn't find
- Thank you to jredfox for their 1.7.10 port and fix of NoCubes 0.8 and for their ASM advice
- Thank you to FellFromTheSky for their work on NoCubes Reloaded and their advice.
- Thank you to delvr for letting me steal their collisions code from Repose. Without this, the collisions in NoCubes would not exist. The mods are 100% compatible and Repose plays amazingly with NoCubes. Repose also includes a number of features like soil gravity and avalanches that make your gameplay more realistic. Go check it out!
- Thank you to Sildur for making Mac-compatible shaders that look great and also somehow run decently on my very low-end machine. Your shaders have boosted my screenshot quality immeasurably
is there a way to turn custom collision off on default
How does this mod work, does it change the rendering engine? can it be done using shaders i.e core vanilla shaders?
Short answer: Yes; Yes it might be possible with shaders.
Long answer:
Yes, it makes some changes to the rendering engine.
It makes a lot of changes for many different aspects of the mod (e.g. correct camera handling, improved fluid rendering).
I’ll describe just how the visual smoothing works:
- Minecraft renders 16x16x16 block sized ‘render chunks’ of your world
- Building the visual data for the entire chunk each frame would be inefficient so the visual data is built once when the chunk is loaded and only rebuilt when it changes (I.e. a block in the chunk changes). The render data for each visible chunk is drawn to the screen every frame (but not recalculated each frame)
- To build this render data Minecraft’s engine allocates some memory for this render data and then goes through (iterates) every block in the 16x16x16 area, gets the model for the block (which contains all the faces and textures to render), calculates light for the block, calculates colouring for the block and then puts this data for each face into the chunk render data it is building
Heres where NoCubes comes in:
- NoCubes adds it’s own code in between the render data memory allocation and the block iteration. This code has access to the render data before any vanilla blocks have been rendered to it. NoCubes then uses the SurfaceNets smoothing algorithm to generate smooth faces for the blocks in the chunk. For each face it then finds the closest block, gets the model data for that block, gets the texture from that model data, calculates lighting, calculates coloring and puts that data into the render data (same thing as Minecraft does, except it uses the face position generated by the algorithm, not the model).
- NoCubes adds it’s own code during the render engine’s 16x16x16 iteration to stop the engine rendering blocks that NoCubes has already rendered smooth
Shaders: This could be possible with shaders but it would likely also require a mod to provide the required data to the shaders as they may need more data than vanilla provides.
- SurfaceNets needs access to the neighbours of a block to compute how to smooth it. As far as I know this data isn’t provided by vanilla (why would it be). This can be transferred as a 3D texture containing a signed distance field (SDF) of the chunk, similar to the SDF NoCubes currently creates. This data should be computed once and stored in (or adjacent to, so as to not break the data format expected by other mods) the chunk data.
- The Java implementation of SurfaceNets that NoCubes uses could not be reused, shaders are written in GLSL (Graphics Library Shader Language?) or HLSL (High Level Shader Language). I think Minecraft uses GLSL exclusively. The implementation can’t be reused because it uses large data structures and caches since it’s optimised for a CPU environment with a single thread processing the data for an entire chunk. Algorithms like this do not translate to a GPU environment where efficiency is gained by doing millions of small tasks in parallel. The algorithm would need to be rewritten for GLSL with its data processing split up so there is one task per block and its caching removed.
- Shaders are run every frame so this implementation had better be extremely efficient to have any chance of competing with the performance of only running the smoothing algorithm on the chunk data when it is built
- Caveat: I’m no shaders expert, if you want to seriously consider smoothing terrain with shaders there are other approaches like Compute Shaders that might be able to be run on the chunk data once and stored. If you talk to someone in the shader labs discord they might be able to provide some insight (and might find my write up here informative) https://discord.gg/RpzWN9S
Hey, I couldn't help but notice that you've been active recently. I've been searching everywhere to know how this mod works but came short of an answer. It would really make my day if I got some insight on it, how you curve the sides of voxels. The code aspect of it.
Or if there is an explanation somewhere, can I get a link?
There’s a link to the source code at the top of the page (called Source - right next to Files, Images and Issues).
If you want to talk about it please join the discord server (http://cadiboo.github.io/projects/nocubes/discord), I don’t check curseforge very often.
There are quite a few good articles including https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/
1.19 pls
Being worked on
Are the slopes purely visual or are they actually sloped?
In reply to amazingdaffyfoo:
They have collision too, so yes, they're actually sloped.
Hay mate I love this mod but absolutely hate what it does to the trees, can you add an option to disable it for the trees? It makes the textures shitty on the trees
Look at leaves in-game and press ‘n’
pls for fabric
Planned, currently working on a prototype
Would you like to update your CF file for easier management with custom launcher rather than manually checking on you website? would appreciate that, thx anyway :)
What CF file?
Setting "tempMobCollisionsDisabled=false" makes the game huge lag, even if I disable every other mod, I guess you are using multithreading when handling collisions, but my CPU only has 2 threads, I hope you can fix it
My English is not good so this is machine translation
(1.18.2 and 1.16.5)
Yeah, collisions are very inefficient (and only single threaded). Improvements are planned and being worked on but haven’t been released yet. In the meantime, you can keep tempMobCollisionsDisabled set to false.
I have a question. How you don't get the tree leaves smoothed out because they don't work well with the patrix texturepack.
Look at leaves in-game and press ‘n’
*Deleted*