日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 3D开发,OpenGL ES 的使用(一)

發(fā)布時(shí)間:2024/4/15 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 3D开发,OpenGL ES 的使用(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近有人問OpenGL ES 的使用,我通過幾行代碼演示一下。

不需要講 來源 歷史或大篇前奏。。

通過短短的一段就能迅速理解OpenGL ES 初步使用方法,對OpenGL ES 有了大概的概念和感知。

和其他view的使用一樣:

?

<GLSurfaceViewandroid:id="@+id/gl_view"android:layout_width="match_parent"android:layout_height="match_parent"/> public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GLSurfaceView glSurfaceView = (GLSurfaceView) findViewById(R.id.gl_view);glSurfaceView.setRenderer(new MyRender());} }

是不是很簡單。。。。setRenderer(); 就算完成了.

?

發(fā)現(xiàn)了重點(diǎn),所有的繪制都在MyRender() 這個(gè)類里。。。。先不急著講MyRender(),分析一下OpenGL ES的使用步驟:

①創(chuàng)建GLSurfaceView組件,并使用Activity來顯示。

②為GLSurfaceView組件創(chuàng)建一個(gè)MyRender實(shí)例,并實(shí)現(xiàn)GLSurfaceView.Renderer 接口的三個(gè)方法。

public class MyRender implements GLSurfaceView.Renderer {

}

③調(diào)用GLSurfaceView的setRenderer(new MyRender());方法。此Renderer對象將完成GLSurfaceView的3D圖形繪制。

?

實(shí)際的使用中,難點(diǎn)在Renderer類。下面講一下Renderer的結(jié)構(gòu)。

?

import android.opengl.GLSurfaceView; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10;/*** Created by Administrator on 2017/3/8.*/ public class MyRender implements GLSurfaceView.Renderer {/*** 當(dāng)SurfaceView創(chuàng)建的時(shí)候,系統(tǒng)會(huì)回調(diào)這個(gè)方法* 該方法可以對SurfaceView執(zhí)行一些無變化的初始化操作* @param gl10* @param eglConfig*/@Overridepublic void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) {gl10.glDisable(GL10.GL_DITHER);//關(guān)閉抗抖動(dòng)//禁用某些功能// 設(shè)置系統(tǒng)對透視進(jìn)行修正 // 對某方面修正gl10.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);gl10.glClearColor(0,0,0,0);// 設(shè)置清屏用的顏色,RGBA// 設(shè)置陰影為平滑模式gl10.glShadeModel(GL10.GL_SMOOTH);// 設(shè)置陰影模式// 啟用深度測試即Z軸 //與glDisable相反,啟用。gl10.glEnable(GL10.GL_DEPTH_TEST);// 設(shè)置深度測試的類型gl10.glDepthFunc(GL10.GL_LEQUAL);}/*** 此初始化為SurfaceView大小變化時(shí)初始化調(diào)用* 多用于3D場景初始化* @param gl10* @param width* @param height*/@Overridepublic void onSurfaceChanged(GL10 gl10, int width, int height) {gl10.glViewport(0, 0, width, height);//設(shè)置3D視窗的大小及位置gl10.glMatrixMode(GL10.GL_PROJECTION);//當(dāng)前矩陣模式設(shè)置為投影矩陣gl10.glLoadIdentity();// 初始化單位矩陣float ratio =(float)width/height;//計(jì)算視窗的寬高比gl10.glFrustumf(-ratio,ratio,-1,1,1,0);//設(shè)置透視窗的空間大小}@Overridepublic void onDrawFrame(GL10 gl10) {gl10.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);//清除屏幕緩存和深度緩存// 下面就開始用GL10繪制自己想要的圖形了} }


此時(shí)在回顧一下OpenGL ES的使用步驟:

?

?

①創(chuàng)建GLSurfaceView組件,并使用Activity來顯示。

②為GLSurfaceView組件創(chuàng)建一個(gè)MyRender實(shí)例,并實(shí)現(xiàn)GLSurfaceView.Renderer 接口的三個(gè)方法。

public class MyRender implements GLSurfaceView.Renderer {

}

③調(diào)用GLSurfaceView的setRenderer(new MyRender());方法。此Renderer對象將完成GLSurfaceView的3D圖形繪制。

第二步應(yīng)該就明白了。。。。

實(shí)現(xiàn)GLSurfaceView.Renderer 接口然后實(shí)現(xiàn)它的三個(gè)方法。。兩個(gè)初始化方法,一個(gè)繪制方法。

初始化比如設(shè)置我們窗口打開是否啟用Z軸,是否有邊框,是否有陰影,每繪制一層都要清屏,我們用什么顏色清屏,窗口打開時(shí)的大小,窗口的某些功能是不是需要關(guān)閉等等。一系列的初始化設(shè)置。。。

然后onDrawFrame方法開始根據(jù)設(shè)置好的坐標(biāo)開始繪制圖形了。。。

繪制之前調(diào)用gl10.glClear 來清屏。然后再繪制。

具體繪制下篇再寫,繪制需要設(shè)置每個(gè)頂點(diǎn)的坐標(biāo)和顏色值,接下來就是機(jī)械式的尋找各點(diǎn)坐標(biāo),設(shè)置各個(gè)點(diǎn)的 float[] 數(shù)組。

3D圖形 頂點(diǎn)多 坐標(biāo)多,此篇理解了,下一步就是放坐標(biāo)數(shù)據(jù)。。分開不容易亂。。。

下一篇在onDrawFrame方法中加入坐標(biāo)數(shù)據(jù)開始繪制。。


熬夜寫教程不容易,
如果你欣賞我的代碼,
可以贊賞我?guī)讐K錢買個(gè)新鍵盤。

?

總結(jié)

以上是生活随笔為你收集整理的Android 3D开发,OpenGL ES 的使用(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天操天天操天天 | 欧美性猛交xxxx乱大交 | 免费成人深夜夜行网站视频 | 可以在线观看的av | 久久嫩草| 少妇一级淫片免费视频 | 91国产视频在线 | 日本在线不卡一区二区三区 | 亚洲一区二区三区免费看 | jjzz黄色片 | 亚洲精品你懂的 | 99精品视频在线看 | 中文字幕一区二区久久人妻 | 欧美整片第一页 | 欧美激情国产精品免费 | 日韩伦理一区二区三区 | 亚洲精品一区二区在线观看 | 激情一区二区 | 综合亚洲网 | 131美女爱做视频 | 久久综合久久网 | 在线观看的av | 伊人55| 青春草在线视频观看 | 亚洲免费在线 | 91在线播放视频 | 天堂资源最新在线 | 理论片中文 | 天天操人人干 | 一级性生活免费视频 | 国产成人短视频在线观看 | 亚洲精品性 | 中文人妻av久久人妻18 | 韩国裸体网站 | 殴美一级黄色片 | 国产精品乱码 | 加勒比成人在线 | 亚洲高清久久久 | 欧美午夜精品一区二区 | 成人片在线播放 | 精国产品一区二区三区a片 国产精品第一 | 亚洲免费不卡视频 | 欧美一二三视频 | 一区=区三区乱码 | 国产专区在线 | 91桃色在线| 中文字幕av观看 | 国产成人精品aa毛片 | 日日干日日爽 | 国产在线网站 | 亚洲日本欧美 | 国产伦精品一区二区 | 黑白配av | 久久久亚洲国产精品 | fc2ppv在线观看 | 爱情岛论坛永久入口 | 亚洲第一福利网站 | 91美女在线观看 | 亚洲成人精品一区二区三区 | 欧美色图首页 | 狠狠操网址 | 人妻无码中文久久久久专区 | 可以免费在线观看的av | 欧美无砖专区免费 | 无人在线观看高清视频 单曲 | 视屏一区 | 18在线观看免费入口 | 国产毛片久久久久 | 中文字幕永久在线 | 国产精品自偷自拍 | 国产尤物在线观看 | 好吊妞操 | 天堂在线8 | 色就色综合 | 草草影院第一页yycc.com | 天天爽夜夜操 | 免费裸体美女网站 | h亚洲| 91精品大片 | 成人aaaaa| 日韩精品在线观看网站 | 尤物av在线 | 成人网在线观看 | 中国久久 | 伊人久久久久噜噜噜亚洲熟女综合 | 波多野结衣一区二 | 免费看的黄色小视频 | 精品熟妇无码av免费久久 | 天天天干 | 国产盗摄一区二区三区在线 | 国产一卡二卡在线播放 | 亚洲精品性视频 | 中文字幕+乱码+中文乱码www | 国产人伦精品一区二区三区 | 神马一区二区三区 | aaa级黄色片 | 黄色小说在线观看视频 | 99热网址 | 邵氏电影《金莲外传2》免费观看 |