From 6a7128243ac1a1fbc57fd52774bf9d71cb6c8a45 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Mon, 19 Nov 2012 15:07:21 -0800 Subject: [PATCH] Removed cloud rendering from main.cpp to Cloud class --- .../UserInterfaceState.xcuserstate | Bin 101257 -> 101209 bytes main.cpp | 125 +----------------- 2 files changed, 4 insertions(+), 121 deletions(-) diff --git a/interface.xcodeproj/project.xcworkspace/xcuserdata/philip.xcuserdatad/UserInterfaceState.xcuserstate b/interface.xcodeproj/project.xcworkspace/xcuserdata/philip.xcuserdatad/UserInterfaceState.xcuserstate index 1cabcd6b99353d42e0982f7cc429127206fb4b0b..a232612957bea21e610cb0ad66d91fb97d090527 100644 GIT binary patch delta 31397 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 delta 31138 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 .999) tri_scale = 0.7; - else if (r > 0.90) tri_scale = 0.1; - else tri_scale = 0.05; - + //load_png_as_texture(texture_filename); - glm::vec3 pos (randFloat() * WORLD_SIZE, - randFloat() * WORLD_SIZE, - randFloat() * WORLD_SIZE); - glm::vec3 verts[3]; - verts[j].x = pos.x + randFloat() * tri_scale - tri_scale/2.f; - verts[j].y = pos.y + randFloat() * tri_scale - tri_scale/2.f; - verts[j].z = pos.z + randFloat() * tri_scale - tri_scale/2.f; - tris.vertices[i*3] = verts[j].x; - tris.vertices[i*3 + 1] = verts[j].y; - tris.vertices[i*3 + 2] = verts[j].z; - - // reuse pos for the normal - //glm::normalize((pos += glm::cross(verts[1] - verts[0], verts[2] - verts[0]))); - //tris.normals[i*3] = pos.x; - //tris.normals[i*3+1] = pos.y; - //tris.normals[i*3+2] = pos.z; - - // Moving - white - //tris.colors[i*3] = 1.0; tris.colors[i*3+1] = 1.0; tris.colors[i*3+2] = 1.0; - tris.vel[i*3] = (randFloat() - 0.5)*VEL_SCALE; - tris.vel[i*3+1] = (randFloat() - 0.5)*VEL_SCALE; - tris.vel[i*3+2] = (randFloat() - 0.5)*VEL_SCALE; - - } - if (serial_on) { // Call readsensors for a while to get stable initial values on sensors @@ -365,52 +324,6 @@ const float SCALE_X = 2.f; const float SCALE_Y = 1.f; -void update_tris() -{ - int i, j; - float field_val[3]; - float field_contrib[3]; - for (i = 0; i < NUM_TRIS; i++) - { - // Update position - tris.vertices[i*3+0] += tris.vel[i*3]; - tris.vertices[i*3+1] += tris.vel[i*3+1]; - tris.vertices[i*3+2] += tris.vel[i*3+2]; - - // Add a little gravity - //tris.vel[i*3+1] -= 0.0001; - - const float DRAG = 0.99; - // Drag: Decay velocity - tris.vel[i*3] *= DRAG; - tris.vel[i*3+1] *= DRAG; - tris.vel[i*3+2] *= DRAG; - - // Read and add velocity from field - field_value(field_val, &tris.vertices[i*3]); - tris.vel[i*3] += field_val[0]; - tris.vel[i*3+1] += field_val[1]; - tris.vel[i*3+2] += field_val[2]; - - // Add a tiny bit of energy back to the field - const float FIELD_COUPLE = 0.0000001; - field_contrib[0] = tris.vel[i*3]*FIELD_COUPLE; - field_contrib[1] = tris.vel[i*3+1]*FIELD_COUPLE; - field_contrib[2] = tris.vel[i*3+2]*FIELD_COUPLE; - field_add(field_contrib, &tris.vertices[i*3]); - - - // bounce at edge of world - for (j=0; j < 3; j++) { - if ((tris.vertices[i*3+j] > WORLD_SIZE) || (tris.vertices[i*3+j] < 0.0)) { - tris.vertices[i*3+j] = min(WORLD_SIZE, tris.vertices[i*3+j]); - tris.vertices[i*3+j] = max(0.f, tris.vertices[i*3+j]); - tris.vel[i*3 + j]*= -1.0; - } - } - } -} - void reset_sensors() { // @@ -443,7 +356,7 @@ void update_pos(float frametime) float measured_fwd_accel = avg_adc_channels[2] - adc_channels[2]; // Update avatar head position based on measured gyro rates - const float HEAD_ROTATION_SCALE = 0.10; + const float HEAD_ROTATION_SCALE = 0.20; const float HEAD_LEAN_SCALE = 0.02; if (head_mirror) { myHead.addYaw(measured_yaw_rate * HEAD_ROTATION_SCALE * frametime); @@ -567,8 +480,7 @@ void update_pos(float frametime) void display(void) { - int i; - + glEnable (GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LINE_SMOOTH); @@ -600,36 +512,8 @@ void display(void) load_png_as_texture(texture_filename); - //glActiveTexture(GL_TEXTURE0); - glEnable( GL_TEXTURE_2D ); - - //glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE); - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - glPointParameterfvARB( GL_POINT_DISTANCE_ATTENUATION_ARB, particle_attenuation_quadratic ); - - float maxSize = 0.0f; - glGetFloatv( GL_POINT_SIZE_MAX_ARB, &maxSize ); - glPointSize( maxSize ); - glPointParameterfARB( GL_POINT_SIZE_MAX_ARB, maxSize ); - glPointParameterfARB( GL_POINT_SIZE_MIN_ARB, 0.001f ); - - glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE ); - glEnable( GL_POINT_SPRITE_ARB ); - if (!display_head) { - glBegin( GL_POINTS ); - { - for (i = 0; i < NUM_TRIS; i++) - { - glVertex3f(tris.vertices[i*3], - tris.vertices[i*3+1], - tris.vertices[i*3+2]); - } - } - glEnd(); - } glDisable( GL_POINT_SPRITE_ARB ); glDisable( GL_TEXTURE_2D ); - if (!display_head) cloud.render(); // Show field vectors if (display_field) field_render(); @@ -802,7 +686,6 @@ void idle(void) // Simulation update_pos(1.f/FPS); if (simulate_on) { - update_tris(); field_simulate(1.f/FPS); myHead.simulate(1.f/FPS); myHand.simulate(1.f/FPS);