Latest Articles

Render+ 2.1 is out

It’s release time! Render+ 2.1 is now out. This ver­sion comes with sev­er­al small qual­i­ty of life improve­ments. I’m try­ing to small­er, more fre­quent releas­es mov­ing for­ward. This way you can get bug fix­es and small improve­ments faster instead of wait­ing until I imple­ment some big fea­ture. Let’s look at the changes in this ver­sion Debug

Calculating distances in Blender with Python

In this super quick tip we’ll see how to cal­cu­late the dis­tance between two points. The for­mu­la for Euclidean dis­tance in 3D is the fol­low­ing: There’s at least three ways to do this in Blender. The clas­sic way The ben­e­fit of this snip­pet is that it will always be avail­able. It does­n’t depend on a spe­cif­ic

Making After Effects’ Fractal noise effect in Blender

Fractal noise is a well-known effect in After Effects. Probably one of the most used too, it’s ver­sa­tile enough to cre­ate all kinds of effects. Users com­ing to Blender from an After Effects back­ground might be won­der­ing if there’s a sim­i­lar effect or at least some way to ani­mate noise. Let’s see how we can repli­cate it

Getting Property groups as dictionaries

I recent­ly reworked Mirage’s live mode to be more effi­cient. One of the things I want­ed to improve was detect­ing changes in ter­rain set­tings. I fig­ured the best way to do it was get­ting a dic­tio­nary of the set­tings and find­ing what changed in it. So I wrote a lit­tle func­tion to get all the prop­er­ties inside a PropertyGroup as a dic­tio­nary.

This week(s) in Mirage #8

It’s been a while! I’ve final­ly fin­ished the new mate­ri­als. The new mate­ri­als now use image tex­tures instead of pro­ce­du­rals. While pro­ce­du­rals have many ben­e­fits, you get more bang for your buck with images. They bring lots of non-dis­­crete details and vari­a­tion, along with bet­ter per­for­mance in exchange for some flex­i­bil­i­ty. This change was pos­si­ble now

What is a non-manifold mesh and how to fix it

In your jour­ney through the world of CGI, you have prob­a­bly come across the word non-man­i­­fold once or twice. Maybe you got slapped with a “mesh is non-man­i­­fold” error too and won­dered how your mesh became non-some­thing. Surely hav­ing a man­i­fold mesh is bet­ter. But what does it mean to be man­i­fold? A man­i­fold is a math­e­mat­i­cal

This week(s) in Mirage #7

Welcome to anoth­er pro­duc­tive week for Mirage! This time I focused on fix­ing seam­less ter­rains. Seamless ter­rains have match­ing edges and can be tiled and repeat­ed. I had this work­ing a while ago at the noise gen­er­a­tion lev­el. The Perlin func­tion I’m using is peri­od­ic, so it’s pos­si­ble to grab coor­di­nates out­side of the ter­rain and inter­po­late

This week(s) in Mirage #6

Whoa, how long has it been? Wasn’t I sup­posed 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 man­aged to put some

Render+ 2 released

After a long time Render+ 2 is final­ly out. I start­ed work­ing on this ver­sion on September last year, and went into beta around January until now. But the plan­ning for these changes goes back years. I’m real­ly hap­py with this release, the code base and the whole sys­tem have tak­en a leap for­ward in qual­i­ty. These changes pave