ក្នុងការប្រកាសនេះ យើងនឹងបង្ហាញពីរបៀបតំឡើងភាសា OpenGL ក្នុងប្រព័ន្ធ Window។ ដើម្បីប្រើប្រាស់ភាសា OpenGL បានយើងត្រូវការកម្មវិធីដើម្បីសរសេរ។ កម្មវិធីទាំងនោះមានដូចជា Microsoft Visual Studio, CodeBlocks, នឹងកម្មវិធីជាច្រើនទៀតក៏ប៉ុន្តែក្នុងការប្រកាសនេះយើងសូមយកកម្មវិធី CodeBlocks មកប្រើពីព្រោះជាកម្មវិធីដែលឥតគិតថ្លៃ។ ដូច្នេះជំហានដំបូងយើ់ងត្រូវទាញយកកម្មវិធីនេះសិន។ សូមធ្វើតាមវិធីដូចខាងក្រោម៖
  • ជំហានទី១៖ ទាញយកកម្មវិធី CodeBlocks: ចុចត្រង់នេះ ។ សូមជ្រើសរើសយកប្រភេទ file binary installer (.exe file) ដែលវាមានភ្ជាប់ជាមួយនូវ MinGw compiler​ (minimalist development environment for native Microsoft Windows applications) ដែលវាអនុញ្ញាតឲ្យយើងប្រើប្រាស់អនុគមន៍នៅក្នុងភាសា Microsoft C បាន។  នៅក្នុង Download the binary release លោកអ្នកនិងឃើញមានប្រភេទ file codeblock ជាច្រើន សូមទាញយក file ឈ្មោះ codeblocks-13.12mingw-setup.exe (ទំហំប្រហែលជា ៩៧,៨ MB) សំរាប់ប្រើក្នុងប្រព័ន្ធដំណើរការ Window (សំគាល់សូមជ្រើរើសយក Version ចុងក្រោយបង្អោះ)។ ដូចរូបខាងក្រោម៖
របៀបទាញយក Code Blocks
  • ជំហានទី២៖ ទាញយក GLUT files ចុចត្រង់នេះ។ យើងនឹងទទួលបាន 'glut.zip' ។ 
  • ជំហានទី៣៖ តំឡើងកម្មវិធី CodeBlocks ដោយចុចពីដងលើ codeblocks-13.12mingw-setup.exe ដែលយើងបានទាញយកក្នុងជំហានទី១។ ចុចលើពាក្យ next រហូតដល់បញ្ចប់ការដំឡើង។
  • ជំហានទី៤៖ ការដាក់ GLUT files ឲ្យស្គាល់កម្មវិធី CodeBlock: យើងត្រូវពន្លៀ glut.zip ដោយប្រើកម្មវិធី WinRAR (ជាឧទាហរណ៍)  នោះយើងនឹងទទួលបាន glut.h, glut32.dll, នឹង libglut32.a ។ ដូចរូបខាងក្រោម៖ 

បន្ទាប់មកយើងត្រូវ copy files ទាំងបីនោះដាក់ក្នុងទីតាំងដូចរបៀបរាប់ខាងក្រោម៖
  1. Copy glut.dll ដាក់ក្នុងទីតាំង 'C:\Windows\System32' folder (ប្រសិនជាយើងប្រើ Windows 7 64-bit, យើងត្រូវដាក់ក្នុងទីតាំង 'C:\Windows\sysWOW64').
  2. Copy glut.h ដាក់ក្នុងទីតាំង ‘include\GL’ folder នៅក្នុង MinGW compiler folder. ប្រសិនជាយើងបានតំឡើង CodeBlocks នឹង MinGW ក្នុង default directory, folder នោះនិងនៅទីតាំង 'C:\Program Files\CodeBlocks\MinGW\include\GL'.
  3. Copy libglut32.a ដាក់ក្នុងទីតាំង 'MinGW\lib' folder. ប្រសិនជាយើងបានតំឡើង CodeBlocks នឹង MinGW ក្នុង default directory, folder នោះនិងនៅទីតាំង 'C:\Program Files\CodeBlocks\MinGW\lib'.
  • ជំហានទី៥៖ ឥឡូវនេះយើងបានធ្វើការដាក់ GLUT files ឲ្យស្គាល់កម្មវិធី CodeBlock ហើយ។ ជំហានបន្ទាប់យើងនឹងសាក់ល្បងតែសកម្មវិធីថាវាដំណើរការឬទេ តាមរបៀបដូចខាងក្រោម៖
    • នៅក្នុងកម្មវិធី CodeBlock ចុចលើពាក្យ File-->New-->Project ដូចរូបខាងក្រោម៖


    • នៅក្នុងផ្ទាំង New Project ជ្រើសរើសយក Empty project ហើយចុច​លើប៊ូតុង Go ។
 
    • ដាក់ឈ្មោះ Project (ក្នុងឧទាហរណ៍នេះយើងដាក់ឈ្មោះ Test-Code)

    • ជ្រើសរើសយក GNU GCC Compiler និងចុចពាក្យ Finish

    • ចុចលើពាក្យ Project-->build options.. 


    • ចុចលើពាក្យ linker settings និង Add រួចបញ្ចូលពាក្យ opengl32, glu32, glut32



  • ជំហានទី៦៖​ បង្កើត New file ក្នុង File>>New>>Empty file និង ដាក់ឈ្មោះ File នោះជា main.cpp។ បន្ទាប់មក សរសេរកូដខាងក្រោមនេះចូល៖
#include  // require for ever program that use cin or cout (ex: flush())
#include      // For encludeing OpenGL library code

using namespace std;   // For input/output console

GLfloat mat_ambient[] = {0.5, 0.5, 0.5, 1.0};
GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0};
GLfloat mat_shininess[] = {50.0};
GLfloat light_position[] = {10.0, 10.0, 10.0, 0.0};
GLfloat model_ambient[] = {1.0, 0.5, 0.5, 1.0};

void setupMaterials() {
 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
 glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
 glLightfv(GL_LIGHT0, GL_POSITION, light_position);
 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, model_ambient);
}

void changeColour(GLfloat r, GLfloat g, GLfloat b, GLfloat A) {
 model_ambient[0] = r;
 model_ambient[1] = g;
 model_ambient[2] = b;
 model_ambient[3] = A;
 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, model_ambient);
}

void init(void) {
 glClearColor(0.0, 0.0, 0.0, 1.0);
 setupMaterials();

 glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);
 glEnable(GL_DEPTH_TEST);
 glEnable(GL_CULL_FACE);
 glFrontFace(GL_CCW);
 glShadeModel(GL_SMOOTH);
}

void reshape(int w, int h) {
 GLfloat fAspect;
 if(h==0) h=1;

 glViewport(0,0,w,h);

 fAspect = (GLfloat)w / (GLfloat)h;

 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();

 gluPerspective(60, fAspect, 0.5, 100.0);
 glTranslatef(0,0,-1);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
}

void display(void) {
 int slices = 30;
 int stacks = 30;
 float radius = 0.2;

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        changeColour(0.0, 0.0, 1.0, 1.0);
        glTranslatef(0.0, 0.0, 0.1);
        glutSolidSphere(radius, slices, stacks);
    glPopMatrix();

 glFlush();
    glutSwapBuffers();
}

void keyboard(unsigned char key, int x, int y) {
 switch (key) {
  case 27:
   exit(0); // Exit the application if 'Esc' key is pressed
 }
}

void animate() {
 glutPostRedisplay();
}

int main(int argc, char * argv[]) {
    glutInit(&argc, argv);
    glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize (800, 600);
    glutCreateWindow (argv[0]);   init();
    glutKeyboardFunc (keyboard);
    glutDisplayFunc (display);
    glutReshapeFunc (reshape);
    glutIdleFunc(animate);
    glutMainLoop();
    return 0;
}
ចុច F9 ដើម្បីចាប់ផ្តើមដំណើរការតេសកម្មវិធី។ អ្នកនិងទទួលបានលិទ្ធផលដូចខាងក្រោម៖
អបអរសារទ អ្នកបានបញ្ចប់របៀបតំឡើងភាសា OpenGL ក្នុងប្រព័ន្ធ Window។ ក្នុងការប្រកាសលើកក្រោយ យើងនិងបង្ហាញពីរបៀបតំឡើងភាសា OpenGL ក្នុងប្រព័ន្ធ Mac OS និង Linux ។

Post a Comment

Blogger

Best web hosting!