It’s been a while! I’ve finally finished the new materials. The new materials now use image textures instead of procedurals. While procedurals have many benefits, you get more bang for your buck with images. They bring lots of non-discrete details and variation, along with better performance in exchange for some flexibility. This change was possible now
In your journey through the world of CGI, you have probably come across the word non-manifold once or twice. Maybe you got slapped with a “mesh is non-manifold” error too and wondered how your mesh became non-something. Surely having a manifold mesh is better. But what does it mean to be manifold? A manifold is a mathematical
Welcome to another productive week for Mirage! This time I focused on fixing seamless terrains. Seamless terrains have matching edges and can be tiled and repeated. I had this working a while ago at the noise generation level. The Perlin function I’m using is periodic, so it’s possible to grab coordinates outside of the terrain and interpolate
Whoa, how long has it been? Wasn’t I supposed to do this every week? These last few weeks have been crazy with work, life, the release of Blender 2.80, Mirage 3.2 and Render+ 2. But that’s all done now. Time to get back on the horse! The good news is that I still managed to put some
After a long time Render+ 2 is finally out. I started working on this version on September last year, and went into beta around January until now. But the planning for these changes goes back years. I’m really happy with this release, the code base and the whole system have taken a leap forward in quality. These changes pave
New Blender, new Mirage. Or so I’d like to say. This is boring release actually. The only news is compatibility with Blender 2.80. Note that from this point onward, Mirage will require at least Blender 2.80. All the new features I’ve been blogging about will come in the next version: 3.4. Join the mailing list
Blender 2.80 is out today after almost a year and a half in development. Time to celebrate! This is one of the largest and most important releases of Blender. As big as 2.5 back in the day. So, what’s the big deal? Don’t be fooled by the version number. 2.80 isn’t just 0.01 better than 2.79, it’s 100x times
Time for the usual weekly development news. This week I worked some more on the water erosion modifier. I started by fixing the randomness of the rain. Every iteration 100 drops fall at random places in the terrain. The problem was that I wasn’t keeping the seeds for the random values around so everytime a setting changed it
These last two weeks have been pretty busy, both in work/life and Mirage. On the mirage side, I ported the last modifier: fluvial erosion. I spent the first week writing the initial implementation and this week making it actually work. Many moons ago I wrote a pure Python implementation of the virtual pipes hydraulic erosion algorithm. It was crazy slow.
Thermal erosion is now fully ported! There isn’t a very noticeable difference this time around, I think it looks a bit better though (but maybe I’m biased!). I also changed the setting names to make them easier to understand: Repose Angle is now Threshold Iterations is now Time They are also shorter too, so they work nicely in
This week went better than expected in many ways. I ended up getting the modifier work done fairly quickly and managed to squeeze a small refactor, breaking a ~1300 lines file into 3 files. I still have somre more refactoring to do to make things more flexible. Hopefully I can get to that too in the following weeks. Porting went smoothly
In this series of posts I’m going to talk about the new hot stuff I’m working on for Mirage. This will be my first time doing a devlog, so bear with me 🙂 Our first stop is what I’ve doing for the past few months: the Rust port. Port to Rust Rust is a programming language focusing on safety, performance and