Merge glTF branch (#747)

* Added helper function for easy pipeline vertex input state create info structure setup from glTF model vertex class

* Split glTF loader into header and implementation

* Updated sample to use glTF

* Removed collada files

Replaced assets are now part of the asset pack

* Return value for glTF model vertex input state create info helper

* Removed unused assets

* Use glTF assets

* Added default material for glTF node's without materials

* Use glTF assets

* Apply pre-transforms to normals

* Use glTF assets

* Use glTF assets

* Use vertex input state from glTF model class

* Scene setup

* Use glTF assets

* Use glTF assets

* Display error message and exit if glTF file could not be loaded

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Remove unused buffer binds

* Use glTF assets

* Remove no longer used model files

* Remove no longer used model files

* Added support for rendering glTF models with images

* glTF model normal pre-transform ignores translation

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Use glTF assets

* Only add combined image samplers to pool if actually used in the scene

* Use global descriptor set layouts

* Use global descriptor set layouts

* Use glTF assets

* Use glTF assets

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Use glTF assets

Code cleanup

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Remove no-longer used model

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders
Removed no-longer used model

* Use glTF assets

Code cleanup
Use RGBA texture instead of different compressed formats
Removed no-longer used assets

* Adnrdoid build file

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders

* Added vertex count and way of passing additional memory property type flags to glTF loader

* Use glTF assets

Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Updated GLSL and HLSL shaders

* Remove unfinished sample

* Completely reworked push constants sample

Use glTF assets
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Android CMake build files

* Removed un-used asset

* Explicit buffer binding function

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders

* Use glTF assets

Code cleanup

* Use glTF assets

Code cleanup
Removed no-longer used assets

* Use glTF assets

Code cleanup
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Remove no-longer used asset

* Use glTF assets

Code cleanup and refactoring
Performance optimizations
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring
Removed no-longer used assets

* Use glTF assets

Code cleanup and refactoring

* Use glTF assets

Code cleanup and refactoring

* Use glTF assets

Code cleanup and refactoring
Removed no-longer used assets

* Pass vertex size and calculate multiplier in shaders instead of hard-coding

With this, changes to the glTF vertex structure won't break the ray tracing samples

* Load tangents (if present)

* Use glTF assets

Code cleanup and heavy refactoring
Reworked debug display code

* Android build

* Normal mapping fixes

Udpated HLSL shaders

* Use glTF assets

Code cleanup and heavy refactoring
Reworked debug display code
Updated GLSL and HLSL shaders

* Code cleanup, comments

* Use glTF assets

Code cleanup and heavy refactoring
Reworked debug display code
Updated GLSL and HLSL shaders

* Added sample count to framebuffer create info

* Removed no-longer used assets

* Android build

Removed no-longer used assets

* Code cleanup and heavy refactoring

Updated GLSL and HLSL shaders
Use tangents stored in GLSL instead of calculating them in the fragment shader

* Renamed textured PBR sample main cpp file

* Use glTF assets

Code cleanup and refactoring
Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Removed no-longer used assets

* Android build files

* Android build files

* Use glTF assets

Removed no-longer used assets

* Fixed HLSL shaders

* Android build files

* Use glTF assets

Updated GLSL and HLSL shaders
Removed no-longer used assets

* Use glTF assets

Updated GLSL and HLSL shaders
Removed no-longer used assets

* Added flag to disable glTF image loading

Useful for samples that use their own textures or don't use textures at all to speed up loading

* Use glTF assets

Code cleanup
Use Sponza scene instead of Sibenik to better highlight the effect
Updated GLSL and HLSL shaders

* Updated Android build files

* Removed left-over comment

* Use Sponza scene for the SSAO sample

* Removed unused code

* Removed ASSIMP

No longer required as all samples now use the glTF file format

* Added missing vertex shader stage

* Removed old ASSIMP-based model loader

* Added support for loading external glTF images from ktx

Android fixes for loading external buffer files

* Scene setup

* Added missing shader stages

* Removed ASSIMP from build files

* Fixed compiler warning

* Removed ASSIMP from readmes

* Android build files cleanup

* Replaced ktx submodule with only the files required for this repo

The ktx submodule was a tad too big and contained lots of files not required for this repo

* Moved ktx build files into base project

* Use glTF assets

* Use glTF assets

* Removed license files, will be moved to asset pack

* Use RGBA textures

* Use RGBA cubemp texture with face assignment based on original images

Refs #679

* Android build files

* Removed textures

All textures will be moved to the asset pack

* Ignore asset folders

* Removed font

Fonts will be moved to the asset pack

* Link to gltf asset pack

* Updated gitignore

* Android build file
This commit is contained in:
Sascha Willems 2020-07-28 20:20:38 +02:00 committed by GitHub
parent 8526c204e7
commit feb939096f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
726 changed files with 21935 additions and 132751 deletions

View file

@ -1,2 +0,0 @@
glslangvalidator -V lights.vert -o lights.vert.spv
glslangvalidator -V lights.frag -o lights.frag.spv

View file

@ -1,37 +0,0 @@
#version 450
#define lightCount 6
layout (location = 0) in vec3 inNormal;
layout (location = 2) in vec3 inColor;
layout (location = 3) in vec4 inLightVec[lightCount];
layout (location = 0) out vec4 outFragColor;
#define MAX_LIGHT_DIST 9.0 * 9.0
void main()
{
vec3 lightColor[lightCount];
lightColor[0] = vec3(1.0, 0.0, 0.0);
lightColor[1] = vec3(0.0, 1.0, 0.0);
lightColor[2] = vec3(0.0, 0.0, 1.0);
lightColor[3] = vec3(1.0, 0.0, 1.0);
lightColor[4] = vec3(0.0, 1.0, 1.0);
lightColor[5] = vec3(1.0, 1.0, 0.0);
vec3 diffuse = vec3(0.0);
// Just some very basic attenuation
for (int i = 0; i < lightCount; ++i)
{
float lRadius = MAX_LIGHT_DIST * inLightVec[i].w;
float dist = min(dot(inLightVec[i], inLightVec[i]), lRadius) / lRadius;
float distFactor = 1.0 - dist;
diffuse += lightColor[i] * distFactor;
}
outFragColor.rgb = diffuse;
}

View file

@ -1,44 +0,0 @@
#version 450
layout (location = 0) in vec3 inPos;
layout (location = 1) in vec3 inNormal;
layout (location = 3) in vec3 inColor;
#define lightCount 6
layout (binding = 0) uniform UBO
{
mat4 projection;
mat4 model;
vec4 lightColor[lightCount];
} ubo;
layout(push_constant) uniform PushConsts {
vec4 lightPos[lightCount];
} pushConsts;
layout (location = 0) out vec3 outNormal;
layout (location = 2) out vec3 outColor;
layout (location = 3) out vec4 outLightVec[lightCount];
out gl_PerVertex
{
vec4 gl_Position;
};
void main()
{
outNormal = inNormal;
outColor = inColor;
gl_Position = ubo.projection * ubo.model * vec4(inPos.xyz, 1.0);
for (int i = 0; i < lightCount; ++i)
{
vec4 worldPos = ubo.model * vec4(inPos.xyz, 1.0);
outLightVec[i].xyz = pushConsts.lightPos[i].xyz - inPos.xyz;
// Store light radius in w
outLightVec[i].w = pushConsts.lightPos[i].w;
}
}

View file

@ -0,0 +1,10 @@
#version 450
layout (location = 0) in vec3 inColor;
layout (location = 0) out vec4 outFragColor;
void main()
{
outFragColor.rgb = inColor;
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
#version 450
layout (location = 0) in vec3 inPos;
layout (location = 1) in vec3 inNormal;
layout (location = 2) in vec3 inColor;
#define lightCount 6
layout (binding = 0) uniform UBO
{
mat4 projection;
mat4 model;
mat4 view;
} ubo;
layout(push_constant) uniform PushConsts {
vec4 color;
vec4 position;
} pushConsts;
layout (location = 0) out vec3 outColor;
void main()
{
outColor = inColor * pushConsts.color.rgb;
vec3 locPos = vec3(ubo.model * vec4(inPos, 1.0));
vec3 worldPos = locPos + pushConsts.position.xyz;
gl_Position = ubo.projection * ubo.view * vec4(worldPos, 1.0);
}

Binary file not shown.