Restructured view calculation code. Added stars.
This commit is contained in:
parent
27adc6d5d0
commit
7c5f7fdc85
8 changed files with 137 additions and 148 deletions
|
@ -24,31 +24,33 @@
|
|||
**************************************************************************/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef WIN32
|
||||
# include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <GL/glut.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "GLUTkey.h"
|
||||
#include "views.h"
|
||||
|
||||
#include "../constants.h"
|
||||
|
||||
#include "../Aircraft/aircraft.h"
|
||||
#include "../Weather/weather.h"
|
||||
|
||||
extern double goal_view_offset;
|
||||
|
||||
extern int show_hud; /* HUD state */
|
||||
|
||||
|
||||
/* Handle keyboard events */
|
||||
void GLUTkey(unsigned char k, int x, int y) {
|
||||
struct CONTROLS *c;
|
||||
struct VIEW *v;
|
||||
struct WEATHER *w;
|
||||
|
||||
c = ¤t_aircraft.controls;
|
||||
v = ¤t_view;
|
||||
w = ¤t_weather;
|
||||
|
||||
printf("Key hit = %d", k);
|
||||
|
@ -57,28 +59,28 @@ void GLUTkey(unsigned char k, int x, int y) {
|
|||
printf(" SHIFTED\n");
|
||||
switch (k) {
|
||||
case 49: /* numeric keypad 1 */
|
||||
goal_view_offset = FG_PI * 0.75;
|
||||
v->goal_view_offset = FG_PI * 0.75;
|
||||
return;
|
||||
case 50: /* numeric keypad 2 */
|
||||
goal_view_offset = FG_PI;
|
||||
v->goal_view_offset = FG_PI;
|
||||
return;
|
||||
case 51: /* numeric keypad 3 */
|
||||
goal_view_offset = FG_PI * 1.25;
|
||||
v->goal_view_offset = FG_PI * 1.25;
|
||||
return;
|
||||
case 52: /* numeric keypad 4 */
|
||||
goal_view_offset = FG_PI * 0.50;
|
||||
v->goal_view_offset = FG_PI * 0.50;
|
||||
return;
|
||||
case 54: /* numeric keypad 6 */
|
||||
goal_view_offset = FG_PI * 1.50;
|
||||
v->goal_view_offset = FG_PI * 1.50;
|
||||
return;
|
||||
case 55: /* numeric keypad 7 */
|
||||
goal_view_offset = FG_PI * 0.25;
|
||||
v->goal_view_offset = FG_PI * 0.25;
|
||||
return;
|
||||
case 56: /* numeric keypad 8 */
|
||||
goal_view_offset = 0.00;
|
||||
v->goal_view_offset = 0.00;
|
||||
return;
|
||||
case 57: /* numeric keypad 9 */
|
||||
goal_view_offset = FG_PI * 1.75;
|
||||
v->goal_view_offset = FG_PI * 1.75;
|
||||
return;
|
||||
case 72: /* H key */
|
||||
show_hud = !show_hud;
|
||||
|
@ -143,8 +145,10 @@ void GLUTkey(unsigned char k, int x, int y) {
|
|||
/* Handle "special" keyboard events */
|
||||
void GLUTspecialkey(int k, int x, int y) {
|
||||
struct CONTROLS *c;
|
||||
struct VIEW *v;
|
||||
|
||||
c = ¤t_aircraft.controls;
|
||||
v = ¤t_view;
|
||||
|
||||
printf("Special key hit = %d", k);
|
||||
|
||||
|
@ -152,28 +156,28 @@ void GLUTspecialkey(int k, int x, int y) {
|
|||
printf(" SHIFTED\n");
|
||||
switch (k) {
|
||||
case GLUT_KEY_END: /* numeric keypad 1 */
|
||||
goal_view_offset = FG_PI * 0.75;
|
||||
v->goal_view_offset = FG_PI * 0.75;
|
||||
return;
|
||||
case GLUT_KEY_DOWN: /* numeric keypad 2 */
|
||||
goal_view_offset = FG_PI;
|
||||
v->goal_view_offset = FG_PI;
|
||||
return;
|
||||
case GLUT_KEY_PAGE_DOWN: /* numeric keypad 3 */
|
||||
goal_view_offset = FG_PI * 1.25;
|
||||
v->goal_view_offset = FG_PI * 1.25;
|
||||
return;
|
||||
case GLUT_KEY_LEFT: /* numeric keypad 4 */
|
||||
goal_view_offset = FG_PI * 0.50;
|
||||
v->goal_view_offset = FG_PI * 0.50;
|
||||
return;
|
||||
case GLUT_KEY_RIGHT: /* numeric keypad 6 */
|
||||
goal_view_offset = FG_PI * 1.50;
|
||||
v->goal_view_offset = FG_PI * 1.50;
|
||||
return;
|
||||
case GLUT_KEY_HOME: /* numeric keypad 7 */
|
||||
goal_view_offset = FG_PI * 0.25;
|
||||
v->goal_view_offset = FG_PI * 0.25;
|
||||
return;
|
||||
case GLUT_KEY_UP: /* numeric keypad 8 */
|
||||
goal_view_offset = 0.00;
|
||||
v->goal_view_offset = 0.00;
|
||||
return;
|
||||
case GLUT_KEY_PAGE_UP: /* numeric keypad 9 */
|
||||
goal_view_offset = FG_PI * 1.75;
|
||||
v->goal_view_offset = FG_PI * 1.75;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
|
@ -220,9 +224,12 @@ void GLUTspecialkey(int k, int x, int y) {
|
|||
|
||||
|
||||
/* $Log$
|
||||
/* Revision 1.20 1997/08/27 03:30:13 curt
|
||||
/* Changed naming scheme of basic shared structures.
|
||||
/* Revision 1.21 1997/08/27 21:32:23 curt
|
||||
/* Restructured view calculation code. Added stars.
|
||||
/*
|
||||
* Revision 1.20 1997/08/27 03:30:13 curt
|
||||
* Changed naming scheme of basic shared structures.
|
||||
*
|
||||
* Revision 1.19 1997/08/25 20:27:21 curt
|
||||
* Merged in initial HUD and Joystick code.
|
||||
*
|
||||
|
|
151
Main/GLUTmain.c
151
Main/GLUTmain.c
|
@ -24,18 +24,16 @@
|
|||
**************************************************************************/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef WIN32
|
||||
# include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef GLUT
|
||||
#include <GL/glut.h>
|
||||
#include "GLUTkey.h"
|
||||
#endif
|
||||
#include <GL/glut.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "GLUTkey.h"
|
||||
#include "fg_init.h"
|
||||
#include "views.h"
|
||||
|
||||
#include "../constants.h"
|
||||
#include "../general.h"
|
||||
|
@ -64,6 +62,9 @@ struct GENERAL general;
|
|||
/* This is a record containing current weather info */
|
||||
struct WEATHER current_weather;
|
||||
|
||||
/* This is a record containing current view parameters */
|
||||
struct VIEW current_view;
|
||||
|
||||
/* view parameters */
|
||||
static GLfloat win_ratio = 1.0;
|
||||
|
||||
|
@ -86,8 +87,8 @@ static GLfloat fgFogColor[4] = {0.65, 0.65, 0.85, 1.0};
|
|||
/* static GLint scenery, runway; */
|
||||
|
||||
/* Another hack */
|
||||
double view_offset = 0.0;
|
||||
double goal_view_offset = 0.0;
|
||||
/* double view_offset = 0.0;
|
||||
double goal_view_offset = 0.0; */
|
||||
|
||||
double Simtime;
|
||||
|
||||
|
@ -139,17 +140,19 @@ static void fgInitVisuals() {
|
|||
**************************************************************************/
|
||||
|
||||
static void fgUpdateViewParams() {
|
||||
struct fgCartesianPoint view_pos /*, alt_up */;
|
||||
struct FLIGHT *f;
|
||||
struct fgTIME *t;
|
||||
MAT3mat R, TMP, UP, LOCAL, VIEW;
|
||||
MAT3vec vec, view_up, forward, view_forward, local_up, nup, nsun;
|
||||
struct VIEW *v;
|
||||
MAT3vec nup, nsun;
|
||||
double sun_angle, temp, ambient, diffuse, sky;
|
||||
GLfloat color[4] = { 1.0, 1.0, 0.50, 1.0 };
|
||||
GLfloat amb[3], diff[3], fog[4], clear[4];
|
||||
|
||||
f = ¤t_aircraft.flight;
|
||||
t = &cur_time_params;
|
||||
v = ¤t_view;
|
||||
|
||||
fgViewUpdate(f, v);
|
||||
|
||||
/* Tell GL we are about to modify the projection parameters */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
|
@ -159,96 +162,19 @@ static void fgUpdateViewParams() {
|
|||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
|
||||
/* calculate view position in current FG view coordinate system */
|
||||
view_pos = fgPolarToCart(FG_Longitude, FG_Lat_geocentric,
|
||||
FG_Radius_to_vehicle * FEET_TO_METER + 1.0);
|
||||
view_pos.x -= scenery.center.x;
|
||||
view_pos.y -= scenery.center.y;
|
||||
view_pos.z -= scenery.center.z;
|
||||
|
||||
printf("View pos = %.4f, %.4f, %.4f\n", view_pos.x, view_pos.y, view_pos.z);
|
||||
|
||||
/* Derive the LOCAL aircraft rotation matrix (roll, pitch, yaw) */
|
||||
MAT3_SET_VEC(vec, 0.0, 0.0, 1.0);
|
||||
MAT3rotate(R, vec, FG_Phi);
|
||||
/* printf("Roll matrix\n"); */
|
||||
/* MAT3print(R, stdout); */
|
||||
|
||||
MAT3_SET_VEC(vec, 0.0, 1.0, 0.0);
|
||||
/* MAT3mult_vec(vec, vec, R); */
|
||||
MAT3rotate(TMP, vec, FG_Theta);
|
||||
/* printf("Pitch matrix\n"); */
|
||||
/* MAT3print(TMP, stdout); */
|
||||
MAT3mult(R, R, TMP);
|
||||
|
||||
MAT3_SET_VEC(vec, 1.0, 0.0, 0.0);
|
||||
/* MAT3mult_vec(vec, vec, R); */
|
||||
/* MAT3rotate(TMP, vec, FG_Psi - FG_PI_2); */
|
||||
MAT3rotate(TMP, vec, -FG_Psi);
|
||||
/* printf("Yaw matrix\n");
|
||||
MAT3print(TMP, stdout); */
|
||||
MAT3mult(LOCAL, R, TMP);
|
||||
/* printf("LOCAL matrix\n"); */
|
||||
/* MAT3print(LOCAL, stdout); */
|
||||
|
||||
/* Derive the local UP transformation matrix based on *geodetic*
|
||||
* coordinates */
|
||||
MAT3_SET_VEC(vec, 0.0, 0.0, 1.0);
|
||||
MAT3rotate(R, vec, FG_Longitude); /* R = rotate about Z axis */
|
||||
/* printf("Longitude matrix\n"); */
|
||||
/* MAT3print(R, stdout); */
|
||||
|
||||
MAT3_SET_VEC(vec, 0.0, 1.0, 0.0);
|
||||
MAT3mult_vec(vec, vec, R);
|
||||
MAT3rotate(TMP, vec, -FG_Latitude); /* TMP = rotate about X axis */
|
||||
/* printf("Latitude matrix\n"); */
|
||||
/* MAT3print(TMP, stdout); */
|
||||
|
||||
MAT3mult(UP, R, TMP);
|
||||
/* printf("Local up matrix\n"); */
|
||||
/* MAT3print(UP, stdout); */
|
||||
|
||||
MAT3_SET_VEC(local_up, 1.0, 0.0, 0.0);
|
||||
MAT3mult_vec(local_up, local_up, UP);
|
||||
|
||||
printf(" Local Up = (%.4f, %.4f, %.4f)\n", local_up[0], local_up[1],
|
||||
local_up[2]);
|
||||
|
||||
/* Alternative method to Derive local up vector based on
|
||||
* *geodetic* coordinates */
|
||||
/* alt_up = fgPolarToCart(FG_Longitude, FG_Latitude, 1.0); */
|
||||
/* printf(" Alt Up = (%.4f, %.4f, %.4f)\n",
|
||||
alt_up.x, alt_up.y, alt_up.z); */
|
||||
|
||||
/* Derive the VIEW matrix */
|
||||
MAT3mult(VIEW, LOCAL, UP);
|
||||
/* printf("VIEW matrix\n"); */
|
||||
/* MAT3print(VIEW, stdout); */
|
||||
|
||||
/* generate the current up, forward, and fwrd-view vectors */
|
||||
MAT3_SET_VEC(vec, 1.0, 0.0, 0.0);
|
||||
MAT3mult_vec(view_up, vec, VIEW);
|
||||
|
||||
MAT3_SET_VEC(vec, 0.0, 0.0, 1.0);
|
||||
MAT3mult_vec(forward, vec, VIEW);
|
||||
printf("Forward vector is (%.2f,%.2f,%.2f)\n", forward[0], forward[1],
|
||||
forward[2]);
|
||||
|
||||
MAT3rotate(TMP, view_up, view_offset);
|
||||
MAT3mult_vec(view_forward, forward, TMP);
|
||||
|
||||
/* set up our view volume */
|
||||
gluLookAt(view_pos.x, view_pos.y, view_pos.z,
|
||||
view_pos.x + view_forward[0], view_pos.y + view_forward[1],
|
||||
view_pos.z + view_forward[2],
|
||||
view_up[0], view_up[1], view_up[2]);
|
||||
gluLookAt(v->view_pos.x, v->view_pos.y, v->view_pos.z,
|
||||
v->view_pos.x + v->view_forward[0],
|
||||
v->view_pos.y + v->view_forward[1],
|
||||
v->view_pos.z + v->view_forward[2],
|
||||
v->view_up[0], v->view_up[1], v->view_up[2]);
|
||||
|
||||
/* set the sun position */
|
||||
glLightfv( GL_LIGHT0, GL_POSITION, sun_vec );
|
||||
|
||||
/* calculate lighting parameters based on sun's relative angle to
|
||||
* local up */
|
||||
MAT3_COPY_VEC(nup, local_up);
|
||||
MAT3_COPY_VEC(nup, v->local_up);
|
||||
nsun[0] = t->fg_sunpos.x;
|
||||
nsun[1] = t->fg_sunpos.y;
|
||||
nsun[2] = t->fg_sunpos.z;
|
||||
|
@ -332,10 +258,12 @@ static void fgUpdateVisuals( void ) {
|
|||
void fgUpdateTimeDepCalcs(int multi_loop) {
|
||||
struct FLIGHT *f;
|
||||
struct fgTIME *t;
|
||||
struct VIEW *v;
|
||||
int i;
|
||||
|
||||
f = ¤t_aircraft.flight;
|
||||
t = &cur_time_params;
|
||||
v = ¤t_view;
|
||||
|
||||
/* update the flight model */
|
||||
if ( multi_loop < 0 ) {
|
||||
|
@ -357,28 +285,28 @@ void fgUpdateTimeDepCalcs(int multi_loop) {
|
|||
|
||||
/* update the view angle */
|
||||
for ( i = 0; i < multi_loop; i++ ) {
|
||||
if ( fabs(goal_view_offset - view_offset) < 0.05 ) {
|
||||
view_offset = goal_view_offset;
|
||||
if ( fabs(v->goal_view_offset - v->view_offset) < 0.05 ) {
|
||||
v->view_offset = v->goal_view_offset;
|
||||
break;
|
||||
} else {
|
||||
/* move view_offset towards goal_view_offset */
|
||||
if ( goal_view_offset > view_offset ) {
|
||||
if ( goal_view_offset - view_offset < FG_PI ) {
|
||||
view_offset += 0.01;
|
||||
/* move v->view_offset towards v->goal_view_offset */
|
||||
if ( v->goal_view_offset > v->view_offset ) {
|
||||
if ( v->goal_view_offset - v->view_offset < FG_PI ) {
|
||||
v->view_offset += 0.01;
|
||||
} else {
|
||||
view_offset -= 0.01;
|
||||
v->view_offset -= 0.01;
|
||||
}
|
||||
} else {
|
||||
if ( view_offset - goal_view_offset < FG_PI ) {
|
||||
view_offset -= 0.01;
|
||||
if ( v->view_offset - v->goal_view_offset < FG_PI ) {
|
||||
v->view_offset -= 0.01;
|
||||
} else {
|
||||
view_offset += 0.01;
|
||||
v->view_offset += 0.01;
|
||||
}
|
||||
}
|
||||
if ( view_offset > FG_2PI ) {
|
||||
view_offset -= FG_2PI;
|
||||
} else if ( view_offset < 0 ) {
|
||||
view_offset += FG_2PI;
|
||||
if ( v->view_offset > FG_2PI ) {
|
||||
v->view_offset -= FG_2PI;
|
||||
} else if ( v->view_offset < 0 ) {
|
||||
v->view_offset += FG_2PI;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -646,9 +574,12 @@ int main( int argc, char *argv[] ) {
|
|||
|
||||
|
||||
/* $Log$
|
||||
/* Revision 1.11 1997/08/27 03:30:16 curt
|
||||
/* Changed naming scheme of basic shared structures.
|
||||
/* Revision 1.12 1997/08/27 21:32:24 curt
|
||||
/* Restructured view calculation code. Added stars.
|
||||
/*
|
||||
* Revision 1.11 1997/08/27 03:30:16 curt
|
||||
* Changed naming scheme of basic shared structures.
|
||||
*
|
||||
* Revision 1.10 1997/08/25 20:27:22 curt
|
||||
* Merged in initial HUD and Joystick code.
|
||||
*
|
||||
|
|
|
@ -28,5 +28,6 @@ fg_init.o: fg_init.c fg_init.h ../constants.h ../general.h \
|
|||
../Cockpit/hud.h ../Cockpit/../Aircraft/aircraft.h \
|
||||
../Cockpit/../Flight/flight.h ../Cockpit/../Controls/controls.h \
|
||||
../Joystick/joystick.h ../Math/fg_random.h ../Scenery/mesh.h \
|
||||
../Scenery/scenery.h ../Scenery/../types.h ../Time/sunpos.h \
|
||||
../Weather/weather.h
|
||||
../Scenery/scenery.h ../Scenery/../types.h ../Scenery/stars.h \
|
||||
../Time/sunpos.h ../Weather/weather.h
|
||||
views.o: views.c views.h ../types.h
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#include "fg_init.h"
|
||||
#include "views.h"
|
||||
|
||||
#include "../constants.h"
|
||||
#include "../general.h"
|
||||
|
@ -74,8 +75,11 @@ void fgInitSubsystems( void ) {
|
|||
double cur_elev;
|
||||
|
||||
struct FLIGHT *f;
|
||||
struct VIEW *v;
|
||||
|
||||
f = ¤t_aircraft.flight;
|
||||
v = ¤t_view;
|
||||
|
||||
|
||||
/****************************************************************
|
||||
* The following section sets up the flight model EOM parameters and
|
||||
|
@ -140,6 +144,9 @@ void fgInitSubsystems( void ) {
|
|||
/* Initialize shared sun position and sun_vec */
|
||||
fgUpdateSunPos();
|
||||
|
||||
/* Initialize view parameters */
|
||||
fgViewInit(v);
|
||||
|
||||
/* Initialize the weather modeling subsystem */
|
||||
fgWeatherInit();
|
||||
|
||||
|
@ -188,9 +195,12 @@ void fgInitSubsystems( void ) {
|
|||
|
||||
|
||||
/* $Log$
|
||||
/* Revision 1.3 1997/08/27 03:30:19 curt
|
||||
/* Changed naming scheme of basic shared structures.
|
||||
/* Revision 1.4 1997/08/27 21:32:26 curt
|
||||
/* Restructured view calculation code. Added stars.
|
||||
/*
|
||||
* Revision 1.3 1997/08/27 03:30:19 curt
|
||||
* Changed naming scheme of basic shared structures.
|
||||
*
|
||||
* Revision 1.2 1997/08/25 20:27:23 curt
|
||||
* Merged in initial HUD and Joystick code.
|
||||
*
|
||||
|
|
|
@ -8,3 +8,4 @@ parser.o: parser.c parsevrml.h geometry.h common.h mesh.h scenery.h \
|
|||
../types.h
|
||||
scanner.o: scanner.c parser.h
|
||||
scenery.o: scenery.c ../general.h scenery.h ../types.h parsevrml.h
|
||||
stars.o: stars.c stars.h ../general.h
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "scenery.h"
|
||||
#include "parsevrml.h"
|
||||
#include "stars.h"
|
||||
|
||||
|
||||
/* Temporary hack until we get the scenery management system running */
|
||||
|
@ -49,7 +50,7 @@ struct SCENERY scenery;
|
|||
/* Initialize the Scenery Management system */
|
||||
void fgSceneryInit() {
|
||||
/* set the default terrain detail level */
|
||||
scenery.terrain_skip = 4;
|
||||
scenery.terrain_skip = 2;
|
||||
}
|
||||
|
||||
|
||||
|
@ -81,13 +82,18 @@ void fgSceneryRender() {
|
|||
glPushMatrix();
|
||||
glCallList(mesh_hack);
|
||||
glPopMatrix();
|
||||
|
||||
fgStarsRender();
|
||||
}
|
||||
|
||||
|
||||
/* $Log$
|
||||
/* Revision 1.15 1997/08/27 03:30:32 curt
|
||||
/* Changed naming scheme of basic shared structures.
|
||||
/* Revision 1.16 1997/08/27 21:32:29 curt
|
||||
/* Restructured view calculation code. Added stars.
|
||||
/*
|
||||
* Revision 1.15 1997/08/27 03:30:32 curt
|
||||
* Changed naming scheme of basic shared structures.
|
||||
*
|
||||
* Revision 1.14 1997/08/25 20:27:24 curt
|
||||
* Merged in initial HUD and Joystick code.
|
||||
*
|
||||
|
|
|
@ -38,19 +38,21 @@
|
|||
|
||||
#include "../general.h"
|
||||
|
||||
#include "../GLUT/views.h"
|
||||
|
||||
|
||||
/* static struct STAR stars[FG_MAX_STARS]; */
|
||||
static GLint stars;
|
||||
|
||||
|
||||
/* Initialize the Star Management Subsystem */
|
||||
void fgStarsInit() {
|
||||
FILE *fd;
|
||||
struct general_params *g;
|
||||
struct GENERAL *g;
|
||||
char path[1024];
|
||||
char line[256], name[256];
|
||||
char *tmp_ptr;
|
||||
double right_ascension, declination, magnitude;
|
||||
GLfloat mag[4] = {0.0, 0.0, 0.0, 1.0};
|
||||
int count;
|
||||
|
||||
g = &general;
|
||||
|
@ -93,10 +95,12 @@ void fgStarsInit() {
|
|||
/* printf("Found star: %d %s, %.3f %.3f %.3f\n", count,
|
||||
name, right_ascension, declination, magnitude); */
|
||||
count++;
|
||||
magnitude = magnitude * 0.8 + 0.2;
|
||||
mag[0] = mag[1] = mag[2] = magnitude;
|
||||
glColor3f( magnitude, magnitude, magnitude );
|
||||
glVertex3f( 100.0 * sin(right_ascension) * cos(declination),
|
||||
100.0 * cos(right_ascension) * cos(declination),
|
||||
100.0 * sin(declination) );
|
||||
glVertex3f( 190000.0 * sin(right_ascension) * cos(declination),
|
||||
190000.0 * cos(right_ascension) * cos(declination),
|
||||
190000.0 * sin(declination) );
|
||||
|
||||
} /* if valid line */
|
||||
|
||||
|
@ -109,12 +113,38 @@ void fgStarsInit() {
|
|||
|
||||
/* Draw the Stars */
|
||||
void fgStarsRender() {
|
||||
struct VIEW *v;
|
||||
GLfloat amb[3], diff[3];
|
||||
|
||||
v = ¤t_view;
|
||||
|
||||
printf("RENDERING STARS\n");
|
||||
|
||||
glDisable( GL_FOG );
|
||||
glDisable( GL_LIGHTING );
|
||||
glPushMatrix();
|
||||
|
||||
/* set lighting parameters for stars */
|
||||
/* amb[0] = amb[1] = amb[2] = 1.0;
|
||||
diff[0] = diff[1] = diff[2] = 1.0;
|
||||
glLightfv(GL_LIGHT0, GL_AMBIENT, amb );
|
||||
glLightfv(GL_LIGHT0, GL_DIFFUSE, diff ); */
|
||||
|
||||
glTranslatef(v->view_pos.x, v->view_pos.y, v->view_pos.z);
|
||||
|
||||
glCallList(stars);
|
||||
|
||||
glPopMatrix();
|
||||
glEnable( GL_LIGHTING );
|
||||
glEnable( GL_FOG );
|
||||
}
|
||||
|
||||
|
||||
/* $Log$
|
||||
/* Revision 1.1 1997/08/27 03:34:48 curt
|
||||
/* Initial revisio.
|
||||
/* Revision 1.2 1997/08/27 21:32:30 curt
|
||||
/* Restructured view calculation code. Added stars.
|
||||
/*
|
||||
* Revision 1.1 1997/08/27 03:34:48 curt
|
||||
* Initial revisio.
|
||||
*
|
||||
*/
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#define STARS_H
|
||||
|
||||
|
||||
#define FG_MAX_STARS 100
|
||||
#define FG_MAX_STARS 1000
|
||||
|
||||
|
||||
/* Define a structure containing star information */
|
||||
|
@ -50,7 +50,10 @@ void fgStarsRender();
|
|||
|
||||
|
||||
/* $Log$
|
||||
/* Revision 1.1 1997/08/27 03:34:50 curt
|
||||
/* Initial revisio.
|
||||
/* Revision 1.2 1997/08/27 21:32:30 curt
|
||||
/* Restructured view calculation code. Added stars.
|
||||
/*
|
||||
* Revision 1.1 1997/08/27 03:34:50 curt
|
||||
* Initial revisio.
|
||||
*
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue