mirror of
https://github.com/raysan5/raylib.git
synced 2025-09-06 03:18:14 +00:00
Merge pull request #5016 from Sir-Irk/fix_pbr_example_tangents
[example] Fix pbr example shaders to use vec4 for vertexTangent
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
attribute vec3 vertexPosition;
|
attribute vec3 vertexPosition;
|
||||||
attribute vec2 vertexTexCoord;
|
attribute vec2 vertexTexCoord;
|
||||||
attribute vec3 vertexNormal;
|
attribute vec3 vertexNormal;
|
||||||
attribute vec3 vertexTangent;
|
attribute vec4 vertexTangent;
|
||||||
attribute vec4 vertexColor;
|
attribute vec4 vertexColor;
|
||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
@@ -52,7 +52,7 @@ mat3 transpose(mat3 m)
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// Compute binormal from vertex normal and tangent
|
// Compute binormal from vertex normal and tangent
|
||||||
vec3 vertexBinormal = cross(vertexNormal, vertexTangent);
|
vec3 vertexBinormal = cross(vertexNormal, vertexTangent.xyz) * vertexTangent.w;
|
||||||
|
|
||||||
// Compute fragment normal based on normal transformations
|
// Compute fragment normal based on normal transformations
|
||||||
mat3 normalMatrix = transpose(inverse(mat3(matModel)));
|
mat3 normalMatrix = transpose(inverse(mat3(matModel)));
|
||||||
@@ -62,7 +62,7 @@ void main()
|
|||||||
|
|
||||||
fragTexCoord = vertexTexCoord*2.0;
|
fragTexCoord = vertexTexCoord*2.0;
|
||||||
fragNormal = normalize(normalMatrix*vertexNormal);
|
fragNormal = normalize(normalMatrix*vertexNormal);
|
||||||
vec3 fragTangent = normalize(normalMatrix*vertexTangent);
|
vec3 fragTangent = normalize(normalMatrix*vertexTangent.xyz);
|
||||||
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal);
|
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal);
|
||||||
vec3 fragBinormal = normalize(normalMatrix*vertexBinormal);
|
vec3 fragBinormal = normalize(normalMatrix*vertexBinormal);
|
||||||
fragBinormal = cross(fragNormal, fragTangent);
|
fragBinormal = cross(fragNormal, fragTangent);
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
attribute vec3 vertexPosition;
|
attribute vec3 vertexPosition;
|
||||||
attribute vec2 vertexTexCoord;
|
attribute vec2 vertexTexCoord;
|
||||||
attribute vec3 vertexNormal;
|
attribute vec3 vertexNormal;
|
||||||
attribute vec3 vertexTangent;
|
attribute vec4 vertexTangent;
|
||||||
attribute vec4 vertexColor;
|
attribute vec4 vertexColor;
|
||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
@@ -52,7 +52,7 @@ mat3 transpose(mat3 m)
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// Compute binormal from vertex normal and tangent
|
// Compute binormal from vertex normal and tangent
|
||||||
vec3 vertexBinormal = cross(vertexNormal, vertexTangent);
|
vec3 vertexBinormal = cross(vertexNormal, vertexTangent.xyz) * vertexTangent.w;
|
||||||
|
|
||||||
// Compute fragment normal based on normal transformations
|
// Compute fragment normal based on normal transformations
|
||||||
mat3 normalMatrix = transpose(inverse(mat3(matModel)));
|
mat3 normalMatrix = transpose(inverse(mat3(matModel)));
|
||||||
@@ -62,7 +62,7 @@ void main()
|
|||||||
|
|
||||||
fragTexCoord = vertexTexCoord*2.0;
|
fragTexCoord = vertexTexCoord*2.0;
|
||||||
fragNormal = normalize(normalMatrix*vertexNormal);
|
fragNormal = normalize(normalMatrix*vertexNormal);
|
||||||
vec3 fragTangent = normalize(normalMatrix*vertexTangent);
|
vec3 fragTangent = normalize(normalMatrix*vertexTangent.xyz);
|
||||||
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal);
|
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal);
|
||||||
vec3 fragBinormal = normalize(normalMatrix*vertexBinormal);
|
vec3 fragBinormal = normalize(normalMatrix*vertexBinormal);
|
||||||
fragBinormal = cross(fragNormal, fragTangent);
|
fragBinormal = cross(fragNormal, fragTangent);
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
in vec3 vertexPosition;
|
in vec3 vertexPosition;
|
||||||
in vec2 vertexTexCoord;
|
in vec2 vertexTexCoord;
|
||||||
in vec3 vertexNormal;
|
in vec3 vertexNormal;
|
||||||
in vec3 vertexTangent;
|
in vec4 vertexTangent;
|
||||||
in vec4 vertexColor;
|
in vec4 vertexColor;
|
||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
@@ -26,7 +26,7 @@ const float normalOffset = 0.1;
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// Compute binormal from vertex normal and tangent
|
// Compute binormal from vertex normal and tangent
|
||||||
vec3 vertexBinormal = cross(vertexNormal, vertexTangent);
|
vec3 vertexBinormal = cross(vertexNormal, vertexTangent.xyz) * vertexTangent.w;
|
||||||
|
|
||||||
// Compute fragment normal based on normal transformations
|
// Compute fragment normal based on normal transformations
|
||||||
mat3 normalMatrix = transpose(inverse(mat3(matModel)));
|
mat3 normalMatrix = transpose(inverse(mat3(matModel)));
|
||||||
@@ -36,7 +36,7 @@ void main()
|
|||||||
|
|
||||||
fragTexCoord = vertexTexCoord*2.0;
|
fragTexCoord = vertexTexCoord*2.0;
|
||||||
fragNormal = normalize(normalMatrix*vertexNormal);
|
fragNormal = normalize(normalMatrix*vertexNormal);
|
||||||
vec3 fragTangent = normalize(normalMatrix*vertexTangent);
|
vec3 fragTangent = normalize(normalMatrix*vertexTangent.xyz);
|
||||||
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal);
|
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal);
|
||||||
vec3 fragBinormal = normalize(normalMatrix*vertexBinormal);
|
vec3 fragBinormal = normalize(normalMatrix*vertexBinormal);
|
||||||
fragBinormal = cross(fragNormal, fragTangent);
|
fragBinormal = cross(fragNormal, fragTangent);
|
||||||
|
Reference in New Issue
Block a user