Move shaders into glsl and hlsl directories
Move `data/shaders` to `data/shaders/glsl` Move `data/hlsl` to `data/shaders/hlsl` Fix up shader paths in the cpp files to point to the new glsl location. `data/shaders/hlsl/compile.py` still overwrites the glsl .spv files (for now). Issue: #723
This commit is contained in:
parent
cac1d2e850
commit
ca884587a4
1043 changed files with 1207 additions and 1201 deletions
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
#if defined(__ANDROID__)
|
||||
// Use max. screen dimension as deferred framebuffer size
|
||||
#define FB_DIM std::max(width,height)
|
||||
#define FB_DIM std::max(width,height)
|
||||
#else
|
||||
#define FB_DIM 2048
|
||||
#endif
|
||||
|
|
@ -73,7 +73,7 @@ public:
|
|||
vks::Texture2D normalMap;
|
||||
} background;
|
||||
} textures;
|
||||
|
||||
|
||||
// Vertex layout for the models
|
||||
vks::VertexLayout vertexLayout = vks::VertexLayout({
|
||||
vks::VERTEX_COMPONENT_POSITION,
|
||||
|
|
@ -230,7 +230,7 @@ public:
|
|||
vkDestroySemaphore(device, offscreenSemaphore, nullptr);
|
||||
}
|
||||
|
||||
// Enable physical device features required for this example
|
||||
// Enable physical device features required for this example
|
||||
virtual void getEnabledFeatures()
|
||||
{
|
||||
// Geometry shader support is required for writing to multiple shadow map layers in one single pass
|
||||
|
|
@ -244,7 +244,7 @@ public:
|
|||
if (deviceFeatures.samplerAnisotropy) {
|
||||
enabledFeatures.samplerAnisotropy = VK_TRUE;
|
||||
}
|
||||
// Enable texture compression
|
||||
// Enable texture compression
|
||||
if (deviceFeatures.textureCompressionBC) {
|
||||
enabledFeatures.textureCompressionBC = VK_TRUE;
|
||||
}
|
||||
|
|
@ -258,7 +258,7 @@ public:
|
|||
|
||||
// Prepare a layered shadow map with each layer containing depth from a light's point of view
|
||||
// The shadow mapping pass uses geometry shader instancing to output the scene from the different
|
||||
// light sources' point of view to the layers of the depth attachment in one single pass
|
||||
// light sources' point of view to the layers of the depth attachment in one single pass
|
||||
void shadowSetup()
|
||||
{
|
||||
frameBuffers.shadow = new vks::Framebuffer(vulkanDevice);
|
||||
|
|
@ -278,7 +278,7 @@ public:
|
|||
attachmentInfo.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||
frameBuffers.shadow->addAttachment(attachmentInfo);
|
||||
|
||||
// Create sampler to sample from to depth attachment
|
||||
// Create sampler to sample from to depth attachment
|
||||
// Used to sample in the fragment shader for shadowed rendering
|
||||
VK_CHECK_RESULT(frameBuffers.shadow->createSampler(VK_FILTER_LINEAR, VK_FILTER_LINEAR, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE));
|
||||
|
||||
|
|
@ -370,7 +370,7 @@ public:
|
|||
|
||||
// First pass: Shadow map generation
|
||||
// -------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
clearValues[0].depthStencil = { 1.0f, 0 };
|
||||
|
||||
renderPassBeginInfo.renderPass = frameBuffers.shadow->renderPass;
|
||||
|
|
@ -897,8 +897,8 @@ public:
|
|||
// Final fullscreen pass pipeline
|
||||
std::array<VkPipelineShaderStageCreateInfo, 2> shaderStages;
|
||||
|
||||
shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
shaderStages[0] = loadShader(getShadersPath() + "deferredshadows/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shaderStages[1] = loadShader(getShadersPath() + "deferredshadows/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
|
||||
VkGraphicsPipelineCreateInfo pipelineCreateInfo =
|
||||
vks::initializers::pipelineCreateInfo(
|
||||
|
|
@ -920,13 +920,13 @@ public:
|
|||
VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.deferred));
|
||||
|
||||
// Debug display pipeline
|
||||
shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
shaderStages[0] = loadShader(getShadersPath() + "deferredshadows/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shaderStages[1] = loadShader(getShadersPath() + "deferredshadows/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.debug));
|
||||
|
||||
// Offscreen pipeline
|
||||
shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
shaderStages[0] = loadShader(getShadersPath() + "deferredshadows/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shaderStages[1] = loadShader(getShadersPath() + "deferredshadows/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
|
||||
// Separate render pass
|
||||
pipelineCreateInfo.renderPass = frameBuffers.deferred->renderPass;
|
||||
|
|
@ -950,15 +950,15 @@ public:
|
|||
VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.offscreen));
|
||||
|
||||
// Shadow mapping pipeline
|
||||
// The shadow mapping pipeline uses geometry shader instancing (invocations layout modifier) to output
|
||||
// The shadow mapping pipeline uses geometry shader instancing (invocations layout modifier) to output
|
||||
// shadow maps for multiple lights sources into the different shadow map layers in one single render pass
|
||||
std::array<VkPipelineShaderStageCreateInfo, 2> shadowStages;
|
||||
shadowStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/shadow.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shadowStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/shadow.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT);
|
||||
shadowStages[0] = loadShader(getShadersPath() + "deferredshadows/shadow.vert.spv", VK_SHADER_STAGE_VERTEX_BIT);
|
||||
shadowStages[1] = loadShader(getShadersPath() + "deferredshadows/shadow.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT);
|
||||
|
||||
pipelineCreateInfo.pStages = shadowStages.data();
|
||||
pipelineCreateInfo.stageCount = static_cast<uint32_t>(shadowStages.size());
|
||||
|
||||
|
||||
// Shadow pass doesn't use any color attachments
|
||||
colorBlendState.attachmentCount = 0;
|
||||
colorBlendState.pAttachments = nullptr;
|
||||
|
|
@ -1093,7 +1093,7 @@ public:
|
|||
memcpy(uniformBuffers.uboShadowGS.mapped, &uboShadowGS, sizeof(uboShadowGS));
|
||||
|
||||
uboFragmentLights.viewPos = glm::vec4(camera.position, 0.0f) * glm::vec4(-1.0f, 1.0f, -1.0f, 1.0f);;
|
||||
|
||||
|
||||
memcpy(uniformBuffers.fsLights.mapped, &uboFragmentLights, sizeof(uboFragmentLights));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue