Computer Graphics
I'm leaving this as is, but really my interest is "Computational Geometry"
- Broken Chalk Series This is excellent
- Graphics Gems books
- https://www.reddit.com/r/GraphicsProgramming/
- https://www.reddit.com/r/raytracing/
- https://github.com/hunterloftis/oneweekend/blob/master/readme.md
- Ray Tracing in a Weekend
- [1]
Notes
BCS
- Flat shading
- Gouraud Shading
- Phong Shading
Catmull-Clark Surface
Curves and Surfaces for CAGD
Resume: 1
1 (1)
In the French Auto industry both Paul de Castlejau and Pierre Bezier both created equivalent systems to describe the curves on automobiles. At Renault, Bezier developed UNISURF, an early CAD/CAM model.
This chapter provides a bunch of weird analogies for Curves.
Points and Vectors (13)
A point defines a location. Vectors are the result of subtracting points. Vectors can be added, points cannot.
Barycentric (or affine) Combinations allow points to be summed if the scalar coefficients of the expression sum to 1. I like this, it works, even with out addition because
b = b0 + ∑ ai(bi - b0)
which is still the sum of a point and a vector.
B-spline
Basis Spline; a curve defined by control points and a knot vector.
- Joins many low degree Bezier curves
A k degree B-spline deined by n control points will have n-k Bezier curves. So a cubic (k=3) B-spline with 6 control points will have n-k = 6-3 = 3 Bezier curves.
- C0 continuity means that the last point on each Bezier curve is the same as the first point on the next - there are no gaps.
- C1 the derivatives of the curves are continuous
- C2 the second derivatives of the curves are continuous
The length of the knot vector is m=k+n. For a uniform knot vector (most common), the numbers will be integers increasing by one, so m=5 will be T=(0,1,2,3,4).
S(t) = ∑inNi,k(t)Pi Ni,0(t) = (ti <= t < ti+1</sub) ? 1 : 0 Ni,j(t) = (t - ti)/(ti+j - ti)Ni,j-1(t) + (ti+j+1 - t)/(ti+j+1 - ti+1)Ni+1,j-1(t)
This forms a triangle because each N where j!= is dependent on two N where j is one less. And the curve itself is the case where i=0 j=n. The ternary acts like a switch that turns on one N where j=0.