HDR, Bloom and SSR
This commit is contained in:
parent
577836a03f
commit
04befce27d
44 changed files with 1377 additions and 269 deletions
|
|
@ -8,6 +8,7 @@ layout(location = 1) in vec3 inNormal;
|
|||
layout(location = 2) in vec3 inTangent;
|
||||
layout(location = 3) in vec3 inBitangent;
|
||||
layout(location = 4) in vec2 inTextCoords;
|
||||
layout(location = 5) in mat4 viewMatrix;
|
||||
|
||||
layout(location = 1) out vec4 outAlbedo ;
|
||||
layout(location = 0) out vec4 outPos;
|
||||
|
|
@ -16,6 +17,7 @@ layout(location = 3) out vec4 outPBR;
|
|||
layout(location = 4) out vec4 outEmissive;
|
||||
layout(location = 5) out vec4 outTranslucency;
|
||||
layout(location = 6) out vec4 outOpacity;
|
||||
layout(location = 7) out vec4 outViewPos;
|
||||
|
||||
struct Material {
|
||||
vec4 diffuseColor; //16
|
||||
|
|
@ -36,6 +38,10 @@ struct Material {
|
|||
uint hasOpacityMap; //88
|
||||
uint OpacityMapIdx; //92
|
||||
float OpacityFactor; //96
|
||||
float reflectiveness; //100
|
||||
float refractiveness; //104
|
||||
float Padding1; //108
|
||||
float Padding2; //112
|
||||
};
|
||||
layout(set = 2, binding = 0) readonly buffer MaterialUniform {
|
||||
Material materials[];
|
||||
|
|
@ -62,6 +68,9 @@ void main()
|
|||
{
|
||||
outPos = inPos;
|
||||
|
||||
vec4 viewPos = vec4(viewMatrix * vec4(inPos.xyz, 1.0));
|
||||
outViewPos = viewPos;
|
||||
|
||||
Material material = matUniform.materials[push_constants.materialIdx];
|
||||
int textureIndex = int(material.textureIdx);
|
||||
if (textureIndex >= MAX_TEXTURES){
|
||||
|
|
@ -95,7 +104,7 @@ void main()
|
|||
|
||||
mat3 TBN = mat3(inTangent, inBitangent, inNormal);
|
||||
vec3 newNormal = calcNormal(material, inNormal, inTextCoords, TBN);
|
||||
outNormal = vec4(newNormal, 1.0f);
|
||||
|
||||
|
||||
float ao = 0.5f;
|
||||
float roughnessFactor = 0.0f;
|
||||
|
|
@ -121,6 +130,9 @@ void main()
|
|||
}
|
||||
outTranslucency = Translucency;
|
||||
|
||||
outPBR = vec4(ao, roughnessFactor, metallicFactor, 1.0f);
|
||||
float Refractiveness = material.refractiveness;
|
||||
float Reflectiveness = material.reflectiveness;
|
||||
|
||||
outNormal = vec4(newNormal, Refractiveness);
|
||||
outPBR = vec4(ao, roughnessFactor, metallicFactor, Reflectiveness);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue