Removed unused instance and vertex attributes
This commit is contained in:
parent
01b3aefde2
commit
10b3d0b53c
7 changed files with 15 additions and 44 deletions
|
|
@ -33,7 +33,7 @@
|
||||||
#if defined(__ANDROID__)
|
#if defined(__ANDROID__)
|
||||||
#define OBJECT_COUNT 32
|
#define OBJECT_COUNT 32
|
||||||
#else
|
#else
|
||||||
#define OBJECT_COUNT 96
|
#define OBJECT_COUNT 64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MAX_LOD_LEVEL 5
|
#define MAX_LOD_LEVEL 5
|
||||||
|
|
@ -43,7 +43,6 @@ std::vector<vkMeshLoader::VertexLayout> vertexLayout =
|
||||||
{
|
{
|
||||||
vkMeshLoader::VERTEX_LAYOUT_POSITION,
|
vkMeshLoader::VERTEX_LAYOUT_POSITION,
|
||||||
vkMeshLoader::VERTEX_LAYOUT_NORMAL,
|
vkMeshLoader::VERTEX_LAYOUT_NORMAL,
|
||||||
vkMeshLoader::VERTEX_LAYOUT_UV,
|
|
||||||
vkMeshLoader::VERTEX_LAYOUT_COLOR
|
vkMeshLoader::VERTEX_LAYOUT_COLOR
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -65,8 +64,6 @@ public:
|
||||||
// Per-instance data block
|
// Per-instance data block
|
||||||
struct InstanceData {
|
struct InstanceData {
|
||||||
glm::vec3 pos;
|
glm::vec3 pos;
|
||||||
float texIndex;
|
|
||||||
glm::vec3 rot;
|
|
||||||
float scale;
|
float scale;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -258,21 +255,13 @@ public:
|
||||||
VK_FORMAT_R32G32B32_SFLOAT,
|
VK_FORMAT_R32G32B32_SFLOAT,
|
||||||
sizeof(float) * 3)
|
sizeof(float) * 3)
|
||||||
);
|
);
|
||||||
// Location 2 : Texture coordinates
|
// Location 2 : Color
|
||||||
vertices.attributeDescriptions.push_back(
|
vertices.attributeDescriptions.push_back(
|
||||||
vkTools::initializers::vertexInputAttributeDescription(
|
vkTools::initializers::vertexInputAttributeDescription(
|
||||||
VERTEX_BUFFER_BIND_ID,
|
VERTEX_BUFFER_BIND_ID,
|
||||||
2,
|
2,
|
||||||
VK_FORMAT_R32G32_SFLOAT,
|
|
||||||
sizeof(float) * 6)
|
|
||||||
);
|
|
||||||
// Location 3 : Color
|
|
||||||
vertices.attributeDescriptions.push_back(
|
|
||||||
vkTools::initializers::vertexInputAttributeDescription(
|
|
||||||
VERTEX_BUFFER_BIND_ID,
|
|
||||||
3,
|
|
||||||
VK_FORMAT_R32G32B32_SFLOAT,
|
VK_FORMAT_R32G32B32_SFLOAT,
|
||||||
sizeof(float) * 8)
|
sizeof(float) * 6)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Instanced attributes
|
// Instanced attributes
|
||||||
|
|
@ -281,20 +270,10 @@ public:
|
||||||
vkTools::initializers::vertexInputAttributeDescription(
|
vkTools::initializers::vertexInputAttributeDescription(
|
||||||
INSTANCE_BUFFER_BIND_ID, 4, VK_FORMAT_R32G32B32_SFLOAT, offsetof(InstanceData, pos))
|
INSTANCE_BUFFER_BIND_ID, 4, VK_FORMAT_R32G32B32_SFLOAT, offsetof(InstanceData, pos))
|
||||||
);
|
);
|
||||||
// Location 5: Rotation
|
// Location 5: Scale
|
||||||
vertices.attributeDescriptions.push_back(
|
vertices.attributeDescriptions.push_back(
|
||||||
vkTools::initializers::vertexInputAttributeDescription(
|
vkTools::initializers::vertexInputAttributeDescription(
|
||||||
INSTANCE_BUFFER_BIND_ID, 5, VK_FORMAT_R32G32B32_SFLOAT, offsetof(InstanceData, rot))
|
INSTANCE_BUFFER_BIND_ID, 5, VK_FORMAT_R32_SFLOAT, offsetof(InstanceData, scale))
|
||||||
);
|
|
||||||
// Location 6: Scale
|
|
||||||
vertices.attributeDescriptions.push_back(
|
|
||||||
vkTools::initializers::vertexInputAttributeDescription(
|
|
||||||
INSTANCE_BUFFER_BIND_ID, 6, VK_FORMAT_R32_SFLOAT, offsetof(InstanceData, scale))
|
|
||||||
);
|
|
||||||
// Location 7: Texture array layer index
|
|
||||||
vertices.attributeDescriptions.push_back(
|
|
||||||
vkTools::initializers::vertexInputAttributeDescription(
|
|
||||||
INSTANCE_BUFFER_BIND_ID, 7, VK_FORMAT_R32_SFLOAT, offsetof(InstanceData, texIndex))
|
|
||||||
);
|
);
|
||||||
|
|
||||||
vertices.inputState = vkTools::initializers::pipelineVertexInputStateCreateInfo();
|
vertices.inputState = vkTools::initializers::pipelineVertexInputStateCreateInfo();
|
||||||
|
|
@ -561,7 +540,6 @@ public:
|
||||||
uint32_t index = x + y * OBJECT_COUNT + z * OBJECT_COUNT * OBJECT_COUNT;
|
uint32_t index = x + y * OBJECT_COUNT + z * OBJECT_COUNT * OBJECT_COUNT;
|
||||||
instanceData[index].pos = glm::vec3((float)x, (float)y, (float)z) - glm::vec3((float)OBJECT_COUNT / 2.0f);
|
instanceData[index].pos = glm::vec3((float)x, (float)y, (float)z) - glm::vec3((float)OBJECT_COUNT / 2.0f);
|
||||||
instanceData[index].scale = 2.0f;
|
instanceData[index].scale = 2.0f;
|
||||||
instanceData[index].rot = glm::vec3(0.0f);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ layout (constant_id = 0) const int MAX_LOD_LEVEL = 5;
|
||||||
|
|
||||||
struct InstanceData
|
struct InstanceData
|
||||||
{
|
{
|
||||||
vec4 pos;
|
vec3 pos;
|
||||||
vec4 rot;
|
float scale;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Binding 0: Instance input data for culling
|
// Binding 0: Instance input data for culling
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -5,9 +5,8 @@
|
||||||
|
|
||||||
layout (location = 0) in vec3 inNormal;
|
layout (location = 0) in vec3 inNormal;
|
||||||
layout (location = 1) in vec3 inColor;
|
layout (location = 1) in vec3 inColor;
|
||||||
layout (location = 2) in vec3 inUV;
|
layout (location = 2) in vec3 inViewVec;
|
||||||
layout (location = 3) in vec3 inViewVec;
|
layout (location = 3) in vec3 inLightVec;
|
||||||
layout (location = 4) in vec3 inLightVec;
|
|
||||||
|
|
||||||
layout (location = 0) out vec4 outFragColor;
|
layout (location = 0) out vec4 outFragColor;
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -6,14 +6,11 @@
|
||||||
// Vertex attributes
|
// Vertex attributes
|
||||||
layout (location = 0) in vec4 inPos;
|
layout (location = 0) in vec4 inPos;
|
||||||
layout (location = 1) in vec3 inNormal;
|
layout (location = 1) in vec3 inNormal;
|
||||||
layout (location = 2) in vec2 inUV;
|
layout (location = 2) in vec3 inColor;
|
||||||
layout (location = 3) in vec3 inColor;
|
|
||||||
|
|
||||||
// Instanced attributes
|
// Instanced attributes
|
||||||
layout (location = 4) in vec3 instancePos;
|
layout (location = 4) in vec3 instancePos;
|
||||||
layout (location = 5) in vec3 instanceRot;
|
layout (location = 5) in float instanceScale;
|
||||||
layout (location = 6) in float instanceScale;
|
|
||||||
layout (location = 7) in float instanceTexIndex;
|
|
||||||
|
|
||||||
layout (binding = 0) uniform UBO
|
layout (binding = 0) uniform UBO
|
||||||
{
|
{
|
||||||
|
|
@ -23,9 +20,8 @@ layout (binding = 0) uniform UBO
|
||||||
|
|
||||||
layout (location = 0) out vec3 outNormal;
|
layout (location = 0) out vec3 outNormal;
|
||||||
layout (location = 1) out vec3 outColor;
|
layout (location = 1) out vec3 outColor;
|
||||||
layout (location = 2) out vec3 outUV;
|
layout (location = 2) out vec3 outViewVec;
|
||||||
layout (location = 3) out vec3 outViewVec;
|
layout (location = 3) out vec3 outLightVec;
|
||||||
layout (location = 4) out vec3 outLightVec;
|
|
||||||
|
|
||||||
out gl_PerVertex
|
out gl_PerVertex
|
||||||
{
|
{
|
||||||
|
|
@ -35,12 +31,10 @@ out gl_PerVertex
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
outColor = inColor;
|
outColor = inColor;
|
||||||
outUV = vec3(inUV, instanceTexIndex);
|
|
||||||
outUV.t = 1.0 - outUV.t;
|
|
||||||
|
|
||||||
outNormal = inNormal;// * mat3(rotMat);
|
outNormal = inNormal;
|
||||||
|
|
||||||
vec4 pos = vec4((inPos.xyz * instanceScale) + instancePos, 1.0)/* rotMat*/;
|
vec4 pos = vec4((inPos.xyz * instanceScale) + instancePos, 1.0);
|
||||||
|
|
||||||
gl_Position = ubo.projection * ubo.modelview * pos;
|
gl_Position = ubo.projection * ubo.modelview * pos;
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue