File: DecalsVertGL4.glsl

package info (click to toggle)
spring 106.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 55,260 kB
  • sloc: cpp: 543,946; ansic: 44,800; python: 12,575; java: 12,201; awk: 5,889; sh: 1,796; asm: 1,546; xml: 655; perl: 405; php: 211; objc: 194; makefile: 76; sed: 2
file content (32 lines) | stat: -rw-r--r-- 725 bytes parent folder | download | duplicates (3)
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
#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];
};


layout(location = 0) in vec3 vertexPos;

uniform vec3 camPos;
uniform mat4 viewProjMatrix;

flat out int decalGroupId;


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