第 9 课:Vertex Attributes - Circle
实现:失误的原因是没有认知到要外推position这件事,也就是line18的dir*0.5
实现
// Already availabe:
// attribute vec3 position;
// attribute vec2 uv;
attribute vec3 nextPosition;
varying vec2 vUv;
void main() {
vUv = uv;
vec2 ratio = vec2(projectionMatrix[0][0] / projectionMatrix[1][1], 1.0);
vec2 dir = nextPosition.xy - position.xy;
vec2 tang = normalize(dir);
vec2 normal = vec2(-tang.y, tang.x);
float signal = sign((uv.x - 0.5) * (uv.y - 0.5));
vec2 dudv = dir*0.5 + normal*signal*0.25;
gl_Position = vec4(position.xy * ratio + dudv * ratio, 0.0, 1.0);
}
复盘笔记
- 失误的原因是没有认知到要外推position这件事,也就是line18的
dir*0.5 <2025/06/05>