Difference between revisions of "NURBS TODO"
(add link to Martin paper) |
(stub in the rest) |
||
Line 1: | Line 1: | ||
= Optimize BREP/NURBS ray tracing= | = Optimize BREP/NURBS ray tracing= | ||
− | * Benefit: faster ray tracing runtime | + | * Benefit: faster ray tracing runtime, user visible |
+ | * Time Estimate: 2 days | ||
* References: | * References: | ||
** src/librt/primitives/brep | ** src/librt/primitives/brep | ||
Line 7: | Line 8: | ||
= Optimize BREP/NURBS prep= | = Optimize BREP/NURBS prep= | ||
* Benefit: faster ray tracing runtime, user requested. | * Benefit: faster ray tracing runtime, user requested. | ||
+ | * Time Estimate: 2 days | ||
+ | * References: | ||
** src/librt/primitives/brep/brep.cpp:rt_brep_prep() | ** src/librt/primitives/brep/brep.cpp:rt_brep_prep() | ||
** src/librt/opennurbs_ext.* | ** src/librt/opennurbs_ext.* | ||
Line 13: | Line 16: | ||
Implement conversion of implicit primitives to BREP/NURBS primitives. Partially complete, primitives are fixed at origin, some primitives unimplemented. | Implement conversion of implicit primitives to BREP/NURBS primitives. Partially complete, primitives are fixed at origin, some primitives unimplemented. | ||
* Benefit: partial requirement for interactive visualization of implicit CSG geometry in OpenGL. | * Benefit: partial requirement for interactive visualization of implicit CSG geometry in OpenGL. | ||
+ | * Time Estimate: 3 days | ||
+ | * References: | ||
+ | ** src/librt/primitives/${PRIM}/${PRIM}_brep.cpp | ||
=BREP/NURBS-to-NMG= | =BREP/NURBS-to-NMG= | ||
Implement conversion of BREP/NURBS to NMG. | Implement conversion of BREP/NURBS to NMG. | ||
* Benefit: partial requirement for export and interactive visualization of BREP/NURBS in OpenGL. | * Benefit: partial requirement for export and interactive visualization of BREP/NURBS in OpenGL. | ||
+ | * Time Estimate: 1 day | ||
+ | * References: | ||
+ | ** src/librt/primitives/brep/brep.cpp:rt_brep_tess() | ||
=BSPLINE/NURBS review= | =BSPLINE/NURBS review= | ||
Identify useful concepts implemented in the old BSPLINE/NURBS code that are not present in openNURBS. | Identify useful concepts implemented in the old BSPLINE/NURBS code that are not present in openNURBS. | ||
* Benefit: code reuse, potentially very useful functionality. | * Benefit: code reuse, potentially very useful functionality. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=BSPLINE/NURBS reuse= | =BSPLINE/NURBS reuse= | ||
Port any useful BSPLINE/NURBS code to openNURBS data structures and routines. | Port any useful BSPLINE/NURBS code to openNURBS data structures and routines. | ||
* Benefit: code reduction, allows the old BSPLINE/NURBS code to be removed after functionality is migrated. | * Benefit: code reduction, allows the old BSPLINE/NURBS code to be removed after functionality is migrated. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=BREP/NURBS CSG evaluation= | =BREP/NURBS CSG evaluation= | ||
Implement boolean evaluation of BREP/NURBS surfaces. | Implement boolean evaluation of BREP/NURBS surfaces. | ||
* Benefit: partial requirement for interactive visualization of BREP/NURBS in OpenGL. | * Benefit: partial requirement for interactive visualization of BREP/NURBS in OpenGL. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=Plate-mode BREP/NURBS= | =Plate-mode BREP/NURBS= | ||
Implement plate mode BREP/NURBS objects. Similar, if not identical, to plate mode BoTs, 'brep' objects need the ability to have a thickness described so you could automatically handle non-solid NURBS and sheet-metal style geometry without requiring surface solidity. | Implement plate mode BREP/NURBS objects. Similar, if not identical, to plate mode BoTs, 'brep' objects need the ability to have a thickness described so you could automatically handle non-solid NURBS and sheet-metal style geometry without requiring surface solidity. | ||
* Benefit: allows for import and visualization of BREP/NURBS surfaces that are not solid. | * Benefit: allows for import and visualization of BREP/NURBS surfaces that are not solid. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=Implicit CSG to BREP/NURBS CSG test scripts= | =Implicit CSG to BREP/NURBS CSG test scripts= | ||
Develop test scripts for comparing conversion of implicit CSG to BREP/NURBS CSG | Develop test scripts for comparing conversion of implicit CSG to BREP/NURBS CSG | ||
* Benefit: provides validation and verification via ray tracing. | * Benefit: provides validation and verification via ray tracing. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=BREP/NURBS documentation= | =BREP/NURBS documentation= | ||
Document the new BREP/NURBS primitive. | Document the new BREP/NURBS primitive. | ||
* Benefit: provides user documentation explaining capabilities, limitations, and benefits. | * Benefit: provides user documentation explaining capabilities, limitations, and benefits. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=Cache objects= | =Cache objects= | ||
Implement data cache objects. Create new LIBRT API routines for storing cache data in a v5 container. This would amount to storing binary data into a 'binunif' object marked as hidden with attributes for date/time stamping and MD5 or SHA256 checksumming. | Implement data cache objects. Create new LIBRT API routines for storing cache data in a v5 container. This would amount to storing binary data into a 'binunif' object marked as hidden with attributes for date/time stamping and MD5 or SHA256 checksumming. | ||
* Benefit: faster ray tracing runtime, applicable to other primitives (NMG, BoT). | * Benefit: faster ray tracing runtime, applicable to other primitives (NMG, BoT). | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=Cache prep results= | =Cache prep results= | ||
Cache BREP/NURBS prep results to a specified cache file. | Cache BREP/NURBS prep results to a specified cache file. | ||
* Benefit: faster ray tracing runtime for BREP/NURBS, user requested. | * Benefit: faster ray tracing runtime for BREP/NURBS, user requested. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
=BREP/NURBS wireframe= | =BREP/NURBS wireframe= | ||
Improve BREP/NURBS wireframe. Investigate using knots on subcurves. | Improve BREP/NURBS wireframe. Investigate using knots on subcurves. | ||
* Benefit: faster wireframe, more detailed close wireframes. | * Benefit: faster wireframe, more detailed close wireframes. | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
= BREP/NURBS source code cleanup= | = BREP/NURBS source code cleanup= | ||
Consolidate Owens and Reeves approaches to ray intersection. | Consolidate Owens and Reeves approaches to ray intersection. | ||
* Benefit: improved code maintainability. | * Benefit: improved code maintainability. | ||
− | + | * Time Estimate: | |
− | + | * References: | |
+ | ** http://www.cs.utah.edu/~shirley/papers/raynurbs.pdf | ||
= BREP/NURBS healing= | = BREP/NURBS healing= | ||
Implement an rt_heal(rt_db_internal *dbi); routine. The routine tightens up trimming curves and edge/vertex pairings so that they align perfectly while still preserving the topological structure. | Implement an rt_heal(rt_db_internal *dbi); routine. The routine tightens up trimming curves and edge/vertex pairings so that they align perfectly while still preserving the topological structure. | ||
+ | * Benefit: | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
= BREP/NURBS for analysis purpose report= | = BREP/NURBS for analysis purpose report= | ||
+ | Description needed here. | ||
+ | * Benefit: | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
= Analytic comparison of BREP/NURBS and BoT= | = Analytic comparison of BREP/NURBS and BoT= | ||
+ | Description needed here. | ||
+ | * Benefit: | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** | ||
= Analytic comparison of BREP/NURBS CSG and implicit CSG= | = Analytic comparison of BREP/NURBS CSG and implicit CSG= | ||
+ | Description needed here. | ||
+ | * Benefit: | ||
+ | * Time Estimate: | ||
+ | * References: | ||
+ | ** |
Revision as of 00:07, 15 February 2011
Contents
- 1 Optimize BREP/NURBS ray tracing
- 2 Optimize BREP/NURBS prep
- 3 Implicit-to-NURBS
- 4 BREP/NURBS-to-NMG
- 5 BSPLINE/NURBS review
- 6 BSPLINE/NURBS reuse
- 7 BREP/NURBS CSG evaluation
- 8 Plate-mode BREP/NURBS
- 9 Implicit CSG to BREP/NURBS CSG test scripts
- 10 BREP/NURBS documentation
- 11 Cache objects
- 12 Cache prep results
- 13 BREP/NURBS wireframe
- 14 BREP/NURBS source code cleanup
- 15 BREP/NURBS healing
- 16 BREP/NURBS for analysis purpose report
- 17 Analytic comparison of BREP/NURBS and BoT
- 18 Analytic comparison of BREP/NURBS CSG and implicit CSG
Optimize BREP/NURBS ray tracing
- Benefit: faster ray tracing runtime, user visible
- Time Estimate: 2 days
- References:
- src/librt/primitives/brep
- src/librt/opennurbs_ext.*
Optimize BREP/NURBS prep
- Benefit: faster ray tracing runtime, user requested.
- Time Estimate: 2 days
- References:
- src/librt/primitives/brep/brep.cpp:rt_brep_prep()
- src/librt/opennurbs_ext.*
Implicit-to-NURBS
Implement conversion of implicit primitives to BREP/NURBS primitives. Partially complete, primitives are fixed at origin, some primitives unimplemented.
- Benefit: partial requirement for interactive visualization of implicit CSG geometry in OpenGL.
- Time Estimate: 3 days
- References:
- src/librt/primitives/${PRIM}/${PRIM}_brep.cpp
BREP/NURBS-to-NMG
Implement conversion of BREP/NURBS to NMG.
- Benefit: partial requirement for export and interactive visualization of BREP/NURBS in OpenGL.
- Time Estimate: 1 day
- References:
- src/librt/primitives/brep/brep.cpp:rt_brep_tess()
BSPLINE/NURBS review
Identify useful concepts implemented in the old BSPLINE/NURBS code that are not present in openNURBS.
- Benefit: code reuse, potentially very useful functionality.
- Time Estimate:
- References:
BSPLINE/NURBS reuse
Port any useful BSPLINE/NURBS code to openNURBS data structures and routines.
- Benefit: code reduction, allows the old BSPLINE/NURBS code to be removed after functionality is migrated.
- Time Estimate:
- References:
BREP/NURBS CSG evaluation
Implement boolean evaluation of BREP/NURBS surfaces.
- Benefit: partial requirement for interactive visualization of BREP/NURBS in OpenGL.
- Time Estimate:
- References:
Plate-mode BREP/NURBS
Implement plate mode BREP/NURBS objects. Similar, if not identical, to plate mode BoTs, 'brep' objects need the ability to have a thickness described so you could automatically handle non-solid NURBS and sheet-metal style geometry without requiring surface solidity.
- Benefit: allows for import and visualization of BREP/NURBS surfaces that are not solid.
- Time Estimate:
- References:
Implicit CSG to BREP/NURBS CSG test scripts
Develop test scripts for comparing conversion of implicit CSG to BREP/NURBS CSG
- Benefit: provides validation and verification via ray tracing.
- Time Estimate:
- References:
BREP/NURBS documentation
Document the new BREP/NURBS primitive.
- Benefit: provides user documentation explaining capabilities, limitations, and benefits.
- Time Estimate:
- References:
Cache objects
Implement data cache objects. Create new LIBRT API routines for storing cache data in a v5 container. This would amount to storing binary data into a 'binunif' object marked as hidden with attributes for date/time stamping and MD5 or SHA256 checksumming.
- Benefit: faster ray tracing runtime, applicable to other primitives (NMG, BoT).
- Time Estimate:
- References:
Cache prep results
Cache BREP/NURBS prep results to a specified cache file.
- Benefit: faster ray tracing runtime for BREP/NURBS, user requested.
- Time Estimate:
- References:
BREP/NURBS wireframe
Improve BREP/NURBS wireframe. Investigate using knots on subcurves.
- Benefit: faster wireframe, more detailed close wireframes.
- Time Estimate:
- References:
BREP/NURBS source code cleanup
Consolidate Owens and Reeves approaches to ray intersection.
- Benefit: improved code maintainability.
- Time Estimate:
- References:
BREP/NURBS healing
Implement an rt_heal(rt_db_internal *dbi); routine. The routine tightens up trimming curves and edge/vertex pairings so that they align perfectly while still preserving the topological structure.
- Benefit:
- Time Estimate:
- References:
BREP/NURBS for analysis purpose report
Description needed here.
- Benefit:
- Time Estimate:
- References:
Analytic comparison of BREP/NURBS and BoT
Description needed here.
- Benefit:
- Time Estimate:
- References:
Analytic comparison of BREP/NURBS CSG and implicit CSG
Description needed here.
- Benefit:
- Time Estimate:
- References: