uncomplete reconstruct
parent
b07037ecfb
commit
210932ab19
|
@ -67,4 +67,7 @@
|
||||||
#include "tiny_gltf.h"
|
#include "tiny_gltf.h"
|
||||||
#endif // !_TINY_GLTF_H
|
#endif // !_TINY_GLTF_H
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
|
@ -18,9 +18,15 @@
|
||||||
#include "renderIO.h"
|
#include "renderIO.h"
|
||||||
#endif // !RENDERIO_H
|
#endif // !RENDERIO_H
|
||||||
|
|
||||||
|
#ifndef _RENDERSETTER_H
|
||||||
|
#define _RENDERSETTER_H
|
||||||
#include "renderSetter.h"
|
#include "renderSetter.h"
|
||||||
|
#endif // !RENDERSETTER_H
|
||||||
|
|
||||||
|
#ifndef _PBR_H
|
||||||
|
#define _PBR_H
|
||||||
#include "PBR.h"
|
#include "PBR.h"
|
||||||
|
#endif // !PBR_H
|
||||||
|
|
||||||
|
|
||||||
void PlumageRender::renderMain::initWindow(int Width, int Height)
|
void PlumageRender::renderMain::initWindow(int Width, int Height)
|
||||||
|
@ -56,7 +62,7 @@ void PlumageRender::renderMain::prepare(Setter setter,PlumageGUI renderGUI,Rende
|
||||||
if (!setter.settings.headless)
|
if (!setter.settings.headless)
|
||||||
{
|
{
|
||||||
|
|
||||||
renderGUI.updateUIOverlay(ui,setter,mainRender,vkFoundation,renderInput,renderOutput);
|
renderGUI.updateUIOverlay(ui,setter,mainRender,vkFoundation,renderInput,renderOutput,pbrMaterial);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -93,7 +99,7 @@ void PlumageRender::renderMain::submitToPresentQueue()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlumageRender::renderMain::render(Setter setter,PlumageGUI plumageGUI,UI* gui,renderMain mainRender,PlumageVulkanBackend::VulkanFoundation vkFoundation,RenderInput renderInput,RenderOutput renderOutput)
|
void PlumageRender::renderMain::render(Setter setter,PlumageGUI plumageGUI,UI* gui,renderMain mainRender,PlumageVulkanBackend::VulkanFoundation vkFoundation,RenderInput renderInput,RenderOutput renderOutput,PBR::Material pbrMaterial)
|
||||||
{
|
{
|
||||||
if (!prepared) {
|
if (!prepared) {
|
||||||
return;
|
return;
|
||||||
|
@ -101,7 +107,7 @@ void PlumageRender::renderMain::render(Setter setter,PlumageGUI plumageGUI,UI* g
|
||||||
|
|
||||||
if (!setter.settings.headless)
|
if (!setter.settings.headless)
|
||||||
{
|
{
|
||||||
plumageGUI.updateUIOverlay(gui,setter,mainRender,vkFoundation,renderInput,renderOutput,);
|
plumageGUI.updateUIOverlay(gui,setter,mainRender,vkFoundation,renderInput,renderOutput,pbrMaterial);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t imageIndex;
|
uint32_t imageIndex;
|
||||||
|
@ -154,14 +160,14 @@ void PlumageRender::renderMain::render(Setter setter,PlumageGUI plumageGUI,UI* g
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlumageRender::renderMain::renderLoop(GLFWwindow* window,Setter setter)
|
void PlumageRender::renderMain::renderLoop(GLFWwindow* window,Setter setter, PlumageGUI plumageGUI, UI* gui, renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation, RenderInput renderInput, RenderOutput renderOutput, PBR::Material pbrMaterial)
|
||||||
{
|
{
|
||||||
if (setter.settings.headless)
|
if (setter.settings.headless)
|
||||||
{
|
{
|
||||||
uint32_t frameRange =setter.getFrameRange();
|
uint32_t frameRange =setter.getFrameRange();
|
||||||
for (size_t i = 0; i < frameRange; i++)
|
for (size_t i = 0; i < frameRange; i++)
|
||||||
{
|
{
|
||||||
drawFrame();
|
drawFrame(setter, plumageGUI, gui, mainRender, vkFoundation, renderInput, renderOutput, pbrMaterial);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -169,17 +175,17 @@ void PlumageRender::renderMain::renderLoop(GLFWwindow* window,Setter setter)
|
||||||
while (!glfwWindowShouldClose(window))
|
while (!glfwWindowShouldClose(window))
|
||||||
{
|
{
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
drawFrame();
|
drawFrame(setter, plumageGUI, gui, mainRender, vkFoundation, renderInput, renderOutput, pbrMaterial);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vkDeviceWaitIdle(PlumageVulkanBackend::VulkanFoundation::device);
|
vkDeviceWaitIdle(PlumageVulkanBackend::VulkanFoundation::device);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlumageRender::renderMain::drawFrame()
|
void PlumageRender::renderMain::drawFrame(Setter setter, PlumageGUI plumageGUI, UI* gui, renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation, RenderInput renderInput, RenderOutput renderOutput, PBR::Material pbrMaterial)
|
||||||
{
|
{
|
||||||
auto tStart = std::chrono::high_resolution_clock::now();
|
auto tStart = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
render();
|
render(setter,plumageGUI, gui, mainRender, vkFoundation, renderInput,renderOutput,pbrMaterial);
|
||||||
|
|
||||||
frameCounter++;
|
frameCounter++;
|
||||||
auto tEnd = std::chrono::high_resolution_clock::now();
|
auto tEnd = std::chrono::high_resolution_clock::now();
|
||||||
|
@ -212,6 +218,8 @@ void PlumageRender::renderMain::destroyModel(PlumageVulkanBackend::VulkanFoundat
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
PBR::Material pbrMaterial;
|
||||||
|
PlumageRender::PlumageGUI plumageGUI;
|
||||||
PlumageRender::RenderOutput renderOutput;
|
PlumageRender::RenderOutput renderOutput;
|
||||||
PlumageRender::RenderInput renderInput;
|
PlumageRender::RenderInput renderInput;
|
||||||
PlumageRender::Setter setter;
|
PlumageRender::Setter setter;
|
||||||
|
@ -219,12 +227,13 @@ int main()
|
||||||
PlumageVulkanBackend::VulkanFoundation vkFoundation;
|
PlumageVulkanBackend::VulkanFoundation vkFoundation;
|
||||||
UI* gui = new UI(vkFoundation.vulkanDevice, vkFoundation.renderPass, vkFoundation.graphicQueue, vkFoundation.pipelineCache, setter.settings.sampleCount);
|
UI* gui = new UI(vkFoundation.vulkanDevice, vkFoundation.renderPass, vkFoundation.graphicQueue, vkFoundation.pipelineCache, setter.settings.sampleCount);
|
||||||
|
|
||||||
vkFoundation.initVulkan();
|
vkFoundation.initVulkan(setter,plumageRender.camera,plumageRender,gui);
|
||||||
if (!setter.settings.headless)
|
if (!setter.settings.headless)
|
||||||
{
|
{
|
||||||
plumageRender.initWindow(setter.settings.width,setter.settings.height);
|
plumageRender.initWindow(setter.settings.width,setter.settings.height);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
plumageRender.renderLoop(vkFoundation.window, setter, plumageGUI, gui, plumageRender, vkFoundation, renderInput, renderOutput, pbrMaterial);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -157,9 +157,9 @@ namespace PlumageRender
|
||||||
void submitWork(VkCommandBuffer cmdBuffer, VkQueue queue);
|
void submitWork(VkCommandBuffer cmdBuffer, VkQueue queue);
|
||||||
void submitToPresentQueue();
|
void submitToPresentQueue();
|
||||||
|
|
||||||
virtual void render(Setter setter, PlumageGUI plumageGUI, UI* gui, renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation, RenderInput renderInput, RenderOutput renderOutput);
|
virtual void render(Setter setter, PlumageGUI plumageGUI, UI* gui, renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation, RenderInput renderInput, RenderOutput renderOutput,PBR::Material pbrMaterial);
|
||||||
void renderLoop(GLFWwindow* window, Setter setter);
|
void renderLoop(GLFWwindow* window, Setter setter, PlumageGUI plumageGUI, UI* gui, renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation, RenderInput renderInput, RenderOutput renderOutput, PBR::Material pbrMaterial);
|
||||||
void drawFrame();
|
void drawFrame(Setter setter, PlumageGUI plumageGUI, UI* gui, renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation, RenderInput renderInput, RenderOutput renderOutput, PBR::Material pbrMaterial);
|
||||||
void destroyModel(PlumageVulkanBackend::VulkanFoundation vkFoundation);
|
void destroyModel(PlumageVulkanBackend::VulkanFoundation vkFoundation);
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -177,8 +177,6 @@ namespace PlumageRender
|
||||||
|
|
||||||
renderMain::~renderMain()
|
renderMain::~renderMain()
|
||||||
{
|
{
|
||||||
models.scene.destroy(PlumageVulkanBackend::VulkanFoundation::device);
|
|
||||||
models.skybox.destroy(PlumageVulkanBackend::VulkanFoundation::device);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,10 @@
|
||||||
#include "renderSetter.h"
|
#include "renderSetter.h"
|
||||||
#endif // !RENDERSETTER_H
|
#endif // !RENDERSETTER_H
|
||||||
|
|
||||||
|
#ifndef _PBR_H
|
||||||
|
#define _PBR_H
|
||||||
#include "PBR.h"
|
#include "PBR.h"
|
||||||
|
#endif // !PBR_H
|
||||||
|
|
||||||
|
|
||||||
void PlumageRender::PlumageGUI::updateUIOverlay(UI* gui,Setter& setter,renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation,RenderInput renderInput,RenderOutput& renderOutput,PBR::Material pbrMaterial)
|
void PlumageRender::PlumageGUI::updateUIOverlay(UI* gui,Setter& setter,renderMain mainRender, PlumageVulkanBackend::VulkanFoundation vkFoundation,RenderInput renderInput,RenderOutput& renderOutput,PBR::Material pbrMaterial)
|
||||||
|
|
|
@ -786,9 +786,9 @@ void PlumageVulkanBackend::VulkanFoundation::createImageView(PlumageRender::Sett
|
||||||
memAlloc.pNext = NULL;
|
memAlloc.pNext = NULL;
|
||||||
memAlloc.allocationSize = 0;
|
memAlloc.allocationSize = 0;
|
||||||
memAlloc.memoryTypeIndex = 0;
|
memAlloc.memoryTypeIndex = 0;
|
||||||
VkMemoryRequirements memReqs;
|
VkMemoryRequirements depthAttachmentMemReqs;
|
||||||
vkGetImageMemoryRequirements(device, depthAttachment.image, &memReqs);
|
vkGetImageMemoryRequirements(device, depthAttachment.image, &memReqs);
|
||||||
memAlloc.allocationSize = memReqs.size;
|
memAlloc.allocationSize = depthAttachmentMemReqs.size;
|
||||||
memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
|
memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
|
||||||
VK_CHECK_RESULT(vkAllocateMemory(device, &memAlloc, nullptr, &depthAttachment.memory));
|
VK_CHECK_RESULT(vkAllocateMemory(device, &memAlloc, nullptr, &depthAttachment.memory));
|
||||||
VK_CHECK_RESULT(vkBindImageMemory(device, depthAttachment.image, depthAttachment.memory, 0));
|
VK_CHECK_RESULT(vkBindImageMemory(device, depthAttachment.image, depthAttachment.memory, 0));
|
||||||
|
|
|
@ -124,6 +124,8 @@ namespace PlumageVulkanBackend
|
||||||
|
|
||||||
VkQueue presentQueue;
|
VkQueue presentQueue;
|
||||||
|
|
||||||
|
GLFWwindow* window;
|
||||||
|
|
||||||
void initVulkan(PlumageRender::Setter setter, Camera camera, PlumageRender::renderMain mainRender, UI* plumageGUI);
|
void initVulkan(PlumageRender::Setter setter, Camera camera, PlumageRender::renderMain mainRender, UI* plumageGUI);
|
||||||
|
|
||||||
// 创建描述符集合
|
// 创建描述符集合
|
||||||
|
@ -178,7 +180,7 @@ namespace PlumageVulkanBackend
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GLFWwindow* window;
|
|
||||||
VkSurfaceKHR surface;
|
VkSurfaceKHR surface;
|
||||||
|
|
||||||
VkPhysicalDeviceFeatures deviceFeatures;
|
VkPhysicalDeviceFeatures deviceFeatures;
|
||||||
|
|
Loading…
Reference in New Issue