mirror of
https://github.com/3b1b/manim.git
synced 2025-09-19 04:41:56 +00:00
Go back to fill shader tracing vertex index manually
This commit is contained in:
parent
f2370afea0
commit
7847ff1a9d
2 changed files with 8 additions and 3 deletions
|
@ -61,6 +61,7 @@ class VMobject(Mobject):
|
|||
('point', np.float32, (3,)),
|
||||
('orientation', np.float32, (1,)),
|
||||
('color', np.float32, (4,)),
|
||||
('vert_index', np.float32, (1,)),
|
||||
]
|
||||
stroke_dtype: Sequence[Tuple[str, type, Tuple[int]]] = [
|
||||
("point", np.float32, (3,)),
|
||||
|
@ -1219,7 +1220,11 @@ class VMobject(Mobject):
|
|||
return self.stroke_data
|
||||
|
||||
def get_fill_shader_data(self) -> np.ndarray:
|
||||
self.fill_data = resize_array(self.fill_data, len(self.get_points()))
|
||||
points = self.get_points()
|
||||
if len(self.fill_data) != len(points):
|
||||
self.fill_data = resize_array(self.fill_data, len(points))
|
||||
self.fill_data["vert_index"][:, 0] = range(len(points))
|
||||
|
||||
self.read_data_to_shader(self.fill_data, "point", "points")
|
||||
self.read_data_to_shader(self.fill_data, "color", "fill_rgba")
|
||||
self.read_data_to_shader(self.fill_data, "orientation", "orientation")
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
in vec3 point;
|
||||
in float orientation;
|
||||
in vec4 color;
|
||||
in float vert_index;
|
||||
|
||||
out vec3 bp; // Bezier control point
|
||||
out float v_orientation;
|
||||
|
@ -18,6 +19,5 @@ void main(){
|
|||
bp = position_point_into_frame(point);
|
||||
v_orientation = orientation;
|
||||
v_color = color;
|
||||
// Implicit conversion from int to float
|
||||
v_vert_index = gl_VertexID;
|
||||
v_vert_index = vert_index;
|
||||
}
|
Loading…
Add table
Reference in a new issue