initial
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
#version 450
|
||||
|
||||
layout(location = 0) out vec4 fragColor;
|
||||
layout(location = 1) out vec4 fragNormal;
|
||||
layout(location = 2) out vec4 fragPosition;
|
||||
layout(location = 3) out vec4 fragPbr;
|
||||
|
||||
layout(location = 0) in vec3 inPos;
|
||||
layout(location = 1) in vec3 inNormal;
|
||||
layout(location = 2) in vec2 inUV;
|
||||
layout(location = 3) in mat3 inTBN;
|
||||
|
||||
layout( push_constant ) uniform constants
|
||||
{
|
||||
uint transformIdx;
|
||||
uint materialIdx;
|
||||
} PushConstants;
|
||||
|
||||
struct Material {
|
||||
vec4 albedo;
|
||||
vec4 bsdf;
|
||||
|
||||
int colorTexture;
|
||||
float colorTextureBlend;
|
||||
|
||||
int normalTexture;
|
||||
float normalTextureBlend;
|
||||
|
||||
int pbrTexture;
|
||||
float pbrTextureBlend;
|
||||
};
|
||||
|
||||
|
||||
layout(set = 2, binding = 0) uniform Materials {
|
||||
Material materials[128];
|
||||
} materials;
|
||||
|
||||
layout(set = 2, binding = 1) uniform sampler2D colorTextures[128];
|
||||
// layout(set = 2, binding = 2) uniform sampler2DArray normalTextures;
|
||||
// layout(set = 2, binding = 3) uniform sampler2DArray pbrTextures;
|
||||
|
||||
|
||||
void main() {
|
||||
Material material = materials.materials[PushConstants.materialIdx];
|
||||
vec2 uv = inUV;
|
||||
|
||||
vec3 color = texture(colorTextures[material.colorTexture], uv).rgb;
|
||||
vec3 normal = texture(colorTextures[material.normalTexture], uv).rgb;
|
||||
normal = normalize(normal * 2.0 - 1.0);
|
||||
vec2 pbr = texture(colorTextures[material.pbrTexture], uv).bg;
|
||||
|
||||
fragColor = vec4(mix(material.albedo.rgb, color, material.colorTextureBlend), 1.0);
|
||||
fragNormal = vec4(mix(inNormal, normalize(inTBN * normalize(normal)), material.normalTextureBlend), 1.0);
|
||||
fragPosition = vec4(inPos, 1.0);
|
||||
fragPbr = vec4(pbr, 0.0, 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user