ADD: Normal mapping
This commit is contained in:
@@ -24,10 +24,10 @@ inline void buildCube(std::vector<Vertex>& vertices, std::vector<uint32_t>& indi
|
||||
|
||||
for (auto& f : faces) {
|
||||
uint32_t start = (uint32_t)vertices.size();
|
||||
Vertex v0{f.v0, 0, f.normal, 0, glm::vec4(1.0f)};
|
||||
Vertex v1{f.v1, 1, f.normal, 0, glm::vec4(1.0f)};
|
||||
Vertex v2{f.v2, 0, f.normal, 1, glm::vec4(1.0f)};
|
||||
Vertex v3{f.v3, 1, f.normal, 1, glm::vec4(1.0f)};
|
||||
Vertex v0{f.v0, 0, f.normal, 0, glm::vec4(1.0f), glm::vec4(1,0,0,1)};
|
||||
Vertex v1{f.v1, 1, f.normal, 0, glm::vec4(1.0f), glm::vec4(1,0,0,1)};
|
||||
Vertex v2{f.v2, 0, f.normal, 1, glm::vec4(1.0f), glm::vec4(1,0,0,1)};
|
||||
Vertex v3{f.v3, 1, f.normal, 1, glm::vec4(1.0f), glm::vec4(1,0,0,1)};
|
||||
vertices.push_back(v0);
|
||||
vertices.push_back(v1);
|
||||
vertices.push_back(v2);
|
||||
@@ -61,6 +61,7 @@ inline void buildSphere(std::vector<Vertex>& vertices, std::vector<uint32_t>& in
|
||||
vert.uv_x = u;
|
||||
vert.uv_y = 1.0f - v;
|
||||
vert.color = glm::vec4(1.0f);
|
||||
vert.tangent = glm::vec4(1,0,0,1);
|
||||
vertices.push_back(vert);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ void GLTFMetallic_Roughness::build_pipelines(VulkanEngine *engine)
|
||||
layoutBuilder.add_binding(0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER);
|
||||
layoutBuilder.add_binding(1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
|
||||
layoutBuilder.add_binding(2, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
|
||||
layoutBuilder.add_binding(3, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
|
||||
|
||||
materialLayout = layoutBuilder.build(engine->_deviceManager->device(),
|
||||
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
|
||||
@@ -120,6 +121,8 @@ MaterialInstance GLTFMetallic_Roughness::write_material(VkDevice device, Materia
|
||||
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
|
||||
writer.write_image(2, resources.metalRoughImage.imageView, resources.metalRoughSampler,
|
||||
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
|
||||
writer.write_image(3, resources.normalImage.imageView, resources.normalSampler,
|
||||
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
|
||||
|
||||
writer.update_set(device, matData.materialSet);
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ struct GLTFMetallic_Roughness
|
||||
VkSampler colorSampler;
|
||||
AllocatedImage metalRoughImage;
|
||||
VkSampler metalRoughSampler;
|
||||
AllocatedImage normalImage;
|
||||
VkSampler normalSampler;
|
||||
VkBuffer dataBuffer;
|
||||
uint32_t dataBufferOffset;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user