update irradiance caculation
parent
441aca4df4
commit
463ac6fe59
|
@ -20,6 +20,17 @@
|
||||||
"cmakeCommandArgs": "",
|
"cmakeCommandArgs": "",
|
||||||
"buildCommandArgs": "",
|
"buildCommandArgs": "",
|
||||||
"ctestCommandArgs": "",
|
"ctestCommandArgs": "",
|
||||||
|
"inheritEnvironments": [ "clang_cl_x64_x64" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "x64-Clang-Release",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"configurationType": "RelWithDebInfo",
|
||||||
|
"buildRoot": "${projectDir}\\out\\build\\${name}",
|
||||||
|
"installRoot": "${projectDir}\\out\\install\\${name}",
|
||||||
|
"cmakeCommandArgs": "",
|
||||||
|
"buildCommandArgs": "",
|
||||||
|
"ctestCommandArgs": "",
|
||||||
"inheritEnvironments": [ "clang_cl_x64_x64" ],
|
"inheritEnvironments": [ "clang_cl_x64_x64" ],
|
||||||
"variables": []
|
"variables": []
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -249,6 +249,11 @@ public:
|
||||||
vks::Buffer skinSSBO;
|
vks::Buffer skinSSBO;
|
||||||
} shaderData;
|
} shaderData;
|
||||||
|
|
||||||
|
struct StagingBuffer {
|
||||||
|
VkBuffer buffer;
|
||||||
|
VkDeviceMemory memory;
|
||||||
|
} vertexStaging, indexStaging;
|
||||||
|
|
||||||
struct Pipelines {
|
struct Pipelines {
|
||||||
VkPipeline solid;
|
VkPipeline solid;
|
||||||
VkPipeline wireframe = VK_NULL_HANDLE;
|
VkPipeline wireframe = VK_NULL_HANDLE;
|
||||||
|
@ -325,6 +330,28 @@ public:
|
||||||
vks::Texture2D lutBrdf;
|
vks::Texture2D lutBrdf;
|
||||||
} ibltextures;
|
} ibltextures;
|
||||||
|
|
||||||
|
struct OffScreen
|
||||||
|
{
|
||||||
|
VkImage image;
|
||||||
|
VkImageView view;
|
||||||
|
VkDeviceMemory memory;
|
||||||
|
VkFramebuffer framebuffer;
|
||||||
|
} offscreen;
|
||||||
|
|
||||||
|
struct IrradiancePushBlock
|
||||||
|
{
|
||||||
|
glm::mat4 mvp;
|
||||||
|
// Sampling deltas
|
||||||
|
float deltaPhi = (2.0f * float(M_PI)) / 180.0f;
|
||||||
|
float deltaTheta = (0.5f * float(M_PI)) / 64.0f;
|
||||||
|
} irradinacePushBlock;
|
||||||
|
|
||||||
|
struct PrefilterPushBlock {
|
||||||
|
glm::mat4 mvp;
|
||||||
|
float roughness;
|
||||||
|
uint32_t numSamples = 32u;
|
||||||
|
} prefilterPushBlock;
|
||||||
|
|
||||||
VulkanglTFModel skyboxModel;
|
VulkanglTFModel skyboxModel;
|
||||||
|
|
||||||
VulkanExample();
|
VulkanExample();
|
||||||
|
@ -356,7 +383,7 @@ public:
|
||||||
shaderData.buffer.destroy();
|
shaderData.buffer.destroy();
|
||||||
shaderData.skinSSBO.destroy();
|
shaderData.skinSSBO.destroy();
|
||||||
}
|
}
|
||||||
void loadglTFFile(std::string filename);
|
void loadglTFFile(std::string filename, VulkanglTFModel& model, bool bSkyboxFlag = false);
|
||||||
virtual void getEnabledFeatures();
|
virtual void getEnabledFeatures();
|
||||||
void createAttachment(VkFormat format, VkImageUsageFlagBits usage, FrameBufferAttachment* attachment, uint32_t width, uint32_t height);
|
void createAttachment(VkFormat format, VkImageUsageFlagBits usage, FrameBufferAttachment* attachment, uint32_t width, uint32_t height);
|
||||||
virtual void setupFrameBuffer();
|
virtual void setupFrameBuffer();
|
||||||
|
@ -365,6 +392,9 @@ public:
|
||||||
void setupDescriptors();
|
void setupDescriptors();
|
||||||
void preparePipelines();
|
void preparePipelines();
|
||||||
void prepareToneMappingPipeline();
|
void prepareToneMappingPipeline();
|
||||||
|
void generateIrradianceCubemap();
|
||||||
|
void generatePrefilteredCubemap();
|
||||||
|
void generateBRDFLUT();
|
||||||
void prepareUniformBuffers();
|
void prepareUniformBuffers();
|
||||||
void updateUniformBuffers();
|
void updateUniformBuffers();
|
||||||
void prepare();
|
void prepare();
|
||||||
|
|
Loading…
Reference in New Issue