最近忙於paper,就沒有寫博客;然後開始和華爲合作一個項目,學習如何使用openGL
轉自:https://blog.csdn.net/huangkangying/article/details/82022177
使用 apt 安裝 OpenGL 和開發包
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
在 Visual Studio Code 中撰寫一段測試程序
// test.c
/* light.c
此程序利用GLUT繪製一個OpenGL窗口,並顯示一個加以光照的球。
*/
/* 由於頭文件glut.h中已經包含了頭文件gl.h和glu.h,所以只需要include 此文件*/
# include <GL/glut.h>
# include <stdlib.h>
/* 初始化材料屬性、光源屬性、光照模型,打開深度緩衝區 */
void init ( void )
{
GLfloat mat_specular [ ] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat mat_shininess [ ] = { 50.0 };
GLfloat light_position [ ] = { 1.0, 1.0, 1.0, 0.0 };
glClearColor ( 0.0, 0.0, 0.0, 0.0 );
glShadeModel ( GL_SMOOTH );
glMaterialfv ( GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv ( GL_FRONT, GL_SHININESS, mat_shininess);
glLightfv ( GL_LIGHT0, GL_POSITION, light_position);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
glEnable (GL_DEPTH_TEST);
}
/*調用GLUT函數,繪製一個球*/
void display ( void )
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere (1.0, 40, 50);
glFlush ();
}
int main(int argc, char** argv)
{
/* GLUT環境初始化*/
glutInit (&argc, argv);
/* 顯示模式初始化 */
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
/* 定義窗口大小 */
glutInitWindowSize (300, 300);
/* 定義窗口位置 */
glutInitWindowPosition (100, 100);
/* 顯示窗口,窗口標題爲執行函數名 */
glutCreateWindow ( argv [ 0 ] );
/* 調用OpenGL初始化函數 */
init ( );
/* 註冊OpenGL繪圖函數 */
glutDisplayFunc ( display );
// /* 進入GLUT消息循環,開始執行程序 */
glutMainLoop( );
return 0;
}
編譯運行
cc test.c -o test -lGL -lglut
./test
如果能正確看到如下的球體,證明配置成功。