Makepad 图形和特效
Makepad 中的 GPU 加速着色器、SDF 绘图和动画。
快速导航
| 类别 | 描述 |
|---|---|
| 着色器基础 | 结构、变量、数学函数 |
| SDF 绘图 | 圆形、矩形、胶囊、路径绘制 |
| 动画 | 动画器、缓动、关键帧、循环 |
| 视觉效果 | 悬停、渐变、阴影、发光 |
着色器结构
live_design! {
MyShader = {{MyShader}} {
fn pixel(self) -> vec4 {
let sdf = Sdf2d::viewport(self.pos * self.rect_size);
// 绘制形状
sdf.circle(50.0, 50.0, 20.0);
sdf.fill(#FF0000);
return sdf.result;
}
}
}
SDF 操作
// 基本形状
sdf.circle(x, y, radius)
sdf.box(x, y, width, height, border_radius)
sdf.capsule(x1, y1, x2, y2, width)
// 填充和描边
sdf.fill(color) // 填充形状
sdf.stroke(color, width) // 描边轮廓
sdf.fill_keep(color) // 填充,保持形状用于更多操作
动画系统
live_design! {
<Button> {
animator: {
hover = {
default: off
off = { from: {all: Forward {duration: 0.15}} }
on = { from: {all: Snap} }
}
}
draw_bg: {
color: #2196F3
color_hover: #42A5F5
}
}
}
缓动函数
| 缓动 | 使用场景 |
|---|---|
OutQuad | 进入动画 |
InQuad | 退出动画 |
InOutQuad | 平滑过渡 |
ExpDecay {d1: 0.8, d2: 0.97} | 物理运动 |
动画示例
live_design! {
LoadingSpinner = {{LoadingSpinner}} {
animator: {
spin = {
default: on
on = {
from: {all: Loop {duration: 1.0}}
apply: { draw_bg: { rotation: 360.0 } }
}
}
}
draw_bg: {
fn pixel(self) -> vec4 {
// 旋转弧着色器
let sdf = Sdf2d::viewport(self.pos * self.rect_size);
let angle = self.rotation * PI / 180.0;
// 绘制旋转弧
return sdf.result;
}
}
}
}
渐变效果
draw_bg: {
fn pixel(self) -> vec4 {
// 线性渐变
let grad = self.pos.y;
let color = mix(#FF0000, #0000FF, grad);
return vec4(color, 1.0);
}
}
资源
评论
还没有评论。成为第一个评论的人!
相关工具
Month Visit—DR: —AS: —
Month Visit—DR: —AS: —
相关洞察

Anthropic Subagent:多智能体时代的架构革命
深入解析 Anthropic 的多智能体架构设计。了解如何通过 Subagent 突破上下文窗口限制,实现性能提升 90%,以及多智能体系统在 Claude Code 中的实际应用。
按仓库任务选 AI 编程 CLI
按你真正要跑的工作,在 Claude Code、Codex CLI、OpenCode、Pi、omp、DeepSeek Harness 与 Grok Build 之间选择。2026-10-06 对照官方文档复核。
Skills + Hooks + Plugins:Anthropic 如何重新定义 AI 编程工具的扩展性
深入解析 Claude Code 的 Skills、Hooks 和 Plugins 三位一体架构,探讨为什么这种设计比 GitHub Copilot 和 Cursor 更先进,以及它如何通过开放标准重新定义 AI 编程工具的扩展性。