리눅스에서 openGL이 제대로 동작하는지 알수 있는 방법?
질문이 연타하고 있습니다.
죄송합니다. T T
갑자기 든 생각이 "openGL이 동작하지 않는가?" 입니다.
저의 경우 그저 fedora core4만 설치했고
특별한 드라이버는 설치하지 않았습니다.
glxgears는 실행이 됩니다.
이것만으로도 opengl이 제대로 작동한다고 보장이 되는것인지요?
아래의 코드가 실행이 안되는데,
"GL/glut.h"가 없다고 합니다.
따로 설치를 해야 하는지요?
추천가능한 책 또는 웹을 알려주시면 고맙겠습니다.
#include <GL/glut.h>
#include <math.h>const double pi2 = 6.28318530718;
const double K_max = 3.5;
const double K_min = 0.1;
static double Delta_K = 0.01;
static double K = 0.1;void NonlinearMap(double *x, double *y){
/* 표준 맵 */
*y += K * sin(*x);
*x += *y;/* 각도 x는 2파이로 나눈 값이다.*/
*x = fmod(*x, pi2);
if (*x < 0.0) *x += pi2;
};/* 콜백함수:
입력없이 무엇을 할 것인가 */
void idle(void){
/* 확률적 파라메터를 증가시킨다.*/
K += Delta_K;
if(K > K_max) K = K_min;/* 화면을 다시 그린다.*/
glutPostRedisplay();
};/* 그래픽 창(윈도우)를 초기화 한다.*/
void winInit(void){
gluOrtho2D(0.0, pi2, 0.0, pi2);
};/* 콜백함수:
화면을 다시 그릴때 어떻게 할 것인가?*/
void display(void){
const int NumberSteps = 1000;
const int NumberOrbits = 50;
const double Delta_x = pi2/(NumberOrbits-1);
int step, orbit;glColor3f(0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
for (orbit = 0; orbit < NumberOrbits; orbit++){
double x, y;
y = 3.1415;
x = Delta_x * orbit;glBegin(GL_POINTS);
for (step = 0; step < NumberSteps; step++){
NonlinearMap(&x, &y);
glVertex2f(x, y);
};
glEnd();
};for (orbit = 0; orbit < NumberOrbits; orbit++){
double x, y;
x = 3.1415;
y = Delta_x * orbit;glBegin(GL_POINTS);
for (step = 0; step < NumberSteps; step++){
NonlinearMap(&x, &y);
glVertex2f(x, y);
};
glEnd();
};glutSwapBuffers();
};int main(int argc, char **argv) {
/* GLUT초기화 */
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(5,5);
glutInitWindowSize(300,300);
/*창을 하나 연다. */
glutCreateWindow("Order to Chaos");
/* 창을 초기화 한다. */
winInit();/* 콜백함수를 등록한다. */
glutDisplayFunc(display);
glutIdleFunc(idle);/* 이벤트처리기를 실행한다.*/
glutMainLoop();
return 0;
}
glxinfo
glxinfo
glut는 opengl을 API라고 보면 이를 보다사용하기 쉽게 하기 위
glut는 opengl을 API라고 보면 이를 보다사용하기 쉽게 하기 위해 고수준에서 라이브러리를 구축한 것입니다.마치 Tex이 있고 LaTex이 있듯이 말입니다.
한마디로 OpenGL로 코딩한 것이 100줄이면, 동일 프로그램을 glut로 코딩하면 훨씬 덜 노가다를 해도 된다는....(항상, 장단점은 있습니다요)
따라서, glut는 하드웨어(OpenGL 내장한 비디오카드)와는 별로 관련이 없는 경우가 많고(순수소프트웨어로 구현되는 경우가 많다는....), 라이브러리를 찾아서 설치하시면 되겠습니다.
이 정도 상식으로 검색해보시면 Mesa ... 등지에서 구하실수 있을것으로 보입니다.
freeglut-devel을 설치해보세요.
freeglut-devel을 설치해보세요.
----
Let's shut up and code.
http://nehe.gamedev.net/추천할만 합니다.L
http://nehe.gamedev.net/
추천할만 합니다.
Lessons 잘 따라가시면 도움 될거에요.
착하게살게요. :)
댓글 달기