Several features need to be supported in Cycles, workbench and EEVEE.
Most of the relevant code is shared between EEVEE and workbench as part of the draw manager.
Initially at least, NURBS curves can be supported by computing the weights for each evaluated
point on the CPU (see blender::bke::curves::nurbs::BasisCache), and just doing interpolation
of attributes on the GPU.
For EEVEE/Viewport, supporting different curve types, segment counts, and cyclic values
could be supported by batching curves with similar data. For example, all curves with segment
counts in between two powers of 2 could be batched together, with padding triangles added
at the final point.
- EEVEE/Viewport
- Curve types
- Camull Rom
- Bezier
- Poly
- NURBS
- Cyclic
- Radius Attribute Support
- Generic attribute rendering
- Curve domain generic attributes rBcd968a327395
- Point domain attributes rBcd968a327395
- Curve segment count
- Remove drawing pass that resamples curves
- Support drawing arbitrary segment length curves
- Tube/cylinder drawing
- Curve types
- Cycles
- Curve types
- Camull Rom
- Bezier
- Poly
- NURBS
- Cyclic
- Radius Attribute Support
- Generic attribute rendering
- Curve domain generic attributes
- Point domain attributes
- Curve types