I'm building an isosurface/signed-distance-field modeler. Greatly inspired by Destiny's "MashUp" tool and Spore's creature creator.
Aside from traditional isosurface shapes, I'm also including spinal/caudal (like Spore's spines or zBrush's zSpheres), and generating SDFs for polygon meshes (also loading any bones that may be present). The main point of the tool being creating (or loading) pieces and creating rigged characters/creatures quickly. Loaded polygon meshes can be applied AFTER the initial contouring is complete through CSG (or just used explicitly as is) to enforce the use of the exact mesh.
Hopefully I'll manage to come up with time to implement projection sculpting and painting. With the majority of the contouring and surface generation already done I've just been putzing on getting around to doing the GUI and binding all the C++ to C#.
In the end my checklist resembles:
- Bind the library's C++ code to C#
- Implement GUI, using C#/WPF, ModernUI, and SlimDX for that
- Plugin API for import/export of meshes
- Prioritizing on OBJ, FBX, and DAE
- Implement automatic bone weighting
- Later refactor into an STB style library and MIT that library
- Implement "space warps" and other transformations (bend, twist, scale, translation of sampling points in area)
- Shrink-wrapping (of meshes, ie. clothes)
- Harmonic cage deformation (mostly for the above)
- Try out Manifold Dual Contouring instead of regular Dual Contouring for surface generation
- Experiment with "authoritative" spaces (ie. sunken in eyes without the usual hassles CSG involves for that)
- Sanitize interfaces with 3rd party libraries
- Example A) using DirectX UVAtlas for UV map generation, conversion too-from types is still nasty, should refactor out DX and Windows API cruft
- Create GUI for texture generation graph
- Texture generation via graph is already done (like a lite version of Substance) just needs a UI for editing the XML graph files
- If time permits:
- Implement LOD generation
- Permutation creation via "markers" to designate where a list of things may go
- Implement post-generation sculpting
- Take a couple of shots at making editing the isosurface cause as little destruction of sculpting as possible
- Implement projection painting
- Tie in to the procedural particle spray / projective texturing