參考書籍-OpenGL 3D繪圖互動程式設計
理論
openGL-(5個座標空間) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
openGL-(正交投影&透視投影) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
實作
openGL-建立茶壺(詳解) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
openGL-建立清單(詳解) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
openGL-旋轉茶壺(詳解) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
openGL-鍵盤改變旋轉茶壺角度(詳解) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
openGL-特殊鍵更改背景顏色(詳解) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
openGL-滑鼠按下拖移旋轉茶壺(詳解) @ 奇怪的(´・ω・`)增加了的部落格 :: 痞客邦 :: (pixnet.net)
完整程式碼:(下面有介紹)
#include "GL/freeglut.h"
#include "GL/glut.h"
float backgroundGray=0.0f;
void My_Display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowPosition(100,100);
glutInitWindowSize(600,600);
glutCreateWindow("glut");
glClearColor(backgroundGray, backgroundGray,backgroundGray,1.0f);
glutDisplayFunc(My_Display);
glutMainLoop();
return 0;
}
glutInit(&argc, argv);
初始化GLUT函式庫。
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
初始化渲染模式。
GLUT_RGBA =選用RGBA視窗模式。
GLUT_DOUBLE =雙緩存。
GLUT_DEPTH=視窗擁有深度的緩窗器。
glutInitWindowPosition(100,100);
視窗顯示位置,左上角(0,0)。
glutInitWindowSize(600,600);
視窗大小。
glutCreateWindow("glut");
建立一個視窗,名稱為'glut'。
glClearColor(backgroundGray, backgroundGray,backgroundGray,1.0f);
設定清除畫面後所顯示的顏色。
glutDisplayFunc(My_Display);
寫入繪圖函式進GLUT。
glutMainLoop();
不斷運行視窗。
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
清除顏色、深度緩存器。
glutSwapBuffers();
交互使用緩存器&後緩存器避免螢幕閃爍。