index buffer
This commit is contained in:
parent
523852da08
commit
ebacb9540c
2 changed files with 10 additions and 32 deletions
26
main.cpp
26
main.cpp
|
|
@ -10,28 +10,6 @@ typedef VulkanShader<"test2.spirv", "main", VK_SHADER_STAGE_FRAGMENT_BIT, 0, {}>
|
||||||
typedef VulkanPipeline<MeshShader, FragmentShader> Pipeline;
|
typedef VulkanPipeline<MeshShader, FragmentShader> Pipeline;
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
// WindowWaylandWayland window("test", 128, 128);
|
|
||||||
// UiElement test(
|
|
||||||
// 0.5, //anchorX
|
|
||||||
// 0.5, //anchorY
|
|
||||||
// 2, //bufferWidth
|
|
||||||
// 1, //bufferHeight
|
|
||||||
// std::uint32_t(30), //absoluteSizeX
|
|
||||||
// std::uint32_t(30), //absoluteSizeY
|
|
||||||
// 0.5, //anchorOffsetX
|
|
||||||
// 0.5, //anchorOffsetY
|
|
||||||
// 0, //z
|
|
||||||
// false //ignoreScaling
|
|
||||||
// );
|
|
||||||
// window.scale = 1;
|
|
||||||
// test.buffer = {{255, 0, 0 ,255}, {0, 255, 0 ,255}};
|
|
||||||
// window.elements.AddComponent(&test);
|
|
||||||
// window.Start();
|
|
||||||
// while(true) {
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
//WriteDescriptor(0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor);
|
|
||||||
VulkanDevice::CreateDevice();
|
VulkanDevice::CreateDevice();
|
||||||
MeshShader::CreateShader();
|
MeshShader::CreateShader();
|
||||||
FragmentShader::CreateShader();
|
FragmentShader::CreateShader();
|
||||||
|
|
@ -50,8 +28,8 @@ int main() {
|
||||||
mesh.verticies.value[2] = {1.0f, 1.0f, 0.0f, 1.0f};
|
mesh.verticies.value[2] = {1.0f, 1.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
mesh.indicies.value[0] = 0;
|
mesh.indicies.value[0] = 0;
|
||||||
mesh.indicies.value[0] = 1;
|
mesh.indicies.value[1] = 1;
|
||||||
mesh.indicies.value[0] = 2;
|
mesh.indicies.value[2] = 2;
|
||||||
test.WriteDescriptor(0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, &mesh.verticies.descriptor);
|
test.WriteDescriptor(0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, &mesh.verticies.descriptor);
|
||||||
test.WriteDescriptor(0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2, &mesh.indicies.descriptor);
|
test.WriteDescriptor(0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2, &mesh.indicies.descriptor);
|
||||||
|
|
||||||
|
|
|
||||||
16
test.mesh
16
test.mesh
|
|
@ -40,14 +40,14 @@ const vec4[3] colors = {
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
uint iid = gl_LocalInvocationID.x;
|
uint iid = gl_LocalInvocationID.x;
|
||||||
|
|
||||||
SetMeshOutputsEXT(3, 1);
|
SetMeshOutputsEXT(3, 1);
|
||||||
mat4 mvp = ubo.projection * ubo.view * ubo.model;
|
mat4 mvp = ubo.projection * ubo.view * ubo.model;
|
||||||
gl_MeshVerticesEXT[0].gl_Position = mvp * vertex.pos[0];
|
uint triangleID = gl_LocalInvocationIndex.x * 3;
|
||||||
gl_MeshVerticesEXT[1].gl_Position = mvp * vertex.pos[1];
|
gl_MeshVerticesEXT[triangleID].gl_Position = mvp * vertex.pos[index.index[triangleID]];
|
||||||
gl_MeshVerticesEXT[2].gl_Position = mvp * vertex.pos[2];
|
gl_MeshVerticesEXT[triangleID+1].gl_Position = mvp * vertex.pos[index.index[triangleID+1]];
|
||||||
vertexOutput[0].color = colors[0];
|
gl_MeshVerticesEXT[triangleID+2].gl_Position = mvp * vertex.pos[index.index[triangleID+2]];
|
||||||
vertexOutput[1].color = colors[1];
|
vertexOutput[triangleID].color = colors[triangleID];
|
||||||
vertexOutput[2].color = colors[2];
|
vertexOutput[triangleID+1].color = colors[triangleID+1];
|
||||||
gl_PrimitiveTriangleIndicesEXT[gl_LocalInvocationIndex] = uvec3(0, 1, 2);
|
vertexOutput[triangleID+2].color = colors[triangleID+2];
|
||||||
|
gl_PrimitiveTriangleIndicesEXT[gl_LocalInvocationIndex.x] = uvec3(index.index[triangleID], index.index[triangleID+1], index.index[triangleID+2]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue