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

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

Mirage 3.3 out for Blender 2.80

New Blender, new Mirage. Or so I’d like to say. This is bor­ing release actu­al­ly. The only news is com­pat­i­bil­i­ty with Blender 2.80. Note that from this point onward, Mirage will require at least Blender 2.80. All the new fea­tures I’ve been blog­ging about will come in the next ver­sion: 3.4. Join the mail­ing list

This week in Mirage #5

Time for the usu­al week­ly devel­op­ment news. This week I worked some more on the water ero­sion mod­i­fi­er. I start­ed by fix­ing the ran­dom­ness of the rain. Every iter­a­tion 100 drops fall at ran­dom places in the ter­rain. The prob­lem was that I was­n’t keep­ing the seeds for the ran­dom val­ues around so every­time a set­ting changed it

This week(s) in Mirage #4

These last two weeks have been pret­ty busy, both in work/life and Mirage. On the mirage side, I port­ed the last mod­i­fi­er: flu­vial ero­sion. I spent the first week writ­ing the ini­tial imple­men­ta­tion and this week mak­ing it actu­al­ly work. Many moons ago I wrote a pure Python imple­men­ta­tion of the vir­tu­al pipes hydraulic ero­sion algo­rithm. It was crazy

This week in Mirage #3

Thermal ero­sion is now ful­ly port­ed! There isn’t a very notice­able dif­fer­ence this time around, I think it looks a bit bet­ter though (but maybe I’m biased!). I also changed the set­ting names to make them eas­i­er to under­stand: Repose Angle is now Threshold Iterations is now Time They are also short­er too, so they work nice­ly in