Skip to content

Commit 6d4c670

Browse files
committed
Improved curl noise.
1 parent bc2f4ce commit 6d4c670

File tree

2 files changed

+7
-11
lines changed

2 files changed

+7
-11
lines changed

src/main.cpp

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ class GPUParticleSystem : public dw::Application
9595
std::uniform_real_distribution<> distribution(1.0f, 10000.0f);
9696

9797
m_seeds = glm::vec3(distribution(m_generator), distribution(m_generator), distribution(m_generator));
98-
m_viscosity = 0.03f + (0.5f * sinf(glfwGetTime()) + 0.5f) * 25.0f;
99-
m_constant_velocity.x = (0.5f * sinf(glfwGetTime()) + 0.5f) * 5.0f;
100-
m_constant_velocity.y = (0.5f * cosf(glfwGetTime()) + 0.5f) * 10.0f;
101-
m_constant_velocity.z = (0.5f * sinf(glfwGetTime()) + 0.5f) * 5.0f;
10298
m_max_active_particles = m_max_lifetime * m_emission_rate;
10399

104100
if (m_debug_gui)
@@ -570,7 +566,7 @@ class GPUParticleSystem : public dw::Application
570566

571567
void create_camera()
572568
{
573-
m_main_camera = std::make_unique<dw::Camera>(60.0f, 0.1f, CAMERA_FAR_PLANE, float(m_width) / float(m_height), glm::vec3(0.0f, 1.0f, 0.0f), glm::vec3(-1.0f, 0.0, 0.0f));
569+
m_main_camera = std::make_unique<dw::Camera>(60.0f, 0.1f, CAMERA_FAR_PLANE, float(m_width) / float(m_height), glm::vec3(10.0f, 5.0f, 5.0f), glm::vec3(-1.0f, 0.0, 0.0f));
574570
m_main_camera->set_rotatation_delta(glm::vec3(0.0f, -90.0f, 0.0f));
575571
m_main_camera->update();
576572
}
@@ -667,11 +663,11 @@ class GPUParticleSystem : public dw::Application
667663
float m_max_lifetime = 10.0f; // Seconds
668664
float m_min_initial_speed = 3.0f;
669665
float m_max_initial_speed = 4.0f;
670-
float m_start_size = 0.02f; // Seconds
671-
float m_end_size = 0.01f; // Seconds
666+
float m_start_size = 0.005f; // Seconds
667+
float m_end_size = 0.002f; // Seconds
672668
bool m_affected_by_gravity = false;
673669
glm::vec3 m_position = glm::vec3(0.0f);
674-
glm::vec3 m_direction = glm::vec3(0.0f, 1.0f, 0.0f);
670+
glm::vec3 m_direction = glm::vec3(0.0f, 0.0f, 0.0f);
675671
glm::vec3 m_constant_velocity = glm::vec3(0.0f);
676672
float m_rotation = 0.0f;
677673
int32_t m_pre_sim_idx = 0;
@@ -681,8 +677,8 @@ class GPUParticleSystem : public dw::Application
681677
float m_viscosity = 0.3f;
682678
int32_t m_particles_per_frame = 0;
683679
EmissionShape m_emission_shape = EMISSION_SHAPE_SPHERE;
684-
DirectionType m_direction_type = DIRECTION_TYPE_SINGLE;
685-
float m_sphere_radius = 10.0f;
680+
DirectionType m_direction_type = DIRECTION_TYPE_OUTWARDS;
681+
float m_sphere_radius = 0.1f;
686682

687683
// Random
688684
glm::vec3 m_seeds = glm::vec4(0.0f);

src/shader/particle_simulation_cs.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ void main()
127127
particle.lifetime.x += u_DeltaTime;
128128

129129
if (u_Viscosity != 0.0)
130-
particle.velocity.xyz += (curl_noise(particle.position.xyz * u_DeltaTime) - particle.velocity.xyz) * u_Viscosity * u_DeltaTime;
130+
particle.velocity.xyz += (curl_noise(particle.position.xyz) - particle.velocity.xyz) * u_Viscosity * u_DeltaTime;
131131

132132
particle.position.xyz += (particle.velocity.xyz + u_ConstantVelocity) * u_DeltaTime;
133133

0 commit comments

Comments
 (0)