From 14f1a382cb2b07e04b8c065997d6657c3da6d08e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?TECH-CLIENT-=E5=88=98=E6=B2=90=E5=AF=92?= Date: Mon, 25 Apr 2022 16:50:16 +0800 Subject: [PATCH 1/2] Global render resource config --- .gitignore | 1 + engine/PilotEditor.ini | 3 +- engine/asset/global/rendering.global.json | 66 +++++++++++++++ .../{default => global}/brdf_schilk.hdr | Bin engine/source/runtime/core/color/color.h | 20 +++++ .../render/include/render/framebuffer.h | 6 +- .../source/vulkan_manager/misc/misc.cpp | 2 +- .../source/vulkan_manager/sync/scene.cpp | 6 +- .../runtime/function/scene/scene_manager.cpp | 80 ++++++++++-------- .../runtime/function/scene/scene_manager.h | 4 +- .../runtime/function/scene/scene_object.h | 1 - .../config_manager/config_manager.cpp | 23 +++-- .../resource/config_manager/config_manager.h | 2 + .../resource/res_type/data/camera_config.h | 31 +++++++ .../res_type/global/global_rendering.h | 64 ++++++++++++++ 15 files changed, 257 insertions(+), 52 deletions(-) create mode 100644 engine/asset/global/rendering.global.json rename engine/asset/texture/{default => global}/brdf_schilk.hdr (100%) create mode 100644 engine/source/runtime/core/color/color.h create mode 100644 engine/source/runtime/resource/res_type/data/camera_config.h create mode 100644 engine/source/runtime/resource/res_type/global/global_rendering.h diff --git a/.gitignore b/.gitignore index 3b492d282..029c49fed 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ CMakeSettings.json # Visual Studio Code .vscode/ +*.code-workspace # CLion .idea/ diff --git a/engine/PilotEditor.ini b/engine/PilotEditor.ini index 9afaaeec8..1d3786e12 100644 --- a/engine/PilotEditor.ini +++ b/engine/PilotEditor.ini @@ -3,4 +3,5 @@ SchemaFolder=schema BigIconFile=resource/PilotEditorBigIcon.png SmallIconFile=resource/PilotEditorSmallIcon.png FontFile=resource/PilotEditorFont.TTF -DefaultWorld=world/hello.world.json \ No newline at end of file +DefaultWorld=world/hello.world.json +GlobalRenderingRes=global/rendering.global.json \ No newline at end of file diff --git a/engine/asset/global/rendering.global.json b/engine/asset/global/rendering.global.json new file mode 100644 index 000000000..16bf83f72 --- /dev/null +++ b/engine/asset/global/rendering.global.json @@ -0,0 +1,66 @@ +{ + "skybox_irradiance_map": { + "negative_x_map": "asset/texture/sky/skybox_irradiance_X-.hdr", + "positive_x_map": "asset/texture/sky/skybox_irradiance_X+.hdr", + "negative_y_map": "asset/texture/sky/skybox_irradiance_Y-.hdr", + "positive_y_map": "asset/texture/sky/skybox_irradiance_Y+.hdr", + "negative_z_map": "asset/texture/sky/skybox_irradiance_Z-.hdr", + "positive_z_map": "asset/texture/sky/skybox_irradiance_Z+.hdr" + }, + "skybox_specular_map": { + "negative_x_map": "asset/texture/sky/skybox_specular_X-.hdr", + "positive_x_map": "asset/texture/sky/skybox_specular_X+.hdr", + "negative_y_map": "asset/texture/sky/skybox_specular_Y-.hdr", + "positive_y_map": "asset/texture/sky/skybox_specular_Y+.hdr", + "negative_z_map": "asset/texture/sky/skybox_specular_Z-.hdr", + "positive_z_map": "asset/texture/sky/skybox_specular_Z+.hdr" + }, + "brdf_map": "asset/texture/global/brdf_schilk.hdr", + "sky_color": { + "r": 0.53, + "g": 0.81, + "b": 0.98 + }, + "ambient_light": { + "r": 0.03, + "g": 0.03, + "b": 0.03 + }, + "camera_config": { + "pose": { + "position": { + "x": -5.0, + "y": 0.0, + "z": 3.0 + }, + "target": { + "x": -4.0, + "y": 0.0, + "z": 3.0 + }, + "up": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + }, + "z_far": 1000.0, + "z_near": 0.1, + "aspect": { + "x": 1280.0, + "y": 768.0 + } + }, + "directional_light": { + "direction": { + "x": 0.5, + "y": -0.5, + "z": 0.5 + }, + "color": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + } + } +} \ No newline at end of file diff --git a/engine/asset/texture/default/brdf_schilk.hdr b/engine/asset/texture/global/brdf_schilk.hdr similarity index 100% rename from engine/asset/texture/default/brdf_schilk.hdr rename to engine/asset/texture/global/brdf_schilk.hdr diff --git a/engine/source/runtime/core/color/color.h b/engine/source/runtime/core/color/color.h new file mode 100644 index 000000000..1539d7c62 --- /dev/null +++ b/engine/source/runtime/core/color/color.h @@ -0,0 +1,20 @@ +#pragma once +#include "runtime/core/meta/reflection/reflection.h" + +#include "runtime/core/math/vector3.h" + +namespace Pilot +{ + REFLECTION_TYPE(Color) + CLASS(Color, Fields) + { + REFLECTION_BODY(Color); + + public: + float r; + float g; + float b; + + Vector3 toVector3() const { return Vector3(r, g, b); } + }; +} \ No newline at end of file diff --git a/engine/source/runtime/function/render/include/render/framebuffer.h b/engine/source/runtime/function/render/include/render/framebuffer.h index a4f08ee4c..dc23a8413 100644 --- a/engine/source/runtime/function/render/include/render/framebuffer.h +++ b/engine/source/runtime/function/render/include/render/framebuffer.h @@ -160,9 +160,9 @@ namespace Pilot TextureHandle m_irradiance_texture_handle[6]; TextureHandle m_specular_texture_handle[6]; - Vector3 m_skyColor; - PAmbientLight m_ambientLight; - PDirectionalLight m_directionalLight; + Vector3 m_sky_color; + PAmbientLight m_ambient_light; + PDirectionalLight m_directional_light; PPointLightList m_pointLights; void lock() { m_scene_mutex.lock(); } diff --git a/engine/source/runtime/function/render/source/vulkan_manager/misc/misc.cpp b/engine/source/runtime/function/render/source/vulkan_manager/misc/misc.cpp index 15215e793..4f99b3912 100644 --- a/engine/source/runtime/function/render/source/vulkan_manager/misc/misc.cpp +++ b/engine/source/runtime/function/render/source/vulkan_manager/misc/misc.cpp @@ -330,7 +330,7 @@ namespace Pilot (frustum_bounding_box.max_bound.z - frustum_bounding_box.min_bound.z) * 0.5); glm::vec3 eye = - box_center + GLMUtil::fromVec3(scene.m_directionalLight.m_direction) * glm::length(box_extents); + box_center + GLMUtil::fromVec3(scene.m_directional_light.m_direction) * glm::length(box_extents); glm::vec3 center = box_center; light_view = glm::lookAtRH(eye, center, glm::vec3(0.0, 0.0, 1.0)); diff --git a/engine/source/runtime/function/render/source/vulkan_manager/sync/scene.cpp b/engine/source/runtime/function/render/source/vulkan_manager/sync/scene.cpp index 1e70b92a0..1011486e2 100644 --- a/engine/source/runtime/function/render/source/vulkan_manager/sync/scene.cpp +++ b/engine/source/runtime/function/render/source/vulkan_manager/sync/scene.cpp @@ -16,7 +16,7 @@ void Pilot::PVulkanManager::syncScene(class Scene& scene, proj_view_matrix = GLMUtil::fromMat4x4(proj_matrix * view_matrix); // ambient light - Vector3 ambient_light = scene.m_ambientLight.m_irradiance; + Vector3 ambient_light = scene.m_ambient_light.m_irradiance; uint32_t point_light_num = static_cast(scene.m_pointLights.m_lights.size()); // set ubo data @@ -45,8 +45,8 @@ void Pilot::PVulkanManager::syncScene(class Scene& scene, // directional light m_mesh_perframe_storage_buffer_object.scene_directional_light.direction = - scene.m_directionalLight.m_direction.normalisedCopy(); - m_mesh_perframe_storage_buffer_object.scene_directional_light.color = scene.m_directionalLight.m_color; + scene.m_directional_light.m_direction.normalisedCopy(); + m_mesh_perframe_storage_buffer_object.scene_directional_light.color = scene.m_directional_light.m_color; m_mesh_inefficient_pick_perframe_storage_buffer_object.proj_view_matrix = proj_view_matrix; m_mesh_inefficient_pick_perframe_storage_buffer_object.rt_width = m_vulkan_context._swapchain_extent.width; diff --git a/engine/source/runtime/function/scene/scene_manager.cpp b/engine/source/runtime/function/scene/scene_manager.cpp index 132ad7d3b..1bdf461f6 100644 --- a/engine/source/runtime/function/scene/scene_manager.cpp +++ b/engine/source/runtime/function/scene/scene_manager.cpp @@ -3,7 +3,9 @@ #include "runtime/core/base/macro.h" #include "runtime/function/render/include/render/framebuffer.h" + #include "runtime/resource/asset_manager/asset_manager.h" +#include "runtime/resource/config_manager/config_manager.h" #include "runtime/resource/res_type/data/mesh_data.h" #define STB_IMAGE_IMPLEMENTATION @@ -307,7 +309,14 @@ namespace Pilot return SceneBuffers::createTexture(texture); } - void SceneManager::initialize() { setSceneOnce(); } + void SceneManager::initialize() + { + GlobalRenderingRes global_rendering_res; + + const auto& global_rendering_res_path = ConfigManager::getInstance().getGlobalRenderingResPath(); + AssetManager::getInstance().loadAsset(global_rendering_res_path, global_rendering_res); + setSceneOnce(global_rendering_res); + } int SceneManager::tick(FrameBuffer* buffer) { @@ -777,92 +786,93 @@ namespace Pilot SceneBuffers::destroy(image_handle); } } - void SceneManager::setSceneOnce() + void SceneManager::setSceneOnce(const GlobalRenderingRes& global_res) { if (m_scene && m_scene->m_loaded == false) { - m_scene->m_brdfLUT_texture_handle = - SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/default/brdf_schilk.hdr") - .generic_string() - .c_str()); + m_scene->m_brdfLUT_texture_handle = SceneBuilder::loadTextureHDR( + AssetManager::getInstance().getFullPath(global_res.m_brdf_map).generic_string().c_str()); m_scene->m_irradiance_texture_handle[0] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_irradiance_X+.hdr") + .getFullPath(global_res.m_skybox_irradiance_map.m_positive_x_map) .generic_string() .c_str()); m_scene->m_irradiance_texture_handle[1] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_irradiance_X-.hdr") + .getFullPath(global_res.m_skybox_irradiance_map.m_negative_x_map) .generic_string() .c_str()); m_scene->m_irradiance_texture_handle[2] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_irradiance_Z+.hdr") + .getFullPath(global_res.m_skybox_irradiance_map.m_positive_z_map) .generic_string() .c_str()); m_scene->m_irradiance_texture_handle[3] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_irradiance_Z-.hdr") + .getFullPath(global_res.m_skybox_irradiance_map.m_negative_z_map) .generic_string() .c_str()); m_scene->m_irradiance_texture_handle[4] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_irradiance_Y+.hdr") + .getFullPath(global_res.m_skybox_irradiance_map.m_positive_y_map) .generic_string() .c_str()); m_scene->m_irradiance_texture_handle[5] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_irradiance_Y-.hdr") + .getFullPath(global_res.m_skybox_irradiance_map.m_negative_y_map) .generic_string() .c_str()); m_scene->m_specular_texture_handle[0] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_specular_X+.hdr") + .getFullPath(global_res.m_skybox_specular_map.m_positive_x_map) .generic_string() .c_str()); m_scene->m_specular_texture_handle[1] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_specular_X-.hdr") + .getFullPath(global_res.m_skybox_specular_map.m_negative_x_map) .generic_string() .c_str()); m_scene->m_specular_texture_handle[2] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_specular_Z+.hdr") + .getFullPath(global_res.m_skybox_specular_map.m_positive_z_map) .generic_string() .c_str()); m_scene->m_specular_texture_handle[3] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_specular_Z-.hdr") + .getFullPath(global_res.m_skybox_specular_map.m_negative_z_map) .generic_string() .c_str()); m_scene->m_specular_texture_handle[4] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_specular_Y+.hdr") + .getFullPath(global_res.m_skybox_specular_map.m_positive_y_map) .generic_string() .c_str()); m_scene->m_specular_texture_handle[5] = SceneBuilder::loadTextureHDR(AssetManager::getInstance() - .getFullPath("asset/texture/sky/skybox_specular_Y-.hdr") + .getFullPath(global_res.m_skybox_specular_map.m_negative_y_map) .generic_string() .c_str()); + m_scene->m_color_grading_LUT_texture_handle = + SceneBuilder::loadTexture(AssetManager::getInstance() + .getFullPath("asset/texture/default/color_grading_LUT.jpg") + .generic_string() + .c_str()); + + m_scene->m_sky_color = global_res.m_sky_color.toVector3(); + m_scene->m_ambient_light = {global_res.m_ambient_light.toVector3()}; + + const CameraPose& camera_pose = global_res.m_camera_config.m_pose; + + m_scene->m_camera = std::make_shared(); + m_scene->m_camera->lookAt(camera_pose.m_position, camera_pose.m_target, camera_pose.m_up); + m_scene->m_camera->m_zfar = global_res.m_camera_config.m_z_far; + m_scene->m_camera->m_znear = global_res.m_camera_config.m_z_near; + m_scene->m_camera->setAspect(global_res.m_camera_config.m_aspect.x / global_res.m_camera_config.m_aspect.y); + + m_scene->m_directional_light.m_direction = global_res.m_directional_light.m_direction.normalisedCopy(); + m_scene->m_directional_light.m_color = global_res.m_directional_light.m_color.toVector3(); - m_scene->m_skyColor = {0.53f, 0.81f, 0.98f}; - m_scene->m_ambientLight = {{0.03f, 0.03f, 0.03f}}; - m_scene->m_camera = std::make_shared(); - m_scene->m_camera->lookAt({-5.0f, 0.0f, 3.0f}, {-4.0f, 0.0f, 3.0f}, Vector3(0.0f, 0.0f, 1.0f)); - m_scene->m_camera->m_zfar = 1000.0f; - m_scene->m_camera->m_znear = 0.1f; - m_scene->m_camera->setAspect(1280.0f / 768.0f); - /* - m_scene->m_pointLights.m_lights = {// pos, power - {{-3.0f, 5.3f, 2.0f}, {500.0f, 0.0f, 0.0f}}, - {{5.0f, 0.3f, 2.0f}, {0.0f, 500.0f, 0.0f}}, - {{0.0f, 0.3f, 2.0f}, {0.0f, 0.0f, 500.0f}}}; - */ - m_scene->m_directionalLight.m_direction = Vector3(0.5, -0.5, 0.5).normalisedCopy(); - m_scene->m_directionalLight.m_color = Vector3(1.0, 1.0, 1.0); - m_scene->m_loaded = true; + m_scene->m_loaded = true; } } diff --git a/engine/source/runtime/function/scene/scene_manager.h b/engine/source/runtime/function/scene/scene_manager.h index 45622027f..915e255b6 100644 --- a/engine/source/runtime/function/scene/scene_manager.h +++ b/engine/source/runtime/function/scene/scene_manager.h @@ -3,6 +3,8 @@ #include "runtime/core/base/public_singleton.h" #include "runtime/core/math/math_headers.h" +#include "runtime/resource/res_type/global/global_rendering.h" + #include "runtime/function/render/include/render/framebuffer.h" #include "runtime/function/scene/scene_allocator.h" #include "runtime/function/scene/scene_object.h" @@ -105,6 +107,6 @@ namespace Pilot void releaseSkeletonBindingHandles(); void releaseImageHandle(TextureHandle& image_handle); - void setSceneOnce(); + void setSceneOnce(const GlobalRenderingRes& global_res); }; } // namespace Pilot diff --git a/engine/source/runtime/function/scene/scene_object.h b/engine/source/runtime/function/scene/scene_object.h index 7d27e9885..b2959345d 100644 --- a/engine/source/runtime/function/scene/scene_object.h +++ b/engine/source/runtime/function/scene/scene_object.h @@ -100,7 +100,6 @@ namespace Pilot size_t m_go_id; std::vector m_components; }; - } // namespace Pilot template<> diff --git a/engine/source/runtime/resource/config_manager/config_manager.cpp b/engine/source/runtime/resource/config_manager/config_manager.cpp index fddbd56b8..07e27ca25 100644 --- a/engine/source/runtime/resource/config_manager/config_manager.cpp +++ b/engine/source/runtime/resource/config_manager/config_manager.cpp @@ -18,30 +18,34 @@ namespace Pilot { std::string name = config_line.substr(0, seperate_pos); std::string value = config_line.substr(seperate_pos + 1, config_line.length() - seperate_pos - 1); - if (name.compare("AssetFolder") == 0) + if (name == "AssetFolder") { m_asset_folder = m_root_folder / value; } - else if (name.compare("SchemaFolder") == 0) + else if (name == "SchemaFolder") { m_schema_folder = m_root_folder / value; } - else if (name.compare("DefaultWorld") == 0) + else if (name == "DefaultWorld") { - m_default_world_path = value; + m_default_world_path = m_asset_folder / value; } - else if (name.compare("BigIconFile") == 0) + else if (name == "BigIconFile") { m_editor_big_icon_path = m_root_folder / value; } - else if (name.compare("SmallIconFile") == 0) + else if (name == "SmallIconFile") { m_editor_small_icon_path = m_root_folder / value; } - else if (name.compare("FontFile") == 0) + else if (name == "FontFile") { m_editor_font_path = m_root_folder / value; } + else if (name == "GlobalRenderingRes") + { + m_global_rendering_res_path = m_asset_folder / value; + } } } } @@ -67,4 +71,9 @@ namespace Pilot const std::filesystem::path& ConfigManager::getEditorSmallIconPath() const { return m_editor_small_icon_path; } const std::filesystem::path& ConfigManager::getEditorFontPath() const { return m_editor_font_path; } + + const std::filesystem::path& ConfigManager::getGlobalRenderingResPath() const + { + return m_global_rendering_res_path; + } } // namespace Pilot diff --git a/engine/source/runtime/resource/config_manager/config_manager.h b/engine/source/runtime/resource/config_manager/config_manager.h index 6fd15f7d1..158fdfbf2 100644 --- a/engine/source/runtime/resource/config_manager/config_manager.h +++ b/engine/source/runtime/resource/config_manager/config_manager.h @@ -24,6 +24,7 @@ namespace Pilot std::filesystem::path m_editor_big_icon_path; std::filesystem::path m_editor_small_icon_path; std::filesystem::path m_editor_font_path; + std::filesystem::path m_global_rendering_res_path; public: void initialize(const EngineInitParams& init_param); @@ -37,5 +38,6 @@ namespace Pilot const std::filesystem::path& getEditorBigIconPath() const; const std::filesystem::path& getEditorSmallIconPath() const; const std::filesystem::path& getEditorFontPath() const; + const std::filesystem::path& getGlobalRenderingResPath() const; }; } // namespace Pilot diff --git a/engine/source/runtime/resource/res_type/data/camera_config.h b/engine/source/runtime/resource/res_type/data/camera_config.h new file mode 100644 index 000000000..23fea6070 --- /dev/null +++ b/engine/source/runtime/resource/res_type/data/camera_config.h @@ -0,0 +1,31 @@ +#pragma once +#include "runtime/core/meta/reflection/reflection.h" + +#include "runtime/core/math/vector2.h" +#include "runtime/core/math/vector3.h" + +namespace Pilot +{ + REFLECTION_TYPE(CameraPose) + CLASS(CameraPose, Fields) + { + REFLECTION_BODY(CameraPose); + + public: + Vector3 m_position; + Vector3 m_target; + Vector3 m_up; + }; + + REFLECTION_TYPE(CameraConfig) + CLASS(CameraConfig, Fields) + { + REFLECTION_BODY(CameraConfig); + + public: + CameraPose m_pose; + Vector2 m_aspect; + float m_z_far; + float m_z_near; + }; +} // namespace Pilot \ No newline at end of file diff --git a/engine/source/runtime/resource/res_type/global/global_rendering.h b/engine/source/runtime/resource/res_type/global/global_rendering.h new file mode 100644 index 000000000..fa2b33a97 --- /dev/null +++ b/engine/source/runtime/resource/res_type/global/global_rendering.h @@ -0,0 +1,64 @@ +#pragma once +#include "runtime/core/meta/reflection/reflection.h" + +#include "runtime/core/color/color.h" +#include "runtime/core/math/vector3.h" + +#include "runtime/resource/res_type/data/camera_config.h" + +namespace Pilot +{ + REFLECTION_TYPE(SkyBoxIrradianceMap) + CLASS(SkyBoxIrradianceMap, Fields) + { + REFLECTION_BODY(SkyBoxIrradianceMap); + + public: + std::string m_negative_x_map; + std::string m_positive_x_map; + std::string m_negative_y_map; + std::string m_positive_y_map; + std::string m_negative_z_map; + std::string m_positive_z_map; + }; + + REFLECTION_TYPE(SkyBoxSpecularMap) + CLASS(SkyBoxSpecularMap, Fields) + { + REFLECTION_BODY(SkyBoxSpecularMap); + + public: + std::string m_negative_x_map; + std::string m_positive_x_map; + std::string m_negative_y_map; + std::string m_positive_y_map; + std::string m_negative_z_map; + std::string m_positive_z_map; + }; + + REFLECTION_TYPE(DirectionalLight) + CLASS(DirectionalLight, Fields) + { + REFLECTION_BODY(DirectionalLight); + + public: + Vector3 m_direction; + Color m_color; + }; + + REFLECTION_TYPE(GlobalRenderingRes) + CLASS(GlobalRenderingRes, Fields) + { + REFLECTION_BODY(GlobalRenderingRes); + + public: + SkyBoxIrradianceMap m_skybox_irradiance_map; + SkyBoxSpecularMap m_skybox_specular_map; + std::string m_brdf_map; + + Color m_sky_color; + Color m_ambient_light; + CameraConfig m_camera_config; + DirectionalLight m_directional_light; + }; +} // namespace Pilot \ No newline at end of file From 751fd08fb4582d600fb199e5683813a32f19d31a Mon Sep 17 00:00:00 2001 From: hyv1001 Date: Mon, 25 Apr 2022 21:29:09 +0800 Subject: [PATCH 2/2] remove lut --- engine/source/runtime/function/scene/scene_manager.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/engine/source/runtime/function/scene/scene_manager.cpp b/engine/source/runtime/function/scene/scene_manager.cpp index 1bdf461f6..aa05ecb0b 100644 --- a/engine/source/runtime/function/scene/scene_manager.cpp +++ b/engine/source/runtime/function/scene/scene_manager.cpp @@ -852,11 +852,6 @@ namespace Pilot .getFullPath(global_res.m_skybox_specular_map.m_negative_y_map) .generic_string() .c_str()); - m_scene->m_color_grading_LUT_texture_handle = - SceneBuilder::loadTexture(AssetManager::getInstance() - .getFullPath("asset/texture/default/color_grading_LUT.jpg") - .generic_string() - .c_str()); m_scene->m_sky_color = global_res.m_sky_color.toVector3(); m_scene->m_ambient_light = {global_res.m_ambient_light.toVector3()};