본문 바로가기
  • fishing...
  • eating...
MISCELLANEOUSNESS

OpenGL 지형 렌더링

by 회색뿔 2010. 5. 18.


PPT1

PPT2

PPT3

PPT4



#include #include #include #define N 200GLfloat fHeights[ 202 ][ 202 ];GLfloat fNormals[ 202 ][ 202 ][ 3 ];float IntervalPx;float theta;float delta = 1;void getHeightData( char *filename ){ 	FILE *fp;		int w, h;	//픽셀간격, 가로세로 픽셀수	int i, j;	if( ( fp=fopen( filename,"r" ) ) == 0 )		{ 		printf( "File open error!" );		exit( 1 );	}	fscanf( fp,"%f %d %d", &IntervalPx, &w, &h );	// 고도값 불러오기	for( i=1; i 500 || theta < 0 )		delta = -delta;	glutPostRedisplay(); }void main( int argc, char *argv[] ){ 	glutInit( &argc, argv );	glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );	glutInitWindowSize( 500, 500 );		glutCreateWindow( "Terrain" );		init();	glEnable( GL_DEPTH_TEST );		// 은면제거 가능	glEnable( GL_NORMALIZE );		// 정규화 자동	getHeightData( "height.txt" );		glutReshapeFunc( ReshapeCallback );	glutDisplayFunc( display );	glutIdleFunc( idle );		glutMainLoop(); }
위 소스에서는 i, j와 i + 1, j + 1에 IntervalPx 점과 점사이의 간격을 정해진 값에 따라 곱하고 있는데. 이렇게 출력할 경우 고저의 차이가 적은 밋밋한 지형이 결과로 나온다.

차이를 분명하게 보기를 원한다면 이 값을 지워서 출력해 보기 바란다.

결과 화면은 X축으로 카메라를 이동시키고 있는 것을 볼 수 있다.




-- 2011. 05. 27
     소스코드 일부부분이 재대로 표시가 안되는 내용을 확인.
     백업 데이터가 있는지 모르겠답..
    
     그리고 이글 검색해서 들어오는 사람들 학교 후배님들인거 같은데.. 참 뎃글 다는게.. 이쁘네...ㅡㅡ
     구자영 교수님 올해도 이 수업 하시나?!


'MISCELLANEOUSNESS' 카테고리의 다른 글

CG Texture 수업 실습  (3) 2010.05.19
Energy Up HOT6 ix  (6) 2010.05.09
바탕화면 DC 얻기/사용하기  (0) 2010.05.06