initial
This commit is contained in:
parent
cd300d256e
commit
a703659c9d
76 changed files with 87245 additions and 0 deletions
49
examples/models/resources/shaders/pbr.vs
Normal file
49
examples/models/resources/shaders/pbr.vs
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*******************************************************************************************
|
||||
*
|
||||
* rPBR [shader] - Physically based rendering vertex shader
|
||||
*
|
||||
* Copyright (c) 2017 Victor Fisac
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#version 330
|
||||
|
||||
# Input vertex attributes
|
||||
in vec3 vertexPosition
|
||||
in vec2 vertexTexCoord
|
||||
in vec3 vertexNormal
|
||||
in vec4 vertexTangent
|
||||
|
||||
# Input uniform values
|
||||
uniform mat4 mvp
|
||||
uniform mat4 matModel
|
||||
|
||||
# Output vertex attributes (to fragment shader)
|
||||
out vec3 fragPosition
|
||||
out vec2 fragTexCoord
|
||||
out vec3 fragNormal
|
||||
out vec3 fragTangent
|
||||
out vec3 fragBinormal
|
||||
|
||||
void main()
|
||||
[
|
||||
# Calculate binormal from vertex normal and tangent
|
||||
vec3 vertexBinormal = cross(vertexNormal, vec3(vertexTangent))
|
||||
|
||||
# Calculate fragment normal based on normal transformations
|
||||
mat3 normalMatrix = transpose(inverse(mat3(matModel)))
|
||||
|
||||
# Calculate fragment position based on model transformations
|
||||
fragPosition = vec3(matModel*vec4(vertexPosition, 1.0))
|
||||
|
||||
# Send vertex attributes to fragment shader
|
||||
fragTexCoord = vertexTexCoord
|
||||
fragNormal = normalize(normalMatrix*vertexNormal)
|
||||
fragTangent = normalize(normalMatrix*vec3(vertexTangent))
|
||||
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal)
|
||||
fragBinormal = normalize(normalMatrix*vertexBinormal)
|
||||
fragBinormal = cross(fragNormal, fragTangent)
|
||||
|
||||
# Calculate final vertex position
|
||||
gl_Position = mvp*vec4(vertexPosition, 1.0)
|
||||
]
|
Reference in a new issue