<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged procedural-terrain-generation</title>
<link>https://coderlegion.com/tag/procedural-terrain-generation</link>
<description>Powered by Question2Answer</description>
<item>
<title>DevLog 20260731: FPP v1.4.0 and Divooka Explore Demo Updates</title>
<link>https://coderlegion.com/23943/devlog-20260731-fpp-v1-4-0-and-divooka-explore-demo-updates</link>
<description>&lt;h3 id=&quot;overview&quot;&gt;Overview&lt;/h3&gt;
&lt;p&gt;The past few months have seen several &lt;a rel=&quot;nofollow&quot; href=&quot;https://store.steampowered.com/app/4770820/Divooka_Explore_Demo/&quot;&gt;Divooka Explore Demo&lt;/a&gt; releases, with our efforts focused on rolling out procedural terrain generation features. These include random noise-based terrain generation, procedural and simulation-based terrain processing, natural effects such as erosion and hydrology analysis, procedural coloration and texturing, and, more recently, improved 3D previews of generated terrains directly within the Divooka visual programming environment.&lt;/p&gt;
&lt;p&gt;One small lesson from this cumulative effort is that there always seems to be more academic material, papers, tutorials, online examples, and even source code snippets to discover and use to improve existing systems. That is a shiny silver lining, since we are still fairly new to this domain and desperately need broad exposure to existing techniques.&lt;/p&gt;
&lt;p&gt;Another useful lesson is that, although many papers approach these subjects from a real-time rendering perspective - such as the old GPU Gems articles - the same techniques are often equally applicable in a pure-CPU regime.&lt;/p&gt;
&lt;h3 id=&quot;procedural-terrain-generation-in-divooka&quot;&gt;Procedural Terrain Generation in Divooka&lt;/h3&gt;
&lt;p&gt;As mentioned, we have made quite a large number of functions available in this area, and the subject definitely warrants much more detailed treatment. Documentation and comprehensive video guides are dearly needed.&lt;/p&gt;
&lt;p&gt;To recap, we have moved from very basic noise-based terrain generation to custom heterogeneous multifractal terrains, functional erosion - although there is still plenty of room for improvement - various masking techniques, practical procedural coloring using either masks or SQL queries, and preliminary texturing support.&lt;/p&gt;
&lt;p&gt;The terrain generation is only the first step, and there is still plenty of room for improvement despite we have achieved useful basic implementation for now.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/tjh15wb15uew55mjoroo.png&quot; alt=&quot;Early Days of Divooka Procedural Terrain Generation&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/5yejmj3d6u1ltjp3tuvn.png&quot; alt=&quot;Early Days of Heightmap Erosion in Divooka&quot;&gt;&lt;/p&gt;
&lt;p&gt;Once we became comfortable with generating functional procedural terrains, we could move on to coloring, texturing, and eventually shading.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/pgfyqwl0v6t7s50ckxya.png&quot; alt=&quot;Procedural Terrain Coloring Nodes in Divooka&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/mtpjb24wj0jmpqwikmme.png&quot; alt=&quot;Procedural Terrain Coloring in Divooka&quot;&gt;&lt;/p&gt;
&lt;p&gt;At this point, I realized a fundamental limitation of heightmaps and image textures. They may be able to represent distant views of terrains spanning 8–64 km when viewed from above, but for ground-level rendering, procedural shading techniques are a must.&lt;/p&gt;
&lt;p&gt;The 3D rendering work is still new, and there is a long way to go. We started with basic baked shadows, moved on to experimental texture mixing, and eventually reached full PBR rendering.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/vd23at51fda31xhie5rc.png&quot; alt=&quot;Baked Shadow Mapping for Terrains in Divooka&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/eyzib5rfsvljdhkmqslh.png&quot; alt=&quot;Early days of Procedural Texturing of Terrains with Photo and Generated Textures&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/89jvthtqlgj6nzcm6x0x.png&quot; alt=&quot;Voxel Space Viewer of Textured Terrains in Divooka&quot;&gt;&lt;/p&gt;
&lt;p&gt;PBR rendering is the holy grail. Once we figure out how to dynamically populate terrains with trees, grass, and rocks - and generate ripples across reflective water - we will be able to share all of it through Divooka as reproducible workflows!&lt;/p&gt;
&lt;p&gt;Below is an intermediate result so far. It uses simple slope-based texturing, which we plan to replace with mask-layer-based materials in the next attempt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/6xv7t457d8ij3tvqozva.png&quot; alt=&quot;Procedural Slope-Based Textures for Procedural Terrains in Divooka, PBR Rendering&quot;&gt;&lt;/p&gt;
&lt;p&gt;We have learned so much and cannot wait to share more about the specific techniques once we have more spare time!&lt;/p&gt;
&lt;h3 id=&quot;the-fantasy-planet-painter-v1-4-0-update&quot;&gt;The Fantasy Planet Painter v1.4.0 Update&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/oqdj4ehduk7s3pcqyc3w.png&quot; alt=&quot;2D Flat World in FPP - Basic Altitude Coloring to Relief Render&quot;&gt;&lt;/p&gt;
&lt;p&gt;While the eventual goal is to support whole-planet procedural generation and content management, we began with basic Earth-like world map generation. At the moment, our work is mostly focused on improving the existing editing experience. The previous update significantly improved the multithreaded generation performance of the tetrahedral subdivision method.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/s8zbkyenxvetcp0aln6r.png&quot; alt=&quot;Fantasy Planet Painter by Methodox&quot;&gt;&lt;/p&gt;
&lt;p&gt;The 2D cell-based height-value canvas is an interesting medium. It allows us to sketch the desired elevation levels quickly at a high level while the program procedurally populates the remaining details.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/3d6pw0r6vwttkunvlyjz.png&quot; alt=&quot;Painting on a 2D Cell Map with Abstract Height Values While FPP Generate Procedural Details&quot;&gt;&lt;/p&gt;
&lt;p&gt;There has also been some experimental exploration into using this medium for direct 2D terrain editing, as seen in our previous video, &lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/JDSvBHWeLQg?si=MEAZdVL4sYn674m-&quot;&gt;World to Beyond (BAR map export from FPP)&lt;/a&gt;. Although BAR export is still in its early stages, the potential of this kind of authoring technique is indeed interesting.&lt;/p&gt;
&lt;p&gt;Following the advances in procedural terrain generation within Divooka, we have gathered quite a collection of useful tools and made them available at a high level in the latest &lt;a rel=&quot;nofollow&quot; href=&quot;https://store.steampowered.com/news/app/3336490/view/697645818486718921&quot;&gt;FPP update&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/hb74s7fqo75qsemf5tuu.png&quot; alt=&quot;Hydrology (Erosion) Outputs from Divooka&quot;&gt;&lt;/p&gt;
&lt;p&gt;The results are very interesting, and I am glad that we are moving beyond practical utility toward generating worlds that - at least in my eyes - are also visually appealing.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/eybl1vnbexwd2hrv99s5.png&quot; alt=&quot;2D Flat World in FPP - 1K Wetness + Slope-Based Relief Render&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;That is a brief recap for today. I have been busy diving headfirst into all the nitty-gritty work, which has left less time for DevLog updates and for sharing the techniques and progress behind them.&lt;/p&gt;
&lt;p&gt;Still, let us look forward to the day when new results are ready to shine, when we are comfortable placing an early-access version of Divooka into the hands of users, and when we can talk in much greater detail about the road that led us there!&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/23943/devlog-20260731-fpp-v1-4-0-and-divooka-explore-demo-updates</guid>
<pubDate>Sat, 01 Aug 2026 18:44:44 +0000</pubDate>
</item>
</channel>
</rss>