Made orb look more "light"-like

git-svn-id: svn://anubis/dwscr/trunk@114 5bef9df8-b654-44bb-925b-0ff18baa8f8c
This commit is contained in:
josh 2008-12-18 15:19:50 +00:00
parent ae2f719bf3
commit 912b0a7117

View File

@ -16,7 +16,7 @@ using namespace std;
#define SIZE 5 #define SIZE 5
#define STRIDE_MULTIPLIER 1.0; #define STRIDE_MULTIPLIER 1.0;
#define ZOOM 12.0 #define ZOOM 12.0
#define ORB_RADIUS 1.5 #define ORB_RADIUS 2.5
#define ORB_SPEED 20.0 #define ORB_SPEED 20.0
LightBounceBox::LightBounceBox(LogoBox * lb, LightBounceBox::LightBounceBox(LogoBox * lb,
@ -131,21 +131,24 @@ LightBounce::LightBounce(SSMain * _SSMain) : SSMode(_SSMain)
m_orb_dir[2] = cos(gamma); m_orb_dir[2] = cos(gamma);
/* Create the orb display list */ /* Create the orb display list */
// TODO: fix lighting
// TODO: make it more of a "light" object and not a sphere
m_orb_dl = glGenLists(1); m_orb_dl = glGenLists(1);
glNewList(m_orb_dl, GL_COMPILE); glNewList(m_orb_dl, GL_COMPILE);
GLfloat mat[] = {1, 1, 0.2, 0.8}; /* save lights, materials, and blending information */
glPushAttrib(GL_LIGHTING_BIT | GL_COLOR_BUFFER_BIT);
GLfloat mat[] = {0.7, 0.7, 0.14, 0.6};
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat); glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat);
GLfloat specular[] = {0.15, 0.15, 0.03, 1.0};
glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
GLUquadric * quad = gluNewQuadric(); GLUquadric * quad = gluNewQuadric();
gluQuadricNormals(quad, GL_TRUE); gluQuadricNormals(quad, GL_TRUE);
glPushAttrib(GL_LIGHTING_BIT);
glPushMatrix(); glPushMatrix();
glLoadIdentity(); glLoadIdentity();
GLfloat light_pos[] = {0, 0, 1, 0}; GLfloat light_pos[] = {0, 0, 0, 1};
glLightfv(GL_LIGHT0, GL_POSITION, light_pos); glLightfv(GL_LIGHT0, GL_POSITION, light_pos);
glPopMatrix(); glPopMatrix();
gluSphere(quad, ORB_RADIUS, 16, 8); glEnable(GL_BLEND);
glBlendFunc(GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR);
gluSphere(quad, ORB_RADIUS, 20, 12);
glPopAttrib(); glPopAttrib();
glEndList(); glEndList();