Thanks to the new C API and plugin system, I've moved parts of the development to the open.
I'm currently building a plugin for editing "voxel shapes" in the editor, which will be helpful for quickly making assets or blocking out worlds.
Next up: Region-based tooling (extruding, magic wand for selection, etc.) and a stamp tool.
#iolite #gamedev #indiedev #voxels
A pair of stud #earrings with natural black semitransparent #iolite made with #SterlingSilver. Earrings with nice movement!
Find it on my #etsy shop! see my bio or the pinned toot!
#ShopHandmade #handmade #silver #silver925 #MastodonArt #mastodon
#kosmimatis #jewelry #HandmadeJewelry #HandmadeGreekJewelry #HandmadeWithLove #JewelryArt #ArtisanJewelry #GreekJewelry #HandmadeGreece #GiftJewelry
#earrings #iolite #sterlingsilver #Etsy #shophandmade #handmade #silver #silver925 #mastodonart #mastodon #kosmimatis #jewelry #handmadejewelry #handmadegreekjewelry #handmadewithlove #jewelryart #artisanjewelry #greekjewelry #handmadegreece #giftjewelry
I am spending some time bringing IOLITE's (offline) GPU path tracer up to speed. I added depth of field with various bokeh shapes, support for water planes, and more.
#iolite #gamedev #inidiedev #voxel
IOLITE's mesh voxelizer is evolving nicely, now supporting meshes with materials and textures via glTF.
I've sculpted and textured a terrain mesh in Blender and voxelized various props for the scene in the screenshot. The grass is generated during the voxelization based on a parameter map, defining density and height. The underlying color palettes are automatically generated from the base color maps using k-means clustering.
#gamedev #indiedev #iolite #voxel
Mesh voxelization in IOLITE. I'm using Intel's Embree for BVH construction, followed by parallelized point queries, detail box intersections, and vertex attribute interpolation based on the closest points on the intersecting triangles. Colors are derived from MagicaVoxel's (second) default palette; hence they won't match perfectly.
#iolite #gamedev #voxel #indiedev
I worked on several optimizations to speed up the BVH traversal and overhauled some underlying data structures of voxel shapes in #IOLITE to save some memory.
The video shows creating a 4k² world by copying the initial 1k² world 16 times. Height is around 128 voxels, resulting in ~10k 64³ voxel shapes/chunks used for rendering.
#iolite #gamedev #indiedev #voxel
I worked on several optimizations to speed up the BVH traversal and overhauled some underlying data structures of voxel shapes in #IOLITE to save some memory.
The video shows creating a 4k² world by copying the initial 1k² world 16 times. Height is around 128 voxels, resulting in ~10k 64³ voxel shapes/chunks used for rendering.
Today's screenshot shows a sector of the Minecraft map Greenfield rendered in IOLITE at night.
There is an additional ray-traced point light right in the center. Spans roughly 2k² voxels, once again exported to VOX via #avoyd.
#avoyd #iolite #gamedev #indiedev #screenshotsaturday #voxel
Short thread on how I'm handling "radius damage" in IOLITE after the recent optimizations:
After spawning a "damage sphere", there are three phases. The first phase collects all the affected voxel shapes in the world. The results are then handed over to the task scheduler, where subtasks compute local bounds for the affected voxels, followed by the actual damage calculations on the truncated areas. +
#iolite #gamedev #indiedev #voxel
I almost finished up the palette editor today and added the fun option to specify the hardness of materials while I was at it.
In the video, I'm throwing grenades with varying thresholds for the material hardness parameter, controlling the types of voxel materials they can affect.
#iolite #gamedev #indiedev #voxel
Working on fracturing based on Voronoi regions precomputed at different resolutions. The resulting IDs are fed to the component labeling algorithm and serve as an additional classification.
Users can control fracturing by setting the according mask in the underlying data or simply by using the volume of a sphere in world coordinates.
In this example, a "damage sphere" and a "fracturing sphere" with a slightly larger radius are applied on top of each other.
#iolite #gamedev #indiedev #voxel
Part of the "Midtown Manhattan" MC map exported via Avoyd and rendered in real-time in IOLITE.
#iolite #screenshotsaturday #gamedev #voxel
I had some pretty complicated plans before implementing the voxel shape preview for IOLITE's editor, luckily I ended up with a simplistic solution:
The image is generated asynchronously on the CPU when hovering over the entries in the list. A small ray tracer operates line by line using my job scheduler, and the results get written to a single host-visible image displayed in the UI. There is no complex lighting or actual scene setup, but it gets the job done.
#voxel #gamedev #indiedev #iolite