Commit graph

260 commits

Author SHA1 Message Date
Grant Sanderson
045e1f6b8a Instead of tracking du and dv points on surface, track points off the surface in the normal direction
This means that surface shading will not necessarily work well for arbitrary transformations of the surface. But the existing solution was flimsy anyway, and caused annoying issues with singularity points.
2025-01-17 11:47:10 -06:00
Grant Sanderson
fbce0b132c Temporary band-aide for degenerate normal vector calculations
This solution is a bit too specific to the case of spheres.
2024-11-25 12:39:32 -07:00
Grant Sanderson
dd51b696e5 Only apply non-flat-stroke correction in non-zero joint angle vertices 2024-11-25 12:35:32 -07:00
Grant Sanderson
9cd6a87ff8 Make sure VMobject uniform flat_stroke matches the use inside the quadratic_bezier/stroke/geom.glsl code 2024-11-25 12:28:31 -07:00
Grant Sanderson
54c8a9014b Add scale_stroke_with_zoom option to VMobject 2024-11-25 11:27:11 -07:00
Grant Sanderson
aaa28a2712 Discard transparent parts of textured surfaces 2024-10-17 12:31:53 -05:00
Grant Sanderson
09e9e65ba4 Merge branch 'master' of github.com:3b1b/manim into video-work 2024-10-01 13:29:42 -05:00
Grant Sanderson
f0bf50eb7f Remove use of gl_VertexID 2024-09-28 09:54:28 -05:00
Grant Sanderson
95fca885c9 Push clip plane functionality up to all Mobjects 2024-09-17 17:20:19 -05:00
Grant Sanderson
6d23df0497 Clean up changes associated with fixing aspect ratio issue 2024-09-06 12:50:19 -05:00
Grant Sanderson
fcc5dc00f9 Treat objects fixed in frame as having flat stroke 2024-08-23 14:17:26 -05:00
Grant Sanderson
5d6a1f30c4 Count joints near 180 degrees as straight 2024-08-23 13:55:10 -05:00
Grant Sanderson
ada66ee8fb Remove stray comment 2024-08-22 15:31:10 -05:00
Grant Sanderson
9a7bfdd1c9 For Surface, calculate normals with neighboring points 2024-08-22 15:21:40 -05:00
Grant Sanderson
bda894959b Keeps stroke width as a function of pixels, independent of zoom level 2024-08-21 16:12:56 -05:00
Grant Sanderson
d870bb29de Fix the non-flat stroke edge case for tangents near line of sight 2024-08-21 16:12:13 -05:00
Grant Sanderson
9a5386b022 Instead of passing in joint_products to stroke shader, just track joint_angles and pass in global unit normal 2024-08-21 11:59:48 -05:00
Grant Sanderson
dfc5f152dd Have border width pre-multiply by alpha, and don't use a separate texture for that border width 2024-08-20 22:03:45 -05:00
Grant Sanderson
82582d08bd Fewer parameters for stroke frag shader 2024-08-20 13:32:52 -05:00
Grant Sanderson
0a313eb119 Reorganize quadratic bezier shader files 2024-08-20 12:58:34 -05:00
Grant Sanderson
5eb5a11499 Don't have absolute stroke width change with frame size (at least temporarily) 2024-08-20 12:36:28 -05:00
Grant Sanderson
0b2c59ac6b More explicitly unpack v_base_normal 2024-08-19 21:45:26 -05:00
Grant Sanderson
c064b11e2a Interleave base_point and unit_normal in the same array 2024-08-19 16:50:49 -05:00
Grant Sanderson
195264f079 Stop pretending to support non-winding fill in the fill shader.
Possibly, if we want to reintroduce it later on, it should have its own dedicated shader, and maybe a distinct Mobject type too
2024-08-19 14:37:11 -05:00
Grant Sanderson
39bcead679 Clean up 2024-08-19 14:22:10 -05:00
Grant Sanderson
3b5d63d2fa Add depth shader to handle winding fill depth test. 2024-08-19 14:09:07 -05:00
Grant Sanderson
24b160f9f9 Update VMobject shader wrapper
Use a combined VBO
Render with TRIANGLE_STRIP, and ignore every other
2024-08-19 08:05:32 -05:00
Grant Sanderson
0267740bde Change STROKE_WIDTH_CONVERSION width back to older value 2024-08-16 15:03:47 -05:00
Grant Sanderson
d8edccdab4 Fix zero stroke width issue 2024-08-16 14:59:18 -05:00
Grant Sanderson
04347e7876 Fix thin stroke issue for low resolutions 2024-08-15 17:11:02 -05:00
Grant Sanderson
a4858918dd Small reformatting 2024-08-08 13:59:50 -07:00
Grant Sanderson
31b6affabb Push up pointwise styling update 2024-08-08 13:56:16 -07:00
Grant Sanderson
cff3bdf8d4 Remove unnecessary flat stroke option 2024-08-08 13:55:48 -07:00
Grant Sanderson
9f54b85c4e Change miter threshold to global constant 2024-08-08 13:55:25 -07:00
Grant Sanderson
c345d76de0 Patch for glitches associated with non-flat stroke when tangency direction lines up with camera view 2024-08-08 11:36:28 -05:00
Grant Sanderson
099aaaee43 Increase polyline factor 2024-08-07 14:46:26 -05:00
Grant Sanderson
70862a068f Don't buff out stroke width by antialias width 2024-08-07 14:46:17 -05:00
Grant Sanderson
f677a02036 Allow for manually setting miter or bevel joints 2024-08-07 14:45:55 -05:00
Grant Sanderson
0a43a3ff9a Remove unnecessary stroke vert input 2024-08-07 14:10:50 -05:00
Grant Sanderson
61a2b4d0da Improve flat stroke for sharp corners with a smooth transition to miter joints 2024-08-07 10:34:47 -05:00
Grant Sanderson
edb438e5e2 Further clean up to stroke shader 2024-08-06 15:45:21 -05:00
Grant Sanderson
ec88673e92 Fix kink issue in flat stroke 2024-08-06 10:41:31 -05:00
Grant Sanderson
a5926195ee Clean up stroke shader 2024-08-05 15:01:02 -05:00
Grant Sanderson
557819ad03 Remove pre-computation of curve points and joint products 2024-08-05 14:25:15 -05:00
Grant Sanderson
f363eaa2fd Add stand in for a ribboning effect 2024-08-05 13:37:34 -05:00
Grant Sanderson
c61c18486c Don't bevel corners on inner joints of quadratic bezier curves 2024-08-05 13:37:17 -05:00
Grant Sanderson
26249c34bb Have non-flat stroke operate based on projecting tangents 2024-08-05 09:15:06 -05:00
Grant Sanderson
b3bbc31ea9 Small clean up to stroke shaders 2024-08-03 08:12:00 -05:00
Grant Sanderson
aea747b6d3 Final refinements on polyline stroke implementations 2024-08-01 07:41:32 -05:00
Grant Sanderson
361817b506 Pass fewer values to frag shader 2024-08-01 07:17:26 -05:00