網頁

2010年11月26日 星期五

Android OpenGl 初始化設定

OPENGL 劃一個三角形 首先需要設定 OPENGL的參數,因為我們使用3D 所以於設定的時候啟動深度緩衝,因為3D繪圖會遇到一個問題,那一個三角形要先畫哪個後畫,你會想說很簡單由遠的地方開始畫,然後再畫近的,這個想法不錯,但是如果這兩個三角形是有切面的時候這樣的遠近算法就會失效,解決這個方法最快最簡的方法就是深度緩衝,深度緩衝就是建立一塊和畫面相同大小的記憶體(Depth buffer),當三角形要畫上每一像素的時候就去檢查這個像素的深度是否比較靠近鏡頭,如果比較近就可以畫上該像素,這就是深度緩衝的原理。
不過原理不太需要了解要畫3D記得打開他。

OPEN GL 是一個有限狀態機,所謂有限狀態機就是當你設定之後他就不會變動,除非你下指令把它取消,所以下了指指令
gl.glEnable(GL10.GL_DEPTH_TEST); //啟動深度測試
表示已經啟動了深度緩衝。



//視窗改變大小
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
// TODO Auto-generated method stub
float ratio = (float) width / height;

gl.glViewport(0, 0, width, height); //設定opengl 繪圖視窗,全螢幕的話就是如左寫法
gl.glMatrixMode(GL10.GL_PROJECTION); //以下將設定opengl的 投射 參數(攝影機參數)
gl.glLoadIdentity(); //清除 投射矩陣
gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10); //設定可視座標也是重新定義座標,畫面座標 左邊 右邊 上邊 下邊 深度開始 深度結束

gl.glMatrixMode(GL10.GL_MODELVIEW); //表示任何的轉變將會影響到模型觀點的矩陣.
gl.glLoadIdentity(); //清除模型矩陣

}

@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
// TODO Auto-generated method stub
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);//設定最棒的顏色修正
gl.glClearColor(0.0f, 0, 0, 0); //清除背景顏色RGBA
gl.glShadeModel(GL10.GL_SMOOTH);//啟用平滑陰影

gl.glClearDepthf(1.0f); //清除深度緩衝
gl.glEnable(GL10.GL_DEPTH_TEST); //啟動深度測試
gl.glDepthFunc(GL10.GL_LEQUAL); //深度測試類型
}




1 則留言:

Unknown 提到...

真愛旅舍視頻聊天室
真愛旅舍視頻聊天室
真愛旅舍視頻聊天室
6699視訊美女
上海聊天室交友
視訊美女聊天交友
視訊網絡聊天室第九視頻
九聊視頻
異性視頻交友
男人女人做愛視頻
視訊1905電影網在線觀看
電影在線觀看免費網
土豆網電影在線觀看
愛上擼綜合成人網
色人居情色網
亞洲xooo8綜合成人社區
人妻管理員2視頻
天天色成人綜合網
成人小說在線視頻
90後成人色情圖片
成人色系電影
狼群影院
伊人成人影院
久久色悠悠綜合網
天天色綜合區
操一操電影
色夜AV影院
色AV成人網
狼群影院
色也色
哥也色蝴蝶谷
咪咪影院
情色咪咪網
真愛旅舍視頻聊天室
真愛旅舍視頻聊天室
真愛旅舍視頻聊天室
真愛旅舍視頻聊天室
同城交友異性聊天室
寂寞同城交友聊天室
美女視頻聊天交友
美女視頻聊天交友
夫妻真人秀聊天室
夫妻真人秀聊天室
夫妻真人秀視頻聊天室
台灣一對一視頻聊天室
台灣一對一視頻聊天室
俺去也成人視頻免費在線播放
俺去也成人視頻免費在線播放
成人午夜色情視頻
成人午夜色情視頻
日本美女免費黃色視頻聊天室
約炮門-同城找床友
真人美女交友視頻聊天室
同城午夜免費交友網站
性感美女短裙快播情色視頻
成人倫理人妻熟女
日本美女AV裸體視頻
午夜同城交友聊天社區
夫妻視頻交友QQ群
黑色絲網襪美女視頻
視訊美女
真愛旅舍視頻聊天室
同城視頻聊天室