Remove repeat code from vert shader.
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
uniform int drawFlags;
|
||||
|
||||
in vec3 pos;
|
||||
|
||||
/* Normalized screen space uv coordinates. */
|
||||
out vec2 uvs;
|
||||
|
||||
void main()
|
||||
@@ -13,21 +15,14 @@ void main()
|
||||
/* `pos` contains the coordinates of a quad (-1..1). but we need the coordinates of an image
|
||||
* plane (0..1) */
|
||||
vec3 image_pos = pos * 0.5 + 0.5;
|
||||
uvs = image_pos.xy;
|
||||
|
||||
if ((drawFlags & IMAGE_DRAW_FLAG_DO_REPEAT) != 0) {
|
||||
gl_Position = vec4(pos.xy, IMAGE_Z_DEPTH, 1.0);
|
||||
uvs = point_view_to_object(image_pos).xy;
|
||||
}
|
||||
else {
|
||||
vec3 world_pos = point_object_to_world(image_pos);
|
||||
vec4 position = point_world_to_ndc(world_pos);
|
||||
/* Move drawn pixels to the front. In the overlay engine the depth is used
|
||||
* to detect if a transparency texture or the background color should be drawn.
|
||||
* Vertices are between 0.0 and 0.2, Edges between 0.2 and 0.4
|
||||
* actual pixels are at 0.75, 1.0 is used for the background. */
|
||||
position.z = IMAGE_Z_DEPTH;
|
||||
gl_Position = position;
|
||||
/* UDIM texture uses the world position for tile selection. */
|
||||
uvs = image_pos.xy;
|
||||
}
|
||||
vec3 world_pos = point_object_to_world(image_pos);
|
||||
vec4 position = point_world_to_ndc(world_pos);
|
||||
/* Move drawn pixels to the front. In the overlay engine the depth is used
|
||||
* to detect if a transparency texture or the background color should be drawn.
|
||||
* Vertices are between 0.0 and 0.2, Edges between 0.2 and 0.4
|
||||
* actual pixels are at 0.75, 1.0 is used for the background. */
|
||||
position.z = IMAGE_Z_DEPTH;
|
||||
gl_Position = position;
|
||||
}
|
||||
|
Reference in New Issue
Block a user