Open Questions
- Should the ViewMap only contain visible lines or all lines?
(Currently all lines)
- If all lines, should we compute the Quantitative Invisibility or just a binary visibility?
(currently both are possible. Some technical styles depend on the QI information)
- What types of feature lines should be in the ViewMap?
Currently, there are Silhouettes (smooth or non smooth, depending on the vertices normals), crease edges
and suggestive contours. This choice has an impact on the complexity of the ViewMap and potentially its robustness.
- Should we support chaining ?
(Currently, yes. Makes it harder to potentially support a solution to temporal coherence).
[ Update - 05/07/2008 ]
- How to replace the swig dependency? One difficulty that occurred to me is that Freestyle heavily relies on the use of “directors” that allow cross-language polymorphism. For instance, the operators (eg select, chain etc… ) are implemented in C++ and take as argument various rules (eg predicates, shaders, …) whose base classes are defined in C++ but whose implementations can be either in C++ or in Python. Directors make possible a python implementation . The solution would be to either emulate a similar feature or to break the style module down in a way that doesn’t require cross-language polymorphism.
I think all lines should be the goal.
Toon and NPR renderings will likely use only visible edges, but things like technical drawing need all. same thing for Quantitative visibility, but that may depends of the complexity.
Imho, Creases and Silhouettes are mandatory. Suggestive contours should be added too if possible. Now, because we are in a complete 3D application, there is other things we want to include, like user marked edges and material boundaries. Balancing complexity of the viewmap is indeed a problem.
About chaining, I’m a bit torn. Temporal coherence is important for animation, but on the other hand, due to animation itself, the edges in the view map will vary in any case. So we may not lost much by keeping chaining, and that allow more