guillaumechereau / goxel

Goxel: Free and Open Source 3D Voxel Editor
GNU General Public License v3.0
2.82k stars 225 forks source link

Enhance procedural tools with WaveFunctionCollapse #35

Closed YarlBoro closed 1 year ago

YarlBoro commented 7 years ago

Here is link to project: https://github.com/mxgmn/WaveFunctionCollapse

As you can see in part titled "Higher dimensions", that code can be also used for voxels. Results look very organic. It would be huge to have something like this to generate environments or other big structures. I imagine that it could work this way: user select layer(s) as input data, configure variables in script (like target volume), run script to generate voxels

guillaumechereau commented 7 years ago

That would be really cool. A first step would be to allow to use different layers as brush, to make it simple to create many clones of the same object.

YarlBoro commented 7 years ago

Great that you see potential in it.

Using layer as brush would be super useful.

guillaumechereau commented 7 years ago

I started to work on cloned layers, that allow to easily update duplicated instances of a layer. This is a first step toward supporting something like WFC.

image

YarlBoro commented 7 years ago

Besides opening road to WFC, it let's us build scenes with reusable tiles, nice!

IMHO there should be a visual difference between normal layers and cloned ones, for quick identification of what is what. Current addition of 'clone' in the name of layer is hard to notice with longer names. Especially with lots of layers. Besides that, 'clone' part of a name can be erased (by mistake) and this makes later identifying clone layers cumbersome. Maybe 'clone' word can be put into brackets and be unremovable, while keeping possibility of editing cloned layer name? Or instead of adding 'clone', name of cloned layer would be put into unremovable brackets or braces? This brackets/braces would work, but are a little bit nerdy. Some graphical distinction would be best. I tried few things, but adding anything more to layers panel make them unclear or crowded. I think this pen button in front of each layer is unnecessary. It isn't conformable and take a lot of space. Maybe something more in line with other graphics software would be more effective: gox_mockup_layers In the mockup 'Layer 2' is selected. You can select it old way (selection marker) or by clicking on label area. If you click on name second time, you can rename layer. 'Layer 3' has it's clone below, that has a small DNA-like icon. 'Layer 4' is locked. In second mockup there is also name of original layer in braces: gox_layers_mockup_02

My last humble suggestion, is addition of button for cloned layers that would select its original layer. "Go to original layer" or sth like this.

YarlBoro commented 7 years ago

One more thing regarding WFC, please take a look at this: https://github.com/sylefeb/VoxModSynth

guillaumechereau commented 7 years ago

Thanks for the mock-ups. I need to implement something like that indeed. One problem is that clicking on the layer text also start the text editing, and most of the time we only want to select a layer, not edit the name. In gimp you have to double click on the text to start the editor, I think that's how I will try to make it work too.

guillaumechereau commented 7 years ago

Improved layers ui: image

YarlBoro commented 7 years ago

Nice, so much more efficient use of space. I like these chain icon, remind me of mask & layer linking in PS. Thanks for this improvements!!!