開始學習OpenGL&shader -- mac工程建立
阿新 • • 發佈:2019-02-14
學GL,一方面是早就想進入這個高大上的行業,一方面是因為遊戲專案裡面需要用到shader相關的東西。
雖然最後是要用到手機遊戲上的,ios和android,但是難得公司給時間,就從頭學一遍。
作為學習環境,在mac OS上就夠了,因為方便。。。
等學成歸來,再弄到手機上,就是很輕鬆的事情了
搭建工程:
開xcode,新建mac工程,commad tool line
新增framework OpenGL和GLUT:
在main.cpp輸入以下測試程式碼:
#include<stdio.h> #include<stdlib.h> #include<GLUT/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT); // 清屏 glColor4f(0.0, 1.0, 0.0, 0.5);// 繪製矩形 glRectf(0.1, 0.1, 0.6, 0.6); glColor4f(1.0, 1.0, 0.0, 0.7);// 繪製矩形 glRectf(0.4, 0.3, 0.9, 0.8); glFlush(); // 強制繪圖完成 } void init() { glEnable (GL_BLEND); // 啟用融合 glBlendFunc (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);//產生融合因子 glShadeModel (GL_FLAT);// 設定平面明暗處理 glClearColor (0.0, 0.0, 0.0, 0.0);// 清屏 } void reshape (int w,int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity(); if (w <= h) glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w, 1.5*(GLfloat)h/(GLfloat)w, -10.0,10.0); else glOrtho (-1.5*(GLfloat)w/(GLfloat)h, 1.5*(GLfloat)w/(GLfloat)h, -1.5,1.5, -10.0,10.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main(int argc,char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE |GLUT_RGB | GLUT_DEPTH); glutInitWindowSize (500,500); glutInitWindowPosition (100,100); glutCreateWindow (argv[0]); init (); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; }
command + R執行,應該出現以下介面:
環境完畢,收工