Welcome to mirror list, hosted at ThFree Co, Russian Federation.

engine_image_vert.glsl « shaders « image « engines « draw « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3f1fb154d4471c96a348e74521d7a64197ba63ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma BLENDER_REQUIRE(common_view_lib.glsl)

#define SIMA_DRAW_FLAG_DO_REPEAT (1 << 5)

uniform int drawFlags;

in vec3 pos;
out vec2 uvs;

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;

  if ((drawFlags & SIMA_DRAW_FLAG_DO_REPEAT) != 0) {
    gl_Position = vec4(pos.xy, 0.0, 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 = 0.75;
    gl_Position = position;
    uvs = world_pos.xy;
  }
}