-
처음에 할일!!
다음 파일을 주어진 데이터 패스에 복사!
*화일구성 6개
GLUT.H
GLUT.lib
GLUT32.lib
GLUT.dll
GLUT32.dll
test1.cpp① 위 화일들을 지정 디렉토리에 복사한다.
▶ GLUT.H →C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include
→C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\GL▶ GLUT.lib GLUT32.lib →C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib
▶ GLUT.dll GLUT32.dll →glu.dll(glu32.dll) 화일이 있는 디렉토리에 복사
(windows xp는 c:\windows\system32에 복사)
② VC++ 실행한후
▶ 프로젝트 -> 속성 -> 링커 -> 입력 -> 추가 종속성 탭
opengl32.lib glu32.lib glut32.lib③ console모드로 프로젝트를 만들고 프로젝트에 test1.cpp 추가하여 컴파일한다.
참고) GLUT 3.7버전은 따로 2번의 과정을 할 필요 없이 GLUT.H만 include하면 알아서 링크해줍니다.
(포함되어 있는 glut의 버전은 3.7입니다.)
1주차 실습 소스!
// 응용 프로그램 마법사를 사용하여 생성한 VC++ 응용 프로그램
// 프로젝트의 기본 프로젝트 파일입니다.#include "stdafx.h"
#include <GL/glut.h>#using <mscorlib.dll>
using namespace System;
void display()
{
glClear( GL_COLOR_BUFFER_BIT );
glBegin( GL_POINTS );
for( int i=-150; i<150; i++)
for( int j=-150; j<150; j++)
{
glVertex2i( i,j);
if ( j<-50 && j<i && j<-i ) glColor3d( 1.0, 0.0, 0.0 ); // red
else if ( i<-50 && j>i && j<-i ) glColor3d( 0.0, 1.0, 0.0 ); // green
else if ( i> 50 && j<i && j>-i ) glColor3d( 0.0, 0.0, 1.0 ); // blue
else if ( j> 50 && j>i && j>-i ) glColor3d( 1.0, 1.0, 0.0 ); // yellow
else glColor3d( 0.0, 1.0, 1.0 ); // cyan
}
glEnd();
glFlush();
}int main( int argc, char **argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH );
glutInitWindowPosition( 100, 100);
glutInitWindowSize( 300,300 );
glutCreateWindow( "square" );glClearColor( 0.0, 0.0, 0.0, 0.0 );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho( -150.0, 150.0, -150.0, 150.0, -1.0, 1.0 );glutDisplayFunc( display );
glutMainLoop();return 0;
}
실습!!!
// 응용 프로그램 마법사를 사용하여 생성한 VC++ 응용 프로그램
// 프로젝트의 기본 프로젝트 파일입니다.#include "stdafx.h"
#include <GL/glut.h>#using <mscorlib.dll>
using namespace System;
void display()
{
/*
glClear( GL_COLOR_BUFFER_BIT );
glBegin( GL_POINTS );//실습예제 화면
for( int i=-150; i<150; i++)
for( int j=-150; j<150; j++)
{
glVertex2i( i,j);
if ( j<-50 && j<i && j<-i ) glColor3d( 1.0, 0.0, 0.0 ); // red
else if ( i<-50 && j>i && j<-i ) glColor3d( 0.0, 1.0, 0.0 ); // green
else if ( i> 50 && j<i && j>-i ) glColor3d( 0.0, 0.0, 1.0 ); // blue
else if ( j> 50 && j>i && j>-i ) glColor3d( 1.0, 1.0, 0.0 ); // yellow
else glColor3d( 0.0, 1.0, 1.0 ); // cyan
}
glEnd();
glFlush();
*/
/*
// 점그리기
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(2.0f); // 점 사이즈
glBegin(GL_POINTS);
glVertex2d(0.0f, 0.0f);
glEnd();
glFlush(); // 화면에 출력하기
*//*
// 선그리기
glClear(GL_COLOR_BUFFER_BIT);
glLineWidth(2.0f);
glBegin(GL_LINES);
glVertex2d(-0.5f, -0.5f);
glVertex2d(0.5f, -0.5f);
glVertex2d(0.5f, 0.5f);
glVertex2d(-0.5f, 0.5f);
glEnd();
glFlush();
*/
/*
// 면그리기
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2d(-0.5f, -0.5f);
glVertex2d(0.5f, -0.5f);
glVertex2d(0.5f, 0.5f);
glVertex2d(-0.5f, 0.5f);
glEnd();
glFlush();
*/
// 그라데이션
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glColor3f(1.0, 0.0, 0.0);
glVertex2d(-0.5, -0.5);
glColor3f(0.0, 1.0, 0.0);
glVertex2d(0.5, -0.5);
glColor3f(0.0, 0.0, 1.0);
glVertex2d(0.5, 0.5);
glColor3f(1.0, 1.0, 0.0);
glVertex2d(-0.5, 0.5);
glEnd();
glFlush();
}int main( int argc, char **argv )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glClearColor(0.0, 0.0, 1.0, 1.0);
glutMainLoop();
return 0;
}