Bump to OPENRNDR 0.3.44-rc.2

This commit is contained in:
Edwin Jakobs
2020-07-13 11:45:13 +02:00
parent 5223ee0035
commit 62f6cd6098
33 changed files with 843 additions and 21 deletions

View File

@@ -0,0 +1,11 @@
#version 430 core
out vec4 o_color;
in vec3 va_position;
in vec3 va_normal;
in vec4 v_addedProperty;
void main() {
o_color = v_addedProperty;
}

View File

@@ -0,0 +1,29 @@
#version 430 core
layout (triangles) in;
layout (triangle_strip, max_vertices = 3) out;
in InVertex {
vec3 va_position;
vec3 va_normal;
vec4 v_addedProperty;
} vertices[];
out vec3 va_position;
out vec3 va_normal;
out vec4 v_addedProperty;
uniform vec3 offset;
void main() {
int i;
for(i = 0;i < gl_in.length();i++) {
v_addedProperty = vertices[i].v_addedProperty;
va_normal = vertices[i].va_normal;
va_position = vertices[i].va_position;
gl_Position = gl_in[i].gl_Position;
EmitVertex();
}
EndPrimitive();
}

View File

@@ -0,0 +1,22 @@
#version 430 core
in vec3 a_position;
in vec3 a_normal;
in vec2 a_texCoord0;
out InVertex {
vec3 va_position;
vec3 va_normal;
vec4 v_addedProperty;
} vertexOut;
uniform mat4 view;
uniform mat4 proj;
uniform mat4 model;
void main() {
vertexOut.v_addedProperty = vec4(1.0, 0.0, 0.0, 1.0);
vertexOut.va_position = a_position;
vertexOut.va_normal = a_normal;
gl_Position = proj * view * model * vec4(a_position, 1.0);
}

View File

@@ -0,0 +1,13 @@
#version 430 core
out vec4 o_color;
//in vec3 va_position;
//in vec3 va_normal;
//in vec4 v_addedProperty;
void main() {
o_color = vec4(1.0, 0.0, 0.0, 1.0);
}

View File

@@ -0,0 +1,16 @@
#version 430 core
layout(vertices = 4) out; // 4 points per patch
in vec3 va_position[];
out vec3 cva_position[];
void main() {
cva_position[gl_InvocationID] = va_position[gl_InvocationID];
if(gl_InvocationID == 0) { // levels only need to be set once per patch
gl_TessLevelOuter[0] = 1; // we're only tessellating one line
gl_TessLevelOuter[1] = 4; // tessellate the line into 100 segments
}
}

View File

@@ -0,0 +1,41 @@
#version 430 core
vec3 bezier2(vec3 a, vec3 b, float t) {
return mix(a, b, t);
}
vec3 bezier3(vec3 a, vec3 b, vec3 c, float t) {
return mix(bezier2(a, b, t), bezier2(b, c, t), t);
}
vec3 bezier4(vec3 a, vec3 b, vec3 c, vec3 d, float t) {
return mix(bezier3(a, b, c, t), bezier3(b, c, d, t), t);
}
struct Vertex {
vec3 va_position;
vec3 va_normal;
vec4 v_addedProperty;
};
layout(isolines) in;
in vec3 cva_position[];
uniform mat4 proj;
uniform mat4 view;
uniform mat4 model;
void main() {
float t = gl_TessCoord.x;
vec3 ePos = bezier4(
cva_position[0],
cva_position[1],
cva_position[2],
cva_position[3],
t);
gl_Position = proj * view * model * vec4(ePos, 1);
}

View File

@@ -0,0 +1,15 @@
#version 430 core
in vec3 a_position;
out vec3 va_position;
uniform mat4 view;
uniform mat4 proj;
uniform mat4 model;
void main() {
va_position = a_position;
gl_Position = proj * view * model * vec4(a_position, 1.0);
}

View File

@@ -0,0 +1,13 @@
#version 430 core
out vec4 o_color;
//in vec3 va_position;
//in vec3 va_normal;
//in vec4 v_addedProperty;
void main() {
o_color = vec4(1.0, 0.0, 0.0, 1.0);
}

View File

@@ -0,0 +1,29 @@
#version 430 core
layout (lines) in;
layout (line_strip, max_vertices = 2) out;
in InVertex {
vec3 va_position;
vec3 va_normal;
vec4 v_addedProperty;
} vertices[];
out vec3 va_position;
out vec3 va_normal;
out vec4 v_addedProperty;
uniform vec3 offset;
void main() {
int i;
for(i = 0;i < gl_in.length();i++) {
v_addedProperty = vertices[i].v_addedProperty;
va_normal = vertices[i].va_normal;
va_position = vertices[i].va_position;
gl_Position = gl_in[i].gl_Position;
EmitVertex();
}
EndPrimitive();
}

View File

@@ -0,0 +1,16 @@
#version 430 core
layout(vertices = 4) out; // 4 points per patch
in vec3 va_position[];
out vec3 cva_position[];
void main() {
cva_position[gl_InvocationID] = va_position[gl_InvocationID];
if(gl_InvocationID == 0) { // levels only need to be set once per patch
gl_TessLevelOuter[0] = 1; // we're only tessellating one line
gl_TessLevelOuter[1] = 4; // tessellate the line into 100 segments
}
}

View File

@@ -0,0 +1,41 @@
#version 430 core
vec3 bezier2(vec3 a, vec3 b, float t) {
return mix(a, b, t);
}
vec3 bezier3(vec3 a, vec3 b, vec3 c, float t) {
return mix(bezier2(a, b, t), bezier2(b, c, t), t);
}
vec3 bezier4(vec3 a, vec3 b, vec3 c, vec3 d, float t) {
return mix(bezier3(a, b, c, t), bezier3(b, c, d, t), t);
}
struct Vertex {
vec3 va_position;
vec3 va_normal;
vec4 v_addedProperty;
};
layout(isolines) in;
in vec3 cva_position[];
uniform mat4 proj;
uniform mat4 view;
uniform mat4 model;
void main() {
float t = gl_TessCoord.x;
vec3 ePos = bezier4(
cva_position[0],
cva_position[1],
cva_position[2],
cva_position[3],
t);
gl_Position = proj * view * model * vec4(ePos, 1);
}

View File

@@ -0,0 +1,15 @@
#version 430 core
in vec3 a_position;
out vec3 va_position;
uniform mat4 view;
uniform mat4 proj;
uniform mat4 model;
void main() {
va_position = a_position;
gl_Position = proj * view * model * vec4(a_position, 1.0);
}