一:glClearColor()和glClear()組合
1. 必須強調glClearColor只起到Set的作用,并不Clear任何!不要混淆~
2. glClearColor的作用是,指定刷新顏色緩沖區時所用的顏色。
所以,完成一個刷新過程是要glClearColor(COLOR)與glClear(GL_COLOR_BUFFER_BIT)配合使用。
glClearColor(0.0, 0.0, 1.0, 1.0);//藍色
glClear(GL_COLOR_BUFFER_BIT);
3. 清除顏色緩沖區的作用是,防止緩沖區中原有的顏色信息影響本次繪圖(注意!即使認為可以直接覆蓋原值,也是有可能會影響的),當繪圖區域為整個窗口時,就是通常看到的,顏色緩沖區的清除值就是窗口的背景顏色。所以,這兩條清除指令并不是必須的:比如對于靜態畫面只需要設置一次,比如不需要背景色/背景色為白色。
4. glClear 比手動涂抹一個背景畫布效率高且省力,所以通常使用這種方式。
二:gl.glMatrixMode()和glLoadIdentity()的組合
這兩個基本是組合使用的。
設置當前的操作矩陣是什么樣類型的矩陣。
比如在opengl編程:簡單的三角形繪制里面
這是目前的理解:
在surfaceviewSizeChange的時候設置這個,是說明我們眼前看到的畫面是通過投影矩陣來進行獲取的,所以在顯示的時候 相同的物體會根據在Z軸上面的距離不同有大小的區別
glMatrixMode(GL10.GL_PROJECTION)
gl.glLoadIdentity();
然后在onDraw()中 ?設置
//設置為模型視圖矩陣
gl.glMatrixMode(GL10.GL_MODELVIEW);
//加載單位矩陣
gl.glLoadIdentity();
這些在我們操作矩陣的時候是操作模型矩陣或者視圖矩陣
兩者達到的效果是一樣的,可以在基本概念(二)中看到。
要么改變的是眼球的位置,要求改變的是物體的位置,兩者達到的效果一致