commit
ab0d19f356
Binary file not shown.
Binary file not shown.
@ -8,7 +8,7 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -8,12 +8,13 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 1280;
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 720;
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
|
|
||||||
float offset[3] = float[]( 0.0, 1.3846153846, 3.2307692308 );
|
float offset[3] = float[]( 0.0, 1.3846153846, 3.2307692308 );
|
||||||
float weight[3] = float[]( 0.2270270270, 0.3162162162, 0.0702702703 );
|
float weight[3] = float[]( 0.2270270270, 0.3162162162, 0.0702702703 );
|
||||||
|
@ -8,7 +8,7 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -8,12 +8,13 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 1280;
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 720;
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
|
|
||||||
float stitchingSize = 6.0f;
|
float stitchingSize = 6.0f;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -8,12 +8,13 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 1280;
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 720;
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
|
|
||||||
uniform float pixelWidth = 5.0f;
|
uniform float pixelWidth = 5.0f;
|
||||||
uniform float pixelHeight = 5.0f;
|
uniform float pixelHeight = 5.0f;
|
||||||
|
@ -8,7 +8,7 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@ struct Light {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const int maxLights = 8;
|
const int maxLights = 8;
|
||||||
uniform int lightsCount;
|
|
||||||
uniform Light lights[maxLights];
|
uniform Light lights[maxLights];
|
||||||
|
|
||||||
vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s)
|
vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s)
|
||||||
@ -134,19 +133,15 @@ void main()
|
|||||||
float spec = 1.0;
|
float spec = 1.0;
|
||||||
if (useSpecular == 1) spec *= normalize(texture2D(texture2, fragTexCoord).r);
|
if (useSpecular == 1) spec *= normalize(texture2D(texture2, fragTexCoord).r);
|
||||||
|
|
||||||
for (int i = 0; i < lightsCount; i++)
|
for (int i = 0; i < maxLights; i++)
|
||||||
{
|
{
|
||||||
// Check if light is enabled
|
// Check if light is enabled
|
||||||
if (lights[i].enabled == 1)
|
if (lights[i].enabled == 1)
|
||||||
{
|
{
|
||||||
// Calculate lighting based on light type
|
// Calculate lighting based on light type
|
||||||
switch (lights[i].type)
|
if(lights[i].type == 0) lighting += CalcPointLight(lights[i], n, v, spec);
|
||||||
{
|
else if(lights[i].type == 1) lighting += CalcDirectionalLight(lights[i], n, v, spec);
|
||||||
case 0: lighting += CalcPointLight(lights[i], n, v, spec); break;
|
else if(lights[i].type == 2) lighting += CalcSpotLight(lights[i], n, v, spec);
|
||||||
case 1: lighting += CalcDirectionalLight(lights[i], n, v, spec); break;
|
|
||||||
case 2: lighting += CalcSpotLight(lights[i], n, v, spec); break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,12 +8,13 @@ varying vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 800.0; // HARDCODED for example!
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 480.0; // Use uniforms instead...
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
|
|
||||||
float radius = 250.0;
|
float radius = 250.0;
|
||||||
float angle = 0.8;
|
float angle = 0.8;
|
||||||
|
@ -6,7 +6,7 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
@ -6,15 +6,16 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 1280.0;
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 720.0;
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
|
|
||||||
float offset[3] = float[](0.0, 1.3846153846, 3.2307692308);
|
float offset[3] = float[](0.0, 1.3846153846, 3.2307692308);
|
||||||
float weight[3] = float[](0.2270270270, 0.3162162162, 0.0702702703);
|
float weight[3] = float[](0.2270270270, 0.3162162162, 0.0702702703);
|
||||||
|
@ -6,7 +6,7 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
@ -6,15 +6,16 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 1280.0;
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 720.0;
|
const float renderWidth = 800.0;
|
||||||
|
const float renderHeight = 450.0;
|
||||||
|
|
||||||
float stitchingSize = 6.0;
|
float stitchingSize = 6.0;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0; // Depth texture
|
uniform sampler2D texture0; // Depth texture
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
@ -5,7 +5,7 @@ in vec2 fragTexCoord;
|
|||||||
out vec4 fragColor;
|
out vec4 fragColor;
|
||||||
|
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ in vec2 fragTexCoord;
|
|||||||
out vec4 fragColor;
|
out vec4 fragColor;
|
||||||
|
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
#version 330
|
|
||||||
|
|
||||||
// Input vertex attributes (from vertex shader)
|
|
||||||
in vec2 fragTexCoord;
|
|
||||||
in vec3 fragNormal;
|
|
||||||
|
|
||||||
// Input uniform values
|
|
||||||
uniform sampler2D texture0;
|
|
||||||
uniform vec4 colDiffuse;
|
|
||||||
|
|
||||||
// Output fragment color
|
|
||||||
out vec4 finalColor;
|
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
|
||||||
|
|
||||||
// Light uniform values
|
|
||||||
uniform vec3 lightAmbientColor = vec3(0.6, 0.3, 0.0);
|
|
||||||
uniform vec3 lightDiffuseColor = vec3(1.0, 0.5, 0.0);
|
|
||||||
uniform vec3 lightSpecularColor = vec3(0.0, 1.0, 0.0);
|
|
||||||
uniform float lightIntensity = 1.0;
|
|
||||||
uniform float lightSpecIntensity = 1.0;
|
|
||||||
|
|
||||||
// Material uniform values
|
|
||||||
uniform vec3 matAmbientColor = vec3(1.0, 1.0, 1.0);
|
|
||||||
uniform vec3 matSpecularColor = vec3(1.0, 1.0, 1.0);
|
|
||||||
uniform float matGlossiness = 50.0;
|
|
||||||
|
|
||||||
// World uniform values
|
|
||||||
uniform vec3 lightPosition;
|
|
||||||
uniform vec3 cameraPosition;
|
|
||||||
|
|
||||||
// Fragment shader output data
|
|
||||||
out vec4 fragColor;
|
|
||||||
|
|
||||||
// Calculate ambient lighting component
|
|
||||||
vec3 AmbientLighting()
|
|
||||||
{
|
|
||||||
return (matAmbientColor*lightAmbientColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate diffuse lighting component
|
|
||||||
vec3 DiffuseLighting(in vec3 N, in vec3 L)
|
|
||||||
{
|
|
||||||
// Lambertian reflection calculation
|
|
||||||
float diffuse = clamp(dot(N, L), 0, 1);
|
|
||||||
|
|
||||||
return (colDiffuse.xyz*lightDiffuseColor*lightIntensity*diffuse);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate specular lighting component
|
|
||||||
vec3 SpecularLighting(in vec3 N, in vec3 L, in vec3 V)
|
|
||||||
{
|
|
||||||
float specular = 0.0;
|
|
||||||
|
|
||||||
// Calculate specular reflection only if the surface is oriented to the light source
|
|
||||||
if (dot(N, L) > 0)
|
|
||||||
{
|
|
||||||
// Calculate half vector
|
|
||||||
vec3 H = normalize(L + V);
|
|
||||||
|
|
||||||
// Calculate specular intensity
|
|
||||||
specular = pow(dot(N, H), 3 + matGlossiness);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (matSpecularColor*lightSpecularColor*lightSpecIntensity*specular);
|
|
||||||
}
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
// Normalize input vectors
|
|
||||||
vec3 L = normalize(lightPosition);
|
|
||||||
vec3 V = normalize(cameraPosition);
|
|
||||||
vec3 N = normalize(fragNormal);
|
|
||||||
|
|
||||||
// Calculate lighting components
|
|
||||||
vec3 ambient = AmbientLighting();
|
|
||||||
vec3 diffuse = DiffuseLighting(N, L);
|
|
||||||
vec3 specular = SpecularLighting(N, L, V);
|
|
||||||
|
|
||||||
// Texel color fetching from texture sampler
|
|
||||||
vec4 texelColor = texture(texture0, fragTexCoord);
|
|
||||||
|
|
||||||
// Calculate final fragment color
|
|
||||||
finalColor = vec4(texelColor.rgb*(ambient + diffuse + specular), texelColor.a);
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
#version 330
|
|
||||||
|
|
||||||
// Input vertex attributes
|
|
||||||
in vec3 vertexPosition;
|
|
||||||
in vec2 vertexTexCoord;
|
|
||||||
in vec3 vertexNormal;
|
|
||||||
|
|
||||||
// Input uniform values
|
|
||||||
uniform mat4 mvpMatrix;
|
|
||||||
|
|
||||||
// Output vertex attributes (to fragment shader)
|
|
||||||
out vec2 fragTexCoord;
|
|
||||||
out vec3 fragNormal;
|
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
|
||||||
uniform mat4 modelMatrix;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
// Send vertex attributes to fragment shader
|
|
||||||
fragTexCoord = vertexTexCoord;
|
|
||||||
|
|
||||||
// Calculate view vector normal from model
|
|
||||||
mat3 normalMatrix = transpose(inverse(mat3(modelMatrix)));
|
|
||||||
fragNormal = normalize(normalMatrix*vertexNormal);
|
|
||||||
|
|
||||||
// Calculate final vertex position
|
|
||||||
gl_Position = mvpMatrix*vec4(vertexPosition, 1.0);
|
|
||||||
}
|
|
@ -6,15 +6,16 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 1280.0;
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 720.0;
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
|
|
||||||
uniform float pixelWidth = 5.0;
|
uniform float pixelWidth = 5.0;
|
||||||
uniform float pixelHeight = 5.0;
|
uniform float pixelHeight = 5.0;
|
||||||
|
@ -6,7 +6,7 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
@ -6,7 +6,7 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
@ -6,20 +6,23 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
|
// NOTE: Render size values must be passed from code
|
||||||
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
float offset = 0.0;
|
float offset = 0.0;
|
||||||
float frequency = 720.0/3.0;
|
|
||||||
|
|
||||||
uniform float time;
|
uniform float time;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
float frequency = renderHeight/3.0;
|
||||||
/*
|
/*
|
||||||
// Scanlines method 1
|
// Scanlines method 1
|
||||||
float tval = 0; //time
|
float tval = 0; //time
|
||||||
|
@ -34,7 +34,6 @@ struct Light {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const int maxLights = 8;
|
const int maxLights = 8;
|
||||||
uniform int lightsCount;
|
|
||||||
uniform Light lights[maxLights];
|
uniform Light lights[maxLights];
|
||||||
|
|
||||||
vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s)
|
vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s)
|
||||||
@ -134,19 +133,15 @@ void main()
|
|||||||
float spec = 1.0;
|
float spec = 1.0;
|
||||||
if (useSpecular == 1) spec *= normalize(texture(texture2, fragTexCoord).r);
|
if (useSpecular == 1) spec *= normalize(texture(texture2, fragTexCoord).r);
|
||||||
|
|
||||||
for (int i = 0; i < lightsCount; i++)
|
for (int i = 0; i < maxLights; i++)
|
||||||
{
|
{
|
||||||
// Check if light is enabled
|
// Check if light is enabled
|
||||||
if (lights[i].enabled == 1)
|
if (lights[i].enabled == 1)
|
||||||
{
|
{
|
||||||
// Calculate lighting based on light type
|
// Calculate lighting based on light type
|
||||||
switch (lights[i].type)
|
if(lights[i].type == 0) lighting += CalcPointLight(lights[i], n, v, spec);
|
||||||
{
|
else if(lights[i].type == 1) lighting += CalcDirectionalLight(lights[i], n, v, spec);
|
||||||
case 0: lighting += CalcPointLight(lights[i], n, v, spec); break;
|
else if(lights[i].type == 2) lighting += CalcSpotLight(lights[i], n, v, spec);
|
||||||
case 1: lighting += CalcDirectionalLight(lights[i], n, v, spec); break;
|
|
||||||
case 2: lighting += CalcSpotLight(lights[i], n, v, spec); break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,15 +6,16 @@ in vec4 fragColor;
|
|||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
|
||||||
// NOTE: Add here your custom variables
|
// NOTE: Add here your custom variables
|
||||||
|
|
||||||
const float renderWidth = 800.0; // HARDCODED for example!
|
// NOTE: Render size values must be passed from code
|
||||||
const float renderHeight = 480.0; // Use uniforms instead...
|
const float renderWidth = 800;
|
||||||
|
const float renderHeight = 450;
|
||||||
|
|
||||||
float radius = 250.0;
|
float radius = 250.0;
|
||||||
float angle = 0.8;
|
float angle = 0.8;
|
||||||
|
@ -1501,9 +1501,9 @@ public:
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
twist->w = T(1); // identity
|
twist->w = T(1); // identity
|
||||||
else
|
else
|
||||||
twist /= len; // normalize
|
*twist /= len; // normalize
|
||||||
|
|
||||||
return *this * twist.Inverted();
|
return *this * twist->Inverted();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Normalized linear interpolation of quaternions
|
// Normalized linear interpolation of quaternions
|
||||||
|
107
src/external/OculusSDK/LibOVR/Include/OVR_CAPI.h
vendored
107
src/external/OculusSDK/LibOVR/Include/OVR_CAPI.h
vendored
@ -756,17 +756,11 @@ typedef enum ovrButton_
|
|||||||
ovrButton_RThumb = 0x00000004,
|
ovrButton_RThumb = 0x00000004,
|
||||||
ovrButton_RShoulder = 0x00000008,
|
ovrButton_RShoulder = 0x00000008,
|
||||||
|
|
||||||
// Bit mask of all buttons on the right Touch controller
|
|
||||||
ovrButton_RMask = ovrButton_A | ovrButton_B | ovrButton_RThumb | ovrButton_RShoulder,
|
|
||||||
|
|
||||||
ovrButton_X = 0x00000100,
|
ovrButton_X = 0x00000100,
|
||||||
ovrButton_Y = 0x00000200,
|
ovrButton_Y = 0x00000200,
|
||||||
ovrButton_LThumb = 0x00000400,
|
ovrButton_LThumb = 0x00000400,
|
||||||
ovrButton_LShoulder = 0x00000800,
|
ovrButton_LShoulder = 0x00000800,
|
||||||
|
|
||||||
// Bit mask of all buttons on the left Touch controller
|
|
||||||
ovrButton_LMask = ovrButton_X | ovrButton_Y | ovrButton_LThumb | ovrButton_LShoulder,
|
|
||||||
|
|
||||||
// Navigation through DPad.
|
// Navigation through DPad.
|
||||||
ovrButton_Up = 0x00010000,
|
ovrButton_Up = 0x00010000,
|
||||||
ovrButton_Down = 0x00020000,
|
ovrButton_Down = 0x00020000,
|
||||||
@ -779,6 +773,13 @@ typedef enum ovrButton_
|
|||||||
ovrButton_Home = 0x01000000,
|
ovrButton_Home = 0x01000000,
|
||||||
ovrButton_Private = ovrButton_VolUp | ovrButton_VolDown | ovrButton_Home,
|
ovrButton_Private = ovrButton_VolUp | ovrButton_VolDown | ovrButton_Home,
|
||||||
|
|
||||||
|
// Bit mask of all buttons on the right Touch controller
|
||||||
|
ovrButton_RMask = ovrButton_A | ovrButton_B | ovrButton_RThumb | ovrButton_RShoulder,
|
||||||
|
|
||||||
|
// Bit mask of all buttons on the left Touch controller
|
||||||
|
ovrButton_LMask = ovrButton_X | ovrButton_Y | ovrButton_LThumb | ovrButton_LShoulder |
|
||||||
|
ovrButton_Enter,
|
||||||
|
|
||||||
|
|
||||||
ovrButton_EnumSize = 0x7fffffff ///< \internal Force type int32_t.
|
ovrButton_EnumSize = 0x7fffffff ///< \internal Force type int32_t.
|
||||||
} ovrButton;
|
} ovrButton;
|
||||||
@ -823,6 +824,25 @@ typedef enum ovrTouch_
|
|||||||
ovrTouch_EnumSize = 0x7fffffff ///< \internal Force type int32_t.
|
ovrTouch_EnumSize = 0x7fffffff ///< \internal Force type int32_t.
|
||||||
} ovrTouch;
|
} ovrTouch;
|
||||||
|
|
||||||
|
/// Describes the Touch Haptics engine.
|
||||||
|
/// Currently, those values will NOT change during a session.
|
||||||
|
typedef struct OVR_ALIGNAS(OVR_PTR_SIZE) ovrTouchHapticsDesc_
|
||||||
|
{
|
||||||
|
// Haptics engine frequency/sample-rate, sample time in seconds equals 1.0/sampleRateHz
|
||||||
|
int SampleRateHz;
|
||||||
|
// Size of each Haptics sample, sample value range is [0, 2^(Bytes*8)-1]
|
||||||
|
int SampleSizeInBytes;
|
||||||
|
|
||||||
|
// Queue size that would guarantee Haptics engine would not starve for data
|
||||||
|
// Make sure size doesn't drop below it for best results
|
||||||
|
int QueueMinSizeToAvoidStarvation;
|
||||||
|
|
||||||
|
// Minimum, Maximum and Optimal number of samples that can be sent to Haptics through ovr_SubmitControllerVibration
|
||||||
|
int SubmitMinSamples;
|
||||||
|
int SubmitMaxSamples;
|
||||||
|
int SubmitOptimalSamples;
|
||||||
|
} ovrTouchHapticsDesc;
|
||||||
|
|
||||||
/// Specifies which controller is connected; multiple can be connected at once.
|
/// Specifies which controller is connected; multiple can be connected at once.
|
||||||
typedef enum ovrControllerType_
|
typedef enum ovrControllerType_
|
||||||
{
|
{
|
||||||
@ -838,6 +858,31 @@ typedef enum ovrControllerType_
|
|||||||
ovrControllerType_EnumSize = 0x7fffffff ///< \internal Force type int32_t.
|
ovrControllerType_EnumSize = 0x7fffffff ///< \internal Force type int32_t.
|
||||||
} ovrControllerType;
|
} ovrControllerType;
|
||||||
|
|
||||||
|
/// Haptics buffer submit mode
|
||||||
|
typedef enum ovrHapticsBufferSubmitMode_
|
||||||
|
{
|
||||||
|
// Enqueue buffer for later playback
|
||||||
|
ovrHapticsBufferSubmit_Enqueue
|
||||||
|
} ovrHapticsBufferSubmitMode;
|
||||||
|
|
||||||
|
/// Haptics buffer descriptor, contains amplitude samples used for Touch vibration
|
||||||
|
typedef struct ovrHapticsBuffer_
|
||||||
|
{
|
||||||
|
const void* Samples;
|
||||||
|
int SamplesCount;
|
||||||
|
ovrHapticsBufferSubmitMode SubmitMode;
|
||||||
|
} ovrHapticsBuffer;
|
||||||
|
|
||||||
|
/// State of the Haptics playback for Touch vibration
|
||||||
|
typedef struct ovrHapticsPlaybackState_
|
||||||
|
{
|
||||||
|
// Remaining space available to queue more samples
|
||||||
|
int RemainingQueueSpace;
|
||||||
|
|
||||||
|
// Number of samples currently queued
|
||||||
|
int SamplesQueued;
|
||||||
|
} ovrHapticsPlaybackState;
|
||||||
|
|
||||||
|
|
||||||
/// Provides names for the left and right hand array indexes.
|
/// Provides names for the left and right hand array indexes.
|
||||||
///
|
///
|
||||||
@ -1358,26 +1403,50 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetInputState(ovrSession session, ovrControll
|
|||||||
///
|
///
|
||||||
OVR_PUBLIC_FUNCTION(unsigned int) ovr_GetConnectedControllerTypes(ovrSession session);
|
OVR_PUBLIC_FUNCTION(unsigned int) ovr_GetConnectedControllerTypes(ovrSession session);
|
||||||
|
|
||||||
|
/// Gets information about Haptics engine for the specified Touch controller.
|
||||||
/// Turns on vibration of the given controller.
|
|
||||||
///
|
|
||||||
/// To disable vibration, call ovr_SetControllerVibration with an amplitude of 0.
|
|
||||||
/// Vibration automatically stops after a nominal amount of time, so if you want vibration
|
|
||||||
/// to be continuous over multiple seconds then you need to call this function periodically.
|
|
||||||
///
|
///
|
||||||
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||||
/// \param[in] controllerType Specifies the controller to apply the vibration to.
|
/// \param[in] controllerType The controller to retrieve the information from.
|
||||||
/// \param[in] frequency Specifies a vibration frequency in the range of 0.0 to 1.0.
|
|
||||||
/// Currently the only valid values are 0.0, 0.5, and 1.0 and other values will
|
|
||||||
/// be clamped to one of these.
|
|
||||||
/// \param[in] amplitude Specifies a vibration amplitude in the range of 0.0 to 1.0.
|
|
||||||
///
|
///
|
||||||
|
/// \return Returns an ovrTouchHapticsDesc.
|
||||||
|
///
|
||||||
|
OVR_PUBLIC_FUNCTION(ovrTouchHapticsDesc) ovr_GetTouchHapticsDesc(ovrSession session, ovrControllerType controllerType);
|
||||||
|
|
||||||
|
/// Sets constant vibration (with specified frequency and amplitude) to a controller.
|
||||||
|
/// Note: ovr_SetControllerVibration cannot be used interchangeably with ovr_SubmitControllerVibration.
|
||||||
|
///
|
||||||
|
/// This method should be called periodically, vibration lasts for a maximum of 2.5 seconds.
|
||||||
|
/// It's recommended to call this method once a second, calls will be rejected if called too frequently (over 30hz).
|
||||||
|
///
|
||||||
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||||
|
/// \param[in] controllerType The controller to set the vibration to.
|
||||||
|
/// \param[in] frequency Vibration frequency. Supported values are: 0.0 (disabled), 0.5 and 1.0. Non valid values will be clamped.
|
||||||
|
/// \param[in] amplitude Vibration amplitude in the [0.0, 1.0] range.
|
||||||
/// \return Returns ovrSuccess upon success.
|
/// \return Returns ovrSuccess upon success.
|
||||||
///
|
///
|
||||||
/// \see ovrControllerType
|
|
||||||
///
|
|
||||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_SetControllerVibration(ovrSession session, ovrControllerType controllerType, float frequency, float amplitude);
|
OVR_PUBLIC_FUNCTION(ovrResult) ovr_SetControllerVibration(ovrSession session, ovrControllerType controllerType, float frequency, float amplitude);
|
||||||
|
|
||||||
|
/// Submits a Haptics buffer (used for vibration) to Touch (only) controllers.
|
||||||
|
/// Note: ovr_SubmitControllerVibration cannot be used interchangeably with ovr_SetControllerVibration.
|
||||||
|
///
|
||||||
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||||
|
/// \param[in] controllerType Controller where the Haptics buffer will be played.
|
||||||
|
/// \param[in] buffer Haptics buffer containing amplitude samples to be played.
|
||||||
|
/// \return Returns ovrSuccess upon success.
|
||||||
|
/// \see ovrHapticsBuffer
|
||||||
|
///
|
||||||
|
OVR_PUBLIC_FUNCTION(ovrResult) ovr_SubmitControllerVibration(ovrSession session, ovrControllerType controllerType, const ovrHapticsBuffer* buffer);
|
||||||
|
|
||||||
|
/// Gets the Haptics engine playback state of a specific Touch controller.
|
||||||
|
///
|
||||||
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||||
|
/// \param[in] controllerType Controller where the Haptics buffer wil be played.
|
||||||
|
/// \param[in] outState State of the haptics engine.
|
||||||
|
/// \return Returns ovrSuccess upon success.
|
||||||
|
/// \see ovrHapticsPlaybackState
|
||||||
|
///
|
||||||
|
OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetControllerVibrationState(ovrSession session, ovrControllerType controllerType, ovrHapticsPlaybackState* outState);
|
||||||
|
|
||||||
|
|
||||||
///@}
|
///@}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
// Master version numbers
|
// Master version numbers
|
||||||
#define OVR_PRODUCT_VERSION 1 // Product version doesn't participate in semantic versioning.
|
#define OVR_PRODUCT_VERSION 1 // Product version doesn't participate in semantic versioning.
|
||||||
#define OVR_MAJOR_VERSION 1 // If you change these values then you need to also make sure to change LibOVR/Projects/Windows/LibOVR.props in parallel.
|
#define OVR_MAJOR_VERSION 1 // If you change these values then you need to also make sure to change LibOVR/Projects/Windows/LibOVR.props in parallel.
|
||||||
#define OVR_MINOR_VERSION 5 //
|
#define OVR_MINOR_VERSION 6 //
|
||||||
#define OVR_PATCH_VERSION 0
|
#define OVR_PATCH_VERSION 0
|
||||||
#define OVR_BUILD_NUMBER 0
|
#define OVR_BUILD_NUMBER 0
|
||||||
|
|
||||||
|
BIN
src/external/OculusSDK/LibOVR/LibOVRRT32_1.dll
vendored
BIN
src/external/OculusSDK/LibOVR/LibOVRRT32_1.dll
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user