Miguel Angel Sepúlveda ���� �Ұ�: 1993� �����ϴ���(�̱�)�� �����ߴ�. ������, �̽���, �Ϻ�, �̱����� ���п��� �о߿��� ���Ѵ�. Ŀ�� 0.98����� �������� �˰� �Ǿ���. (ù���� ���ߴ�) ����� ���� �ð��� ������ ��Ŀ���� ���������� ���Ѵ�. ���ڿ��� �����ϱ� ���±��ʱ�ȭ�̺�Ʈ ó�����ϸ��̼� ����GLUT Ȩ������ GLUT���� GLUT-3.6 �ҽ��ڵ� |
â�� �ִϸ��̼����: -- ���� ��OpenGL�� ������� ������ ������ý��ۿ� �������� �ִ� ��ɵ��� �Ծ �����ִ�. �� ���п� ���� �̽ļ��� �����ϸ鼭 ȿ������ 2����/3���� ������ ���̺귯���� ���� �� �־���. â�� ���� �ٷ�� ���� ������ ������ �ý��ۿ� �� �ִ�. OpenGL���̺귯���� �߰����� �ΰ����̺귯���� ���Ͽ� ������ ������ �ý��۰� ����� �����Ѵ�. ���� ���ڸ� GLX�ΰ����̺귯���� OpenGL�� X������ý��ۻ����� ��ȣ������ ����Ѵ�. OpenGL ��ƿ��Ƽ ��Ŷ(GLUT)�� OpenGL���α��� ������ý��۰��� ���������� �۵��ϵ��� �����ϰ� ���ִ� �ΰ����̺귯���� ANSI C���� FORTRAN�� �����Ѵ�. Mark J.Kilgard���� ���� �ۼ��Ǿ����� OpenGL�Ծ �ִ� ū ������ ������ �ش�. GLUT������ ���п� ���ϴ� �÷����� ���������� �۵��ϴ� ����� ������ �ý��� �������̽��� ����� �� �ִ�. GLUT�� ����ϴ� OpenGL�������α��� �ҽ��ڵ带 ���� �ٲ� �ʿ䵵 ���� �÷��� �̽��� ���� �����ϴ�. GLUT�� OpenGL�ڵ带 �����ϰ� ����� �� �Ӹ� �ƴ϶� OpenGL���̺귯���� ������ �ش�. GLUT�� ��������� �۰� ���� ����.�ſ� ���谡 �ߵǾ� ������ ���� ���ڰ� �̹� ȯ������ ���ù����� �ۼ��� �ξ���. ���Ƿ� ��������Ŀ������ �Ǵٽ� �ٷ� �ʿ䰡 ���ٰ� �����Ѵ�.Mark�� �������� �� �о�� �ٶ���. GLUT�� ������ �ſ� �� �Ǿ� �ִµ� �� �� ���翡�� GLUT�� �ٷ�°�? ���ڴ� OpenGL����� �Բ� �����鼭 GLUT���̺귯���� ���캸�� �ܰ�ܰ躰�� �� ���� ���� ���� �������� ���� �����غ��鼭 �Ƿ��� �ñ⸦ �ٶ���. ���� OpenGL�� ȯ������ ���������� ����ϴ� ���α��ӵ鿡�� ������ �ְ� �̷� ���α��ӵ��� ���� �����µ� ������ �Ǿ����� �Ѵ�. � ���������� �������� Mark�� ������ ���� ���������� ������ �ִ� ���� ����. GLUT API�� OpenGL�� ���������� ���±������̴�. �� �������α��� ����Ǵ� ���� GLUT�� ���� ���º����� ������ �ִٴ� ���� �ǹ��Ѵ�. GLUT�� �ʱ���´� ��κ��� �������α��� �˸��� ���� ������ �ִ�. ���� ����ڰ� ���ϴ� ���º����� ���� ������ ���� �ִ�. GLUT�� �Լ����� ���º������� ���� ���� ���ϴ� �ൿ�� �ణ ������. GLUT�Լ��� �����ϸ� ��� �Ķ���͵��� ���Ѵ�. �����ִ� �����ʹ� ������ ���� GLUT�� �Լ��� ���Ǵ� �����ʹ� ���ڿ��� ��Ȯ���� �۲��� �ٷ�� ���� �����ͻ��̴�. GLUT�� �Լ����� �� ��ɿ� ���� ��� ���� API��� ����������.:
�ʱ�ȭGLUT�� ����ϴ� ��� OpenGL���α��� �ݵ�� GLUT ���¸ӽſ� ���Ͽ� �ʱ�ȭ���Ѿ� �Ѵ�.
glut�ʱ�ȭ�Լ��� glutInit-�� �����ϴ� �̸��� ������ �ִ�.
�ֿ� �ʱ�ȭ��ƾ�� glutInit�̴�.:
glutInit�� GLUT�� ���º����� �ʱ�ȭ�ϴ� ���Ұ� ������ý����� ������ ó���ϴ�
������ �Ѵ�. glutInit���� ���� ���� �� �ִ� ���ɾ ��� �ִµ� �� ��ƾ���� ���
glutInit-�� ���۵Ǵ� �̸��� ������. �� ��ƾ���� �⺻ â�� �ʱ� ���·� �����ϴµ� ���ȴ�.
���� ����.:
��� OpenGL���α����� �ݵ�� �����Ǵ� �ʱ�ȭ��ƾ�� glutInitDisplayMode()�� �ִ�.:
#include <GL/glut.h> void main(int argcp, char **argv){ /* â�� ��ġ�� ũ�� ���� */
/* ���÷��̸������ ����:
/* GLUT������ �ʱ�ȭ */
.....�ڵ� ���� }; �ι�°�� �ִϸ��̼� ���α��� ���� �ʱ�ȭ�κ��̴�.: #include <GL/glut.h> void main(int argcp, char **argv){ /* â�� ũ��� ��ġ ���� */
/* ���÷��� ��� ���� ����:
/* GLUT ���¸� �ʱ�ȭ�Ѵ�. */
....���� ���� }; �� �� ������ ���ϸ鼭 ��� GLUT�� �������. ���� ū �������� �ι�° ������ ���߹��۷� �ʱ�ȭ�Ǿ��ٴ� ���̴�. �� ����� �ִϸ��̼�ó���� �̻����̸� �ִϸ��̼��� ������ ���� �������� �ٲ� ��Ÿ���� �����Ÿ� ȿ���� �����ش�. �̺�Ʈ ó���տ��� ���ߵ��� GLUT�� ���¸� �ٷ�� ���̺귯���̴�. ���ݺ��� �̺�Ʈ���� �ٷ��
�κ��� �ۼ��� ����. �̰��� �ᱹ �����ϰ� �ʱ�ȭ��Ų ���� ����Ǵ� ���ѷ�����
Ÿ�̸Ӱ� �ִٴ� ���̴�. �̿� ���� �ʱ�ȭ�ϴ� ���� GLUT�� ����� ��� �̺�Ʈ����
�ϳ��ϳ��� ��� ó���Ѵٴ� ���̴�. ���콺��ư Ŭ��, â �ݱ�, â ���ٲ�, Ŀ�� �̵�, Ű���� ������,
���� "�ƹ��� �Էµ� ���� ����"�� ���� �̺�Ʈ�鿡 ���� ������ �ൿ�� ���� �� �ִ�.
�̿��� �� �ִ� �̺�Ʈ���� �� �̺�Ʈ���� �ݵ�� ����ڿ� ���� �ش� �̺�Ʈ�� ���ߴ�����
Ȯ���غ��� �ֱ����� GLUT�̺�Ʈ ó�� ������ Ÿ�̸ӿ� ���� GLUT���º����� �ϳ��� ��Ͻ��Ѿ� �Ѵ�.
GLUT���� ó���� �� �ִ� �ݹ��Լ��� �̺�Ʈ���� �ڿ� ���캸��� ����. ���� �߿��� ���� �츮���� ���α����� �߿��� �̺�Ʈ���� ��ϵ� ���� glutMainLoop()��� GLUT�� �̺�Ʈó����ƾ�� �ݵ�� ȣ���ؾ� �Ѵٴ� ���̴�. �� �Լ��� �ѹ� �����ϸ� ���α��� �⺻������ ���ѷ������·� ����. �� �Լ��� �̹� ����� �ݹ��Լ��� �ʿ信 ���� ȣ���Ѵ�. ���� ��� OpenGL���α��� glutMainLoop()���ɹ����� ������. �ִϸ��̼��� ��츦 ���캸��. #include <GL/glut.h> void main(int argcp, char **argv){ /* GLUT ���� �ʱ�ȭ*/
/* � ����. */
/* ���÷��� ��带 �����Ѵ�.:
/* �ݹ��Լ� ��� */
/* �̺�Ʈ ó������ ���� */
�տ��� �������� ���� ��� Ư���� �ڵ尡 ���� �� ���̴�. glutCreateWindow(char **name)�� GLUT�� �����츦 �����ϴ� ��ƾ�� �ϳ��̴�. �� �Լ��� �̸��� ô���� � ���� �ϴ��� �ٷ� ��Ȯ�ϰ� �� �� �ִ�. �̷��� �Լ��̸��� OpenGL�� GLUT�� ����ö���߿��� ���ڰ� ���������� �����ϴ� �κ��̴�. �� �Լ��� ������ OpenGL�������α����� ����� â�� ������� ������ý��ۿ��� �����ϵ��� ������ �����ϴ� ������ ����Ѵ�. �� â�� �̸��� ���ڿ�"name"���� ���ȴ�. X������ ȯ�濡�� �� �̸��� â�� ���� ���� ���� ��������. GLUT�� ����ϴ� â�� �����κ��� ���÷� Ȯ���ؾ��� �پ��� ���� �Լ��� ������ �ִ�. ���ݱ������� �̾߱��� ���̸� ����ϴ�. ���� �ٽ� glutInit()�Լ� �ڿ� �� �� �ִ� �ʱ�ȭ��ƾ���� �ٽ� ��ġ��Ű�� �ȴ�. �������� ���ư���..���ڴ� �ִϸ��̼����α����� �ſ� �⺻���� �ΰ��� �ݹ����Լ��� ����ϴ� ����� �Ұ��ұ� �Ѵ�. glutDisplayFunc�� ����â�� ������ �����ִ� ����� �����ϰ� ������, glutIdleFunc�� �ƹ��� �Է��� ���� �� �����ϴ� ����� �����ϰ� �ִ�. �� �� ����Լ��� ��� void *(void)���� �Լ��̾�� �Ѵ�. ���� �ִϸ��̼����α��� �߰��� �ΰ��� �ݹ��Լ��� �̾߱� �ϸ� void MyDisplay(void)�� ������ �츮�� ���ϴ� ȭ���� â�� ���ִ� OpenGL���ɾ���� ȣ���ϴ� ���� ����ϸ� void MyIdle(void)�� ������� �Է��� ������ ��� ȣ��Ǿ�����. GLUT�� ���ѷ���(glutMainLoop())�Ͽ��� �̺�Ʈó���� ��� �̷������ ���� �ƹ��� ���ο� �̺�Ʈ�� ������ �ʴ´ٸ� ���� MyIdle�Լ��� ����Ѵ�. �� �ִϸ��̼� ���α��� �ƹ��� �Է��� �������� �ݹ��Լ��� ��Ͻ����־�� �ϴ°�? ���� ������� �Է°��� ������� ����ؼ� �� �������� ���� �ٲ���־�� �ϹǷ� OpenGL���α��� ����ǰ� �ִ� ���� Mydisplay()���� ���� ���� �� �������� �����ִ� ����� ���ִ� �Լ�(�����ִ� ����(idle) �ݹ��Լ�)�� �ʿ��� ���̴�. �ִϸ��̼� ������ �ϳ��� ����ϰ� �� �ִϸ��̼��ڵ带 ���캸��.:
void MyIdle(void){
void MyDisplay(void){
void main(int argcp, char **argv){ /* GLUT���¸� �ʱ�ȭ �Ѵ�. */
/* � ����. */
/* ���÷��̸�带 �����Ѵ�.:
/* �ݹ��Լ����� ����Ѵ�. */
/* �̺�Ʈ ó�������� �����Ѵ� */
���ڴ� MyDisplay�ڿ� ���ο� GLUT�Լ��� glutSwapBuffers()�� �߰��Ͽ���. �� ������ �ִϸ��̼ǿ� ����� �����ϴ�. �̹� ���α������� �ϳ��� �������� �ϳ��� ������ ���߹��۸���� â�� ����ϰ� �ִ�. �� ��� OpenGL�� ���� ���ɾ���� �� ������ ���ۿ� �������� �����Ѵ�. glutSwapBuffers������ ȣ��Ǹ� ������ �� ���� ������ �ִ� ���۰� �������� �Ǵ� ���۱�ȯ�� �̷������. �� ����� �ִϸ��̼ǿ��� ������� ���� �����Ӵ����� ������ ���� ��ġä�� ���ϵ��� �ϱ� ������ ��ǻ�;ִϸ��̼Ǻо߿��� �Ϲ����� ����̴�. OpenGL�������α������� �����ϱ� ���� ����� �������� ���캸�Ҵ�. �� �Ѱ��� ��Ʈ�� ���� �ִٸ� ������ ���� ������ MyDisplay���� OpenGL���ɾ���̴�...�̰��� ������ ���� �̾߱��̴� ;-) GLUT���� ����ȸ������ GLUT���� ����� �� �ִ� â �����κ��� �Լ�����
���� ���� �ٷﺸ��� �ϰڴ�. ���� ������ â�� �������� ����� ��� ���°� �ϴ� �����
�̽ļ� �� ���� ����ϴ� ����� ���캸�ڴ�.
�� ���� ������ �ʿ��ϴٸ�:
���� : ����ȣ
|
�� ������Ʈ�� Miguel Angel Sepulveda���� ���� �����˴ϴ�. © Emre Demiralp 1998 LinuxFocus 1998 |