In the works: Geodesica-SFX-0-9-9-9m which features:
- Disk bolt hubs.
In the works: Geodesica-SFX 1.0 with multiple Undo/Redo, native Save/Open wmof files, parametric hybrid domes, and high-precision streams.
Development snapshots for MS-Windows 64 bit (Parametric Controller only):
5.68 MB (5,964,363 bytes)
Uploaded on Fri Nov 20 2020 at 19:37 GMT
Geodesica-SFX 1.0 is a very different beast from the current version; the legacy fixed function pipeline has been dropped and most of the code has been re-written from the ground up, with multiple undo. The UI has also been completely overhauled. Rather than having a horizontal toolbar along the top, the main window now incorporates 'Controllers' which are located on the Left sash panel. The Log is intergral with the main window on the right; however both Log and Controller panels can be hidden by dragging the sashes to maximise the OpenGL view:
There are controllers for Geodesic, Parametric and Particle spheres. Supported parameteric sphere types include Ribbed, Lamella, Schwedler and Diamatic:
The following three screenshots show a Lamella bullet; this was created with the same settings as above, except that y(u,v) = cos(v)*(t^2). The constant t was set via the button “Set Contants...”.
Below is a screenshot of the Module controller which allows for the creation of “Hybrid” domes. My initial idea was to automate the subdivision process for the quad-edge lattice; I then thought about providing an over-ride facility that targets each parallel row individually. This allows great flexibility when designing the structure. For example, the sphere below incorporates Lamella, Schwedler and Ribbed geometries. Parallels 1 to 8 exhibit Lamella subdivision; parallels 9 to 11 have Schwedler Left to Right subdivision, after which the Lamella subdivision recommences for paralles 12 to 14; this is followed by another Schwedler subdivision for paralles 15 to 17 (but this time going in the reverse direction); the final three parallels have a standard ribbed subdivision:
Below is a screenshot of the Sparse Zenith option as applied to a trifanned ribbed sphere. This option can only be used when the number of meridians is one of the following set: 4, 8, 16, 32, 64, 128. Thanks to Greg Robin of Triodetic Engineering who introduced me to this method of reducing crowding at the zenith. This option may be used with any parametric sphere type, including Hybrid spheres.
The following shows the difference in geometry using the Sparse Zenith option. This affords a considerable economy of struts whilst also improving the overall aesthetic of the dome. The still images show OFF and ON; the large gif animations superimpose OFF and ON to demonstrate the algorithm. (Note: gif animations do not play correcty in Internet Explorer 11 without applying an update from Microsoft - hence the inclusion of the still images).
1. Ribbed Sphere Sparse Zenith option:
2. Lamella Sphere Sparse Zenith option:
Below is the dual of a trifanned ribbed sphere onion dome. The Primal manifold is visible as the outer cyan wireframe. Don’t be fooled by what appear to be legacy GL_POLYGON faces. The blue dual edges are in fact a single non-contiguous, non-closed polyline, whilst each dual polygonal face is an individual trifan with its own material state. Drawing these individual trifans in direct mode using the legacy fixed function pipeline was much faster. However the frame rate is not really an issue when modelling or tumbling the view. Of course, I could assign a single material state to all trifans, but then colouring individual face groups would become a real headache. I am currently modifying the scene graph to support cell groupings at nodes rather than at the leaf, so this issue should be resolved.
As I suspected before undertaking this major overhaul: upating the quad-edge geometry was much faster using the legacy fixed function pipeline: one could simply redraw the geometry between gl_begin and gl_end. In fact the “fixed” function pipeline was exceedingly flexible. But now, whenever the geometry changes, all the individual vertex buffers have to be deleted, re-assigned and re-attached to the scene graph - all of which involves expensive memory allocations.
The main drawback of dropping the legacy fixed function pipeline is that the code now requires a modern 64-bit computer with a high-spec graphics card.
As things stand, the user can select pre-defined parametric surfaces, or design their own using 'CUSTOM'. However, non-closed manifolds are almost impossible to support with the quad-edge data structure, so these might use standard meshes instead...