File: DecalsVertGL4.glsl

package info (click to toggle)
spring 103.0%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 43,720 kB
  • ctags: 63,685
  • sloc: cpp: 368,283; ansic: 33,988; python: 12,417; java: 12,203; awk: 5,879; sh: 1,846; xml: 655; perl: 405; php: 211; objc: 194; makefile: 77; sed: 2
file content (30 lines) | stat: -rw-r--r-- 670 bytes parent folder | download | duplicates (2)
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
#version 420 compatibility
#extension GL_ARB_uniform_buffer_object : enable
//#extension GL_EXT_gpu_shader4 : enable
//#define MAX_DECALS_PER_GROUP 48
//#define MAX_DECALS_GROUPS 300

struct SDecalGroup {
	vec4 boundAABB[2];
	int ids[MAX_DECALS_PER_GROUP];
};

//FIXME layout(std140)
layout(packed) uniform decalGroupsUBO
{
	SDecalGroup groups[MAX_DECALS_GROUPS];
};


uniform vec3 camPos;
uniform mat4 viewProjMatrix;

flat out int decalGroupId;


void main() {
	decalGroupId = gl_InstanceID;
	SDecalGroup g = groups[gl_InstanceID];
	vec3 v = mix(g.boundAABB[0].xyz, g.boundAABB[1].xyz, step(vec3(0.0), gl_Vertex.xyz) );
	gl_Position = viewProjMatrix * vec4(v, 1.0);
}