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

prepass_vert.glsl « shaders « eevee « engines « draw « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f2e9e7001e8a93fe6f826aef66d1250fcffac345 (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
32
33
34
35

uniform mat4 ModelViewProjectionMatrix;
uniform mat4 ModelMatrix;

/* keep in sync with DRWManager.view_data */
layout(std140) uniform clip_block {
	vec4 ClipPlanes[1];
};

#ifndef HAIR_SHADER
in vec3 pos;
#endif

void main()
{
#ifdef HAIR_SHADER
	float time, thick_time, thickness;
	vec3 pos, tan, binor;
	hair_get_pos_tan_binor_time(
	        (ProjectionMatrix[3][3] == 0.0),
	        ViewMatrixInverse[3].xyz, ViewMatrixInverse[2].xyz,
	        pos, tan, binor, time, thickness, thick_time);

	gl_Position = ViewProjectionMatrix * vec4(pos, 1.0);
	vec4 worldPosition = vec4(pos, 1.0);
#else
	gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0);
	vec4 worldPosition = (ModelMatrix * vec4(pos, 1.0));
#endif

#ifdef CLIP_PLANES
	gl_ClipDistance[0] = dot(vec4(worldPosition.xyz, 1.0), ClipPlanes[0]);
#endif
	/* TODO motion vectors */
}