The following table gives comparisons among more prominent features between Helix 3D
and Bloodstone
viewers. There may be more functionalities provided by Helix 3D
but here we only outline those that are more user facing.
Feature Name | Helix 3D | Bloodstone |
---|---|---|
Zoom to fit | Yes | Yes |
Zoom with mouse | Yes | Yes |
Pan | Yes | Yes |
Rotate | Yes | Yes |
Off-centered rotation | No | Yes |
Grid lines | Yes | No |
UCS icon | Yes | No |
Text support | Yes | No |
Selection highlight | Deferred | Real-time |
Phong shading | Yes | Yes |
Phong shading light sources | 3 | 1 |
Flat shading | No | Yes |
Per-vertex color | No | Yes |
Per-node color | No | Yes |
Anti-aliasing | Yes | Yes |
The following list represents what are to be implemented in Bloodstone for it to reach feature parity with that of Helix 3D
viewer. These tasks are not exhaustive and will grow as demanded:
- Implement pan operation
- Implement zoom operation
- Implement zoom extent with double-click
- Replace
IGraphicsContext::ActivateShaderProgram
withIShaderProgram::Activate
- Replace
IGraphicsContext::RenderVertexBuffer
withIVertexBuffer::Render
- Encapsulate things like
controlParams
in impl-specific classes - Remove APIs to deal with vertex/fragment shader from IGraphicsContext
- Remove
alpha
uniform from Phong fragment shader - Introduce a notion of "inactive" shader program (those that fail compilation)
- Set the background Cornflower blue to match the geometry contents
- Output diagnostic information on Dynamo
- Fix creation failure for Parallels
- Only zoom-to-fit when geometries arrive for the first time
- Make Z-axis as up vector instead of Y-axis
- Align view operations with that of Revit (i.e. mouse actions etc.)
- Integrate zoom operation with mouse wheel
- Performance: Merge the two-pass conversion from IRenderPackage to VB
- Update Phong shader to include 3 light sources, and increase the saturation
- Perform proper OpenGL context creation
- Implement anti-aliasing for better visual quality
- Implement geometry clearing when document is opened/closed/created
- Implement geometry clearing when nodes are deleted
Stadium designed by @elayabharath
Another stadium designed by @elayabharath
The graphics system always chooses the best anti-aliasing mode if the hardware allows it. If the default of 8x MSAA fails, the graphics context will fall back to 4x MSAA (or no anti-aliasing if even that fails). The following image makes the comparison among these settings (click on the image to display the original size for better comparisons):
Color setting is now available on per-node basis
Render style settings on a per-node basis, with default set to Phong Shading
Render style of Primitive Color
allows color specified on triangles to show through without shading