欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android如何創(chuàng)建一個投影和一個相機(jī)視圖

這篇文章主要講解了“Android如何創(chuàng)建一個投影和一個相機(jī)視圖”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Android如何創(chuàng)建一個投影和一個相機(jī)視圖”吧!

創(chuàng)新互聯(lián)建站是一家專業(yè)提供新鄉(xiāng)企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為新鄉(xiāng)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

在OpenGL ES環(huán)境中,投影和相機(jī)視圖讓繪制對象以更接近于人們?nèi)庋鬯吹降膶?shí)物對象的樣子顯示。這項(xiàng)仿真技術(shù)是通過對繪制對象的坐標(biāo)進(jìn)行精確的數(shù)學(xué)變換而實(shí)現(xiàn)的。

投影:這種變換是根據(jù)所在GLSurfaceView的寬和高調(diào)整繪制對象的坐標(biāo)。

如果沒有此變換,對象會被不規(guī)則比例的視圖所扭曲變形。

通常一個投影變換只有當(dāng)創(chuàng)建OpenGLView或你的renderer類的 onSurfaceChange()方法發(fā)生變化時才被計算,更多關(guān)于OpenGL ES預(yù)測和坐標(biāo)映射的信息,請參閱代碼Mapping  Coordinates for Drawn Objects。

相機(jī)視圖:這種變換是基于一個虛擬相機(jī)的位置來調(diào)整繪制對象的坐標(biāo)。需要主要的 是,OpenGL  ES并沒有定義一個真實(shí)的相機(jī)對象,而是提供了一些工具方法變換繪制對象的顯示來模擬一個相機(jī)。一個相機(jī)視圖變換可能在創(chuàng)建GLSurfaceView時 被計算一次,或根據(jù)用戶行為或應(yīng)用程序功能動態(tài)地改變。

這一節(jié)將描述如何創(chuàng)建一個投影和一個相機(jī)視圖,并將它們應(yīng)用于你的GLSurfaceView的形狀繪制過程中。

一、定義一個投影

一個投影變換的數(shù)據(jù)是在GLSurfaceView.Renderer類的 onSurfaceChanged()方法中計算得到的。下面的示例代碼演示了根據(jù)傳入GLSurfaceView的寬和高計算比例,并使用Matrix 類frustumM()方法來填充一個投影變換:

[java] view plaincopyprint? @Override public void onSurfaceChanged(GL10 unused, int width, int height) { GLES20.glViewport(0, 0, width, height); float ratio = (float) width / height; // 在onDrawFrame()方法中,將投影矩陣應(yīng)用到對象的坐標(biāo) Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1, 1, 3, 7); }

這段代碼填充了一個投影矩陣:mProjMatrix,可以把它與一個相機(jī)視圖變換在onDrawFrame()方法中結(jié)合起來使用。

注:如果只是一個投影變換應(yīng)用到你的繪制對象中,通常會導(dǎo)致什么也看不到。一般來說,你必須再申請一個相機(jī)視圖變換才能看到屏幕上的東東。

二、定義一個相機(jī)視圖

添加一個相機(jī)視圖變換讓你的繪制對象的變換流程變得更加完整。在下面的示例代碼中,使用Matrix.setLookAtM()方法來計算相機(jī)視圖變換,然后結(jié)合前面所計算的投影矩陣。將合并后的變換矩陣傳遞給繪制的形狀。

[java] view plaincopyprint? @Override public void onDrawFrame(GL10 unused) { ... // 設(shè)置相機(jī)的位置(視圖矩陣) Matrix.setLookAtM(mVMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f); // 計算投影和視圖變換 Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0); // 繪制形狀 mTriangle.draw(mMVPMatrix); }

三、應(yīng)用投影和相機(jī)視圖變換

為了使用合并后的投影和相機(jī)視圖變換矩陣,需要修改你的圖形對象的draw()方法,接收聯(lián)合變換矩陣并應(yīng)用到你的形狀上:

[java] view plaincopyprint? public void draw(float[] mvpMatrix) { // 傳遞計算出的變換矩陣 ... // 獲得形狀的變換矩陣的handle mMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix"); // 應(yīng)用投影和視圖變換 GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mvpMatrix, 0); // 繪制三角形 GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, vertexCount); ... }

感謝各位的閱讀,以上就是“Android如何創(chuàng)建一個投影和一個相機(jī)視圖”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Android如何創(chuàng)建一個投影和一個相機(jī)視圖這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前題目:Android如何創(chuàng)建一個投影和一個相機(jī)視圖
標(biāo)題路徑:http://aaarwkj.com/article14/isjhge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、App開發(fā)、響應(yīng)式網(wǎng)站、外貿(mào)建站、標(biāo)簽優(yōu)化、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
国产成人免费视频大全| 午夜情色视频在线观看| 日本一区中文字幕欧美| 欧美精品一区二区三区狠狠| 国产精品一区二区三区四区久久| 人妇乱系列中文字幕人妻| 欧美日韩国产天天干| 国产原创中文剧情性感av| 午夜福利视频在线一区| 最新亚洲av熟女播放| 日本道二区视频中文字幕| av天堂精品一区二区三区| 亚洲成人永久免费精品| 天堂av在线网址观看| 不用播放器的av蜜臀| 亚洲av毛片一区二区三区网| 91欧美精品一区二区| 日韩精品中文乱码在线观看| 一本大道东京热无码AⅤ片| 人妻免费精品久久一区| 国产免费看黄色的网站| 国产原创中文剧情性感av| 国产精品一区二区三区在线| 亚洲一区二区三区熟女av| 麻豆视传媒短视频免费看| 精品人妻系列一区二区| 日韩欧美亚洲精品中文字幕αv| 亚洲av一区二区三区色多多| 丝袜美腿一区二区三区动态图| 亚洲巨人精品福利导航| 亚洲精品成人久久网| 美女午夜精品国产福利| 中出亚洲精品日韩在线视频| 欧美另类亚洲日本一区二区| 久久久精品国产亚洲av网黑人| 欧美夫妻成人性生活视频| 国产精品一级性生活片| 国偷蜜桃av一区二区三区| 久久碰国产一区二区三区| 国产中文字幕一区久久| 91在线观看高清免费|