![](http://tiebapic.baidu.com/forum/w%3D580/sign=edb6413eb7d3572c66e29cd4ba126352/a2734a82b2b7d0a2eb93124a8eef76094a369a52.jpg?tbpicau=2025-02-25-05_a53c043fd87a1bebd11da914129c8509)
透视perspective
https://godotshaders.com/shader/2d-perspective/![](http://tiebapic.baidu.com/forum/w%3D580/sign=61559be93eec54e741ec1a1689399bfd/7dcc5410b912c8fc83a4e01ab9039245d788215c.jpg?tbpicau=2025-02-25-05_e36d2f5c312b9287fe21b5486f5bc683)
Skew
![](http://tiebapic.baidu.com/forum/w%3D580/sign=82c7a1c18afc1e17fdbf8c397a91f67c/f96378600c3387442a9639ab140fd9f9d62aa059.jpg?tbpicau=2025-02-25-05_b6fce880dd903b1734179e28f0430e3f)
代码
shader_type canvas_item;
uniform float X:hint_range(0.0, 1.0, 0.01) = .0;
uniform float Y:hint_range(0.0, 1.0, 0.01) = .0;
void vertex()
{
float vertPosY = (-VERTEX.y * X) + VERTEX.x;
VERTEX.x = vertPosY;
float vertPosX = (-VERTEX.x * Y) + VERTEX.y;
VERTEX.y = vertPosX;
}