Complete rework of the sample
Simplified, added comments and only use single buffers to show best practices
This commit is contained in:
parent
f5cddbd207
commit
eff719099a
7 changed files with 435 additions and 626 deletions
|
|
@ -7,10 +7,9 @@ layout (location = 2) in vec3 inColor;
|
|||
layout (binding = 0) uniform UBO
|
||||
{
|
||||
mat4 projection;
|
||||
mat4 model;
|
||||
mat4 normal;
|
||||
mat4 view;
|
||||
vec3 lightpos;
|
||||
vec4 lightpos;
|
||||
mat4 model[3];
|
||||
} ubo;
|
||||
|
||||
layout (location = 0) out vec3 outNormal;
|
||||
|
|
@ -20,12 +19,12 @@ layout (location = 3) out vec3 outLightVec;
|
|||
|
||||
void main()
|
||||
{
|
||||
outNormal = normalize(mat3(ubo.normal) * inNormal);
|
||||
outNormal = normalize(mat3x3(ubo.model[gl_InstanceIndex]) * inNormal);
|
||||
outColor = inColor;
|
||||
mat4 modelView = ubo.view * ubo.model;
|
||||
mat4 modelView = ubo.view * ubo.model[gl_InstanceIndex];
|
||||
vec4 pos = modelView * inPos;
|
||||
outEyePos = vec3(modelView * pos);
|
||||
vec4 lightPos = vec4(ubo.lightpos, 1.0) * modelView;
|
||||
vec4 lightPos = vec4(ubo.lightpos.xyz, 1.0) * modelView;
|
||||
outLightVec = normalize(lightPos.xyz - outEyePos);
|
||||
gl_Position = ubo.projection * pos;
|
||||
}
|
||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue