Skip to content

mattatz/unity-voxel

Repository files navigation

unity-voxel

Voxelize mesh algorithm in Unity. (includes GPU and CPU voxelizers.)

Demo

GPUVoxelParticleSystem

GPUVoxelParticleSystem

the Demo for GPU Particle with geometry shader. (only tested on windows10 (GTX 1060))

Inspired by Keijiro Takahashi works⚡️ StandardGeometryShader & KvantSpray

GPUVoxelMosaic

GPUVoxelMosaicLevels

GPUVoxelMosaic

the Demo to update the resolution of voxels in realtime. (only tested on windows10 (GTX 1060))

Usage

with GPU Voxelizer (recommended)

GPUVoxelData data = GPUVoxelizer.Voxelize( voxelizer, // ComputeShader (Voxelizer.compute) mesh, // a target mesh 64, // # of voxels for largest AABB bounds true // flag to fill in volume or not; if set flag to false, sample a surface only ); // build voxel cubes integrated mesh GetComponent<MeshFilter>().sharedMesh = GPUVoxelizer.Build(data); // build 3D texture represent a volume by voxels. RenderTexture volumeTexture = GPUVoxelizer.BuildTexture3D( voxelizer, data, texture, // Texture2D to color voxels based on uv coordinates in voxels RenderTextureFormat.ARGBFloat, FilterMode.Bilinear ); // need to release a voxel buffer data.Dispose();

with CPU Voxelizer

// Voxelize target mesh with CPU Voxelizer List<Voxel> voxels = Voxelizer.Voxelize( mesh, // a target mesh 20 // # of voxels for largest AABB bounds );

Compatibility

tested on Unity 2017.0.3, windows10 (GTX 1060), macOS (metal).

Sources

About

Mesh voxelization for Unity.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published