feat: ImGui docking Editor + 显示链/帧同步/输入语义重构
- App/editor: Hierarchy/Inspector/Viewport/Stats 四面板 + DockBuilder 默认布局,main.cpp 瘦身为场景搭建与生命周期 - 显示链: Tonemap→PresentTarget 经 ImGui::Image 呈现(零色偏),backbuffer 仅承载 ImGui;Direct/Viewport 双显示模式 + 面板分辨率上报 - 帧首同步 BeginFrameSync: resize/vsync/尺寸/模式意图统一帧首落定(修描述符悬垂);修复 vsync 意图未落 swapchain 导致的每帧重建交换链 - 输入: Editor 每帧判定键盘/鼠标归属(打字让位、Viewport hover/focus 放行、Fullscreen 全放行) - 材质: roughness 独立槽位 + 非 glTF 金属/粗糙贴图映射;透明队列 depthWrite=FALSE + translucent 独立 shader + scratch 清帧 - FBX: 非蒙皮网格烘焙节点链全局变换(Z-up 旋转/单位换算落顶点) - Hierarchy 行 ImGui ID 以 UUID 作用域(重名不冲突、改名不丢选中)
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
//
|
||||
|
||||
#include <Engine/Renderer/Passes/SkyboxPass.h>
|
||||
#include <Engine/Renderer/Passes/FullscreenGpu.h>
|
||||
#include <Engine/Renderer/Cubemap.h>
|
||||
#include <Engine/Vulkan/Device.h>
|
||||
#include <Engine/Vulkan/DescriptorManager.h>
|
||||
@@ -96,6 +97,8 @@ namespace Engine::Passes
|
||||
|
||||
const glm::vec4& cc = m_Frame.ClearColor;
|
||||
vk::ClearValue clear;
|
||||
// alpha 语义 = 窗口透过率(透明窗口与桌面合成;tonemap 段
|
||||
// rgb *= a 预乘)。滑条由用户控制:a<1 = 背景透出桌面
|
||||
clear.color = vk::ClearColorValue(
|
||||
std::array<float, 4>{cc.r, cc.g, cc.b, cc.a});
|
||||
|
||||
@@ -113,7 +116,8 @@ namespace Engine::Passes
|
||||
|
||||
cmd.beginRendering(renderingInfo);
|
||||
|
||||
if (m_Env && m_Frame.DrawSkybox) {
|
||||
if (m_Env && m_Frame.DrawSkybox &&
|
||||
m_Frame.debugView != Passes::kDebugTransparent) {
|
||||
// 无环境贴图:只清屏(Forward loadOp=Load 依赖这里先写)
|
||||
const std::array<vk::ShaderStageFlagBits, 2> stages = {
|
||||
vk::ShaderStageFlagBits::eVertex,
|
||||
|
||||
Reference in New Issue
Block a user