• Welcome to World Machine Community. Please login or sign up.
October 15, 2019, 09:53:14 am


Read the Development Diary for an inside look at World Machine's progress!

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Beherith

Plugin Development Forum / Ambient occlusion plugin
February 12, 2014, 04:26:39 am
Would there be any interest in an ambient occlusion plugin? I coded one that looks quite reasonable, but its performance isn't so good (takes about 10 seconds for a 1024^2 heightfield at sensible settings).
The source code and the built x64 device is attached.

It takes a heightfield as input.
You can specifiy the number of rays per pixel, the minimum hit distance for a ray (this is great for edge highlighting) and the maximum distance a ray travels, along with a height scaling factor.

Made with pdk 2.3.6
Often times Blur devices are very expensive for me (I probably use too much of them with too high radii anyway), even if i'm only using them masked off on small parts of the terrain.

Would it be a good idea to check if the mask value is zero before calculating the gaussian blur of a pixel? This could be applied to other slow devices as well.

EDIT: it just occured to me that gaussian blur seems to be a 2 pass algorithm, (cause its ordo linear with kernel size), so implementing this might not be straightforward.
I know you are a busy man, but there is one thing that has been bugging me about the voronoi noise generator, And its the fact that I have been tryin to acheive basalt columns ever since WM 1.x, but getting the tops of the columns flat has been impossible.
It would be amazing if Voronoi had another heightfield input, where the heights for each column are sampled from this heightfield, and not assigned at random.

I wish to achieve this basalt effect:

I would happily use the PDK to modify the existing voronoi device code, I just dont wish to recode it from scratch :(
Ive even gone as far as to use an external python script to generate the voronoified heightfields :)
Often times, when I am building large worlds, I have plenty of different masks. Masks and layout generators and color generators usually have low entropy, mostly 1 and 0 with relatively few values in between.
Often, I run out of RAM first. I was wondering if it were possible to compress heightfields and bitmaps losslessly, on the fly, quickly.

I looking into gpu solutions, because it is often idle while building. But compression is inherently not a SIMD algorithm, and current gpu implementations barely reach the speed of a normal compression algorith on cpu.

Most cpu compression algorithms dont do much more than a few tens of mb per second per core, which is still woefully inadequate.

LZ4 on the other hand can do 300Mbyte/s compress and 1GB/s decompress. Per core :)

This means that WM could possibly, in 1 second decompress all the inputs it needs for a device and compress those which are not used in the next built node.

Open source code here:
If I set the preview resolution to more than 160 (which is a super nice feature btw, I would love it if I could go to 512 and even resize the preview window on the left) the preview turns into a pixelated mess.
Feature Requests / Create extents from tile
September 15, 2012, 02:36:25 am
I would love it if I only had 1 tile selected in the Tiled build window, then I could make a render extent from my selection.
Ive been building a terrain with some erosion and coastal erosion. If I choose a tile size of 1024, it renders each tile in more than a minute (with 6% blending)
If I make an extent that is 2048 by 2048, the same as 2x2 tiles, and render it as single shot, it takes less than a minute to render (and this is 4x the size!)
Am I doing something wrong? (tiled runs with 1 simultaneous build)
Both 2.2 and 2.3 beta crash on launch. Both when launched with a .tmd file and when I double click the .exe
Ive tried reinstalling many times, and nothing helps. 2.15 oddly enough, works fine. I have filed a bug report as well (sorry for the rude message I posted in it, I was extremely frustrated at the time)
If you click on any slider in advanced perlin to adjust it, it moves the slider, but has no effect on the device. Click+drag and click+scroll works fine.
After clicking interpret as RGB and then hitting OK WM crashes.

Find the crash logs attached, the 16384 bmp can be shared if need be.

Also, Im running 2.3 beta with x64 and have tons of ram free.

Thanks for the support!
If I try to load up a 16384 squared BMP file, it loads it right, but if I hit interpret as RGB, world machine 2.2 x64 professional edition crashes with a visual c++ error.
I have plenty of free ram and hdd space. The crash always happens, I can 7zip and upload the file to an ftp or my host if you cant reproduce the bug. Also, the .bmp file was created with photoshop cs5 x64.
Thanks for your continued and awesome support of World Machine! It is still my most frequently used tool :D