init
This commit is contained in:
34
data/shader/spritemulti.vert
Executable file
34
data/shader/spritemulti.vert
Executable file
@ -0,0 +1,34 @@
|
||||
layout (location = 0) in vec2 inVertex;
|
||||
layout (location = 1) in vec2 inVertexTexCoord;
|
||||
layout (location = 2) in vec4 inVertexColor;
|
||||
|
||||
uniform mat4x2 gPos;
|
||||
|
||||
uniform vec4 gRSP[228];
|
||||
uniform vec2 gCenter;
|
||||
|
||||
noperspective out vec2 texCoord;
|
||||
noperspective out vec4 vertColor;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 FinalPos = vec2(inVertex.xy);
|
||||
if(gRSP[gl_InstanceID].w != 0.0)
|
||||
{
|
||||
float X = FinalPos.x - gCenter.x;
|
||||
float Y = FinalPos.y - gCenter.y;
|
||||
|
||||
FinalPos.x = X * cos(gRSP[gl_InstanceID].w) - Y * sin(gRSP[gl_InstanceID].w) + gCenter.x;
|
||||
FinalPos.y = X * sin(gRSP[gl_InstanceID].w) + Y * cos(gRSP[gl_InstanceID].w) + gCenter.y;
|
||||
}
|
||||
|
||||
FinalPos.x *= gRSP[gl_InstanceID].z;
|
||||
FinalPos.y *= gRSP[gl_InstanceID].z;
|
||||
|
||||
FinalPos.x += gRSP[gl_InstanceID].x;
|
||||
FinalPos.y += gRSP[gl_InstanceID].y;
|
||||
|
||||
gl_Position = vec4(gPos * vec4(FinalPos, 0.0, 1.0), 0.0, 1.0);
|
||||
texCoord = inVertexTexCoord;
|
||||
vertColor = inVertexColor;
|
||||
}
|
Reference in New Issue
Block a user