We got exr loading
This commit is contained in:
@@ -28,6 +28,11 @@ void OrbitAndSpin::Randomize(uint32_t seed)
|
||||
std::uniform_real_distribution<float> spinSpeedDist(0.5f, 6.0f);
|
||||
std::uniform_real_distribution<float> phaseDist(0.0f, 6.28318530718f);
|
||||
|
||||
// grow randomness
|
||||
std::uniform_real_distribution<float> growMinDist(0.03f, 0.08f);
|
||||
std::uniform_real_distribution<float> growMaxDist(0.2f, 0.4f);
|
||||
std::uniform_real_distribution<float> growSpeedDist(0.5f, 2.5f);
|
||||
|
||||
m_OrbitAxis = RandomUnitVector(rng);
|
||||
m_SpinAxis = RandomUnitVector(rng);
|
||||
|
||||
@@ -35,6 +40,15 @@ void OrbitAndSpin::Randomize(uint32_t seed)
|
||||
m_SpinSpeed = spinSpeedDist(rng);
|
||||
m_OrbitPhase = phaseDist(rng);
|
||||
|
||||
m_GrowMin = growMinDist(rng);
|
||||
m_GrowMax = growMaxDist(rng);
|
||||
m_GrowSpeed = growSpeedDist(rng);
|
||||
m_GrowPhase = phaseDist(rng); // random start offset
|
||||
|
||||
// safety: ensure min < max
|
||||
if (m_GrowMin > m_GrowMax)
|
||||
std::swap(m_GrowMin, m_GrowMax);
|
||||
|
||||
BuildOrbitBasis();
|
||||
}
|
||||
|
||||
@@ -70,19 +84,27 @@ void OrbitAndSpin::Update()
|
||||
// grow (always positive)
|
||||
m_GrowPhase += m_GrowSpeed * dt;
|
||||
|
||||
float t = 0.5f * (std::sin(m_GrowPhase) + 1.0f); // 0..1
|
||||
float s = 1.50 + t * 0.70f; // 0.05..0.15 (pick what you want)
|
||||
m_GrowPhase += m_GrowSpeed * dt;
|
||||
|
||||
GetTransform().SetLocalScale(glm::vec3(std::sin(m_GrowPhase)));
|
||||
// 0..1
|
||||
float t = 0.5f * (std::sin(m_GrowPhase) + 1.0f);
|
||||
|
||||
// random per-object range
|
||||
float s = glm::mix(m_GrowMin, m_GrowMax, t);
|
||||
|
||||
// respect original scale
|
||||
GetTransform().SetLocalScale(glm::vec3(s));
|
||||
|
||||
// GetTransform().SetLocalScale(glm::vec3(std::sin(m_GrowPhase)));
|
||||
|
||||
// material color
|
||||
// auto& mat = GameState::GetInstance().Renderer().getMaterialMutable(m_MaterialID);
|
||||
// mat.baseColor = glm::vec3(
|
||||
// 0.5f + 0.5f * std::sin(m_OrbitAngle * 2.0f),
|
||||
// 0.5f + 0.5f * std::sin(m_OrbitAngle * 3.0f + 2.0f),
|
||||
// 0.5f + 0.5f * std::sin(m_OrbitAngle * 4.0f + 4.0f)
|
||||
// );
|
||||
// GameState::GetInstance().Renderer().updateMaterialGPU(m_MaterialID);
|
||||
auto& mat = GameState::GetInstance().Renderer().getMaterialMutable(m_MaterialID);
|
||||
mat.baseColor = glm::vec3(
|
||||
0.5f + 0.5f * std::sin(m_OrbitAngle * 2.0f),
|
||||
0.5f + 0.5f * std::sin(m_OrbitAngle * 3.0f + 2.0f),
|
||||
0.5f + 0.5f * std::sin(m_OrbitAngle * 4.0f + 4.0f)
|
||||
);
|
||||
GameState::GetInstance().Renderer().updateMaterialGPU(m_MaterialID);
|
||||
}
|
||||
|
||||
void OrbitAndSpin::Start() {
|
||||
|
||||
Reference in New Issue
Block a user