OpenGL을 사용 하시려면 빌더에서도 아주 당연하게 별 무리없이 사용 가능합니다.
꼭 콤포넌트 안써도 된다 이것이죠...
void __fastcall TForm1::FormCreate(TObject *Sender)
{
hDC=GetDC(Handle);
int npfd;
PIXELFORMATDESCRIPTOR pfd={
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|
PFD_SUPPORT_OPENGL
|PFD_DOUBLEBUFFER
,
PFD_TYPE_RGBA,
24,
0,0,0,0,0,0,
0,0,
0,0,0,0,0,
24,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0};
npfd=ChoosePixelFormat(hDC,&pfd);
SetPixelFormat(hDC,npfd,&pfd);
hRC=wglCreateContext(hDC);
wglMakeCurrent(hDC,hRC);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
wglMakeCurrent(hDC,NULL);
wglDeleteContext(hRC);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0.0f,0.0f,0.0f);
glBegin(GL_QUADS);
glColor3f(0.5,0.0,0.5);
glVertex3f(-80.0f,0.0f,80.0f);
glColor3f(0.5,0.5,0.0);
glVertex3f(-80.0f,0.0f,-80.0f);
glColor3f(0.0,0.5,0.5);
glVertex3f(80.0f,0.0f,-80.0f);
glColor3f(0.0,0.5,0.0);
glVertex3f(80.0f,0.0f,80.0f);
glEnd();
....
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
glFrontFace(GL_CW);
/*glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0,GL_POSITION,pos1);
glLightfv(GL_LIGHT0,GL_DIFFUSE,spec1);
glLightfv(GL_LIGHT1,GL_POSITION,pos2);
glEnable(GL_DEPTH_TEST);
...
이건 빌더에서 간단하게 OpenGL쓰려고 한것중 일부분입니다.
GetDC로 핸들 받아서(그냥 Canvas->Handle을 써도...)보통 책에 나와있는데로
초기화 해주시고 함수를 사용하시면 됩니다. 정말 어려움이 없습니다...
좋은 교제는 OpenGL Super Bible(정종필 역..으로 되어있는것 말고 새로나온것이 있습니다.꼭 그걸 사셔야 합니다..정종필역...은 OpenGL아는 사람이 봐도 어렵습니다..-.-)
OpenGL Game Programming, 정보 문화사...입니다...거의 바이블..이라 불리우는 원서도 있지만
이 두책..이 익히시는덴 도움될껍니다...그중 두번째..오픈지엘게임프로그래밍은
정말 괜찮은 책이라 사료되옵니다...DX의 D3D부분을 뺀 다른 부분도 볼만하구요...
3D에 관한 이론적 설명도 좋습니다...
기본적으로 행렬에 관한 지식과 약간의 물리적 개념만 있으시다면 금방 뭔가를 만드실수 있습니다.
3D-MAX파일은..당연히 파일의 포맷을 알아야 겠죠...예전에 마소에서..그런 비슷한 걸 다룬 기사가
있었는데...한번 찾아 봐야겠군요...
먼저 OpenGL을 잘 다루시게 된가면 3DMAX파일에 관한건 쉽게 해결하실듯 합니다.
왕대박 님이 쓰신 글 :
:
:
:
:
:
:
:
안녕하세요..
:
OpenGL이라는 놈을 사용해야 하는데... 감이 잡히질 않습니다.
:
이곳의 내용을 보니. 빌더를 이용해서 많은 분들이 OpenGL를 사용하시고 계신듯 하군요.
:
이제까지.. 그래픽이라면, PaintBox에 대고, Line이나 그리던 터라... 영 감이 잡히질 않는군요..
:
제가 하려는 것은
:
1) 해석된 3차원 수치데이터를 받아, 그것을 Visual하게 표현해주고, 그것도 물체를
: 돌려가면서 감상(!)을 해야
:
한다군요...
:
2)또, 3D-MAX로 작성된 파일을 보여줘야 한다군요.. (이게 가능한가?? --;;;;;
: )
:
우째 이런일이.. --;;;;;;;;;;;;;;;;;;; 아마, 건강에 무지하게 해로운 일이 될것 같군요...
:
혹시, 좋은 교재나 방향성에 대해서 소개시켜주시면 감사하겠습니다.....
:
그럼.. 즐프하세요...
:
:
: