ADD: Update Docs

This commit is contained in:
2025-12-17 01:43:13 +09:00
parent 5b62c57d0c
commit fa0298e4c1
9 changed files with 1540 additions and 52 deletions

View File

@@ -147,10 +147,13 @@ void SceneManager::update_scene()
_camera_position_local = world_to_local(mainCamera.position_world, _origin_world);
// Simple per-frame dt (seconds) for animations
static auto lastFrameTime = std::chrono::steady_clock::now();
auto now = std::chrono::steady_clock::now();
float dt = std::chrono::duration<float>(now - lastFrameTime).count();
lastFrameTime = now;
if (_lastFrameTime.time_since_epoch().count() == 0)
{
_lastFrameTime = now;
}
float dt = std::chrono::duration<float>(now - _lastFrameTime).count();
_lastFrameTime = now;
if (dt < 0.f)
{
dt = 0.f;
@@ -159,6 +162,7 @@ void SceneManager::update_scene()
{
dt = 0.1f;
}
_deltaTime = dt;
auto tagOwner = [&](RenderObject::OwnerType type, const std::string &name,
size_t opaqueBegin, size_t transpBegin)
@@ -888,3 +892,29 @@ bool SceneManager::setGLTFInstanceAnimationLoop(const std::string &instanceName,
it->second.animation.animationLoop = loop;
return true;
}
void SceneManager::setSunlightDirection(const glm::vec3& dir)
{
glm::vec3 normalized = glm::normalize(dir);
sceneData.sunlightDirection = glm::vec4(normalized, sceneData.sunlightDirection.w);
}
glm::vec3 SceneManager::getSunlightDirection() const
{
return glm::vec3(sceneData.sunlightDirection);
}
void SceneManager::setSunlightColor(const glm::vec3& color, float intensity)
{
sceneData.sunlightColor = glm::vec4(color, intensity);
}
glm::vec3 SceneManager::getSunlightColor() const
{
return glm::vec3(sceneData.sunlightColor);
}
float SceneManager::getSunlightIntensity() const
{
return sceneData.sunlightColor.w;
}

View File

@@ -5,6 +5,7 @@
#include <unordered_map>
#include <memory>
#include <optional>
#include <chrono>
#include <glm/vec2.hpp>
#include <string>
@@ -85,6 +86,16 @@ public:
void selectRect(const glm::vec2 &p0, const glm::vec2 &p1, std::vector<RenderObject> &outObjects) const;
const GPUSceneData &getSceneData() const { return sceneData; }
// Sunlight (directional light) access
void setSunlightDirection(const glm::vec3& dir);
glm::vec3 getSunlightDirection() const;
void setSunlightColor(const glm::vec3& color, float intensity);
glm::vec3 getSunlightColor() const;
float getSunlightIntensity() const;
// Delta time (seconds) for the current frame
float getDeltaTime() const { return _deltaTime; }
DrawContext &getMainDrawContext() { return mainDrawContext; }
void loadScene(const std::string &name, std::shared_ptr<LoadedGLTF> scene);
@@ -203,6 +214,8 @@ private:
glm::vec3 _camera_position_local{0.0f, 0.0f, 0.0f};
double _floating_origin_recenter_threshold = 1000.0;
double _floating_origin_snap_size = 100.0;
float _deltaTime = 0.0f;
std::chrono::steady_clock::time_point _lastFrameTime{};
std::unordered_map<std::string, std::shared_ptr<LoadedGLTF> > loadedScenes;
// Per-named static glTF scene animation state (independent of instances).