日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenGL ES

發布時間:2024/1/23 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL ES 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

視頻課:https://edu.csdn.net/course/play/7621?

學習內容

?OpenGL ES的基本概念

?Android3D開發的基本知識

?利用OpenGL ES進行2D圖形的開發

?利用OpenGL ES進行3D圖形的開發?

能力目標

?了解OpenGL ES的基本概念

?了解Android3D開發的基本知識

?掌握如何利用OpenGL ES進行2D圖形的開發

掌握如何利用OpenGL ES進行3D圖形的開發


本章簡介

游戲在Android中一個非常重要的開發方向,也是可以預料到的未來Android開發中最賺錢的。從最初單機2D游戲到現在的網絡3D游戲,無論是顯示效果,還是娛樂性上都有了顯著的提高。這其中最重要的功臣就是扮演著重要角色的3D圖形庫。目前PC領域,一直有兩種標準的3D API進行競爭OpenGL??DirectX。一般主流的游戲和顯卡都支持這兩種渲染方式,DirectXWindows平臺上有很大的優勢,但是?OpenGL?具有更好的跨平臺性。在移動平臺上使用到的最多的3D圖形庫就是本章中將要講到的OpenGL ES,我們Android系統的3D?引擎采用的是OpenGL ES圖形庫。

核心技能部分?

3.1?3D開發基本知識

OpenGLOpen Graphics Library)是個定義了一個跨編程語言、跨平臺的編程接口,它用于二維三維圖象繪制。OpenGL是個專業的圖形程序接口,是一個功能強大,調用方便的底層圖形庫。

OpenGL ESOpen Graphics Library for Embedded System是一套為手持和嵌入式系統設計的2D/3D輕量圖形庫它是基于OpenGL API設計的,是OpenGL三維圖形API的一個子集。OpenGL ES是從OpenGL裁剪定制而來的,它去除了OpenGL中很多特性,并針對移動設備改善了圖形顯示效果,大大降低了內存消耗。

OpenGL ESKhronos公司推廣維護Khronos是一個圖形軟硬件行業協會,該協會主要關注圖形和多媒體方面的開放標準。OpenGL ES的官方主頁是http:www.khronos.org/opengles

Android系統使用?OpenGL?ES的標準接口來支持3D圖形功能,android 3D?圖形系統也分為?java?框架和本地代碼兩部分。本地代碼主要實現的?OpenGL?接口的庫,在?Java?框架層,javax.microedition.khronos.opengles??java?標準的?OpenGL?包,android.opengl包提供了?OpenGL?系統和?Android GUI?系統之間的聯系。

OpenGL ES不僅可以繪制3D圖形,還可以繪制2D圖形。OpenGL ES只能繪制三角形,但這并不影響多邊形的繪制,因為任何模型形都可以拆分成三角形。

OpenGL ES的坐標系是三維的,其中坐標系原點是手機的中心。如下圖3.1.1所示:

?

3.1.1 OpenGL ES坐標系?

3.2?繪制2D圖形

3D桌球之類的游戲中,華麗的界面、流暢的體驗一定給大家留下了深刻的印象。相信大家一定會希望自己也能開發出屬于自己的3D游戲。其實所謂的3D其實也比較簡單,它是由大量的平面圖形按一定的方式組合而成的,比如如下圖3.1.2中的桌球游戲的界面,就可以簡單的認為是由一些矩形、球形組合而成。在接下來的兩節中,我們就分別從2D3D的角度來講解Android中如何利用OpenGL ES繪制圖形。

?

3.1.2 3D桌球

像第一章Android中的繪圖一樣,為了方便程序的編寫,我們也先搭建一個程序框架,以后的程序就在這個框架的基礎之上進行編寫。

搭建OpenGL ES開發框架,需要以下兩步:

1)提供一個實現了Renderer接口的回調類,并實現這個接口的相關方法。

2)在Activity類中顯示第一步中的Renderer。

示例2.1

搭建OpenGL ES的基本開發框架。

首先定義Renderer接口的實現類,代碼如下:

public?class?MyRenderer implements?Renderer {

@Override

public?void?onDrawFrame(GL10 gl) {

//可以在這個方法中繪制2D3D圖形

}

?

@Override

public?void?onSurfaceChanged(GL10 gl, int?width, int?height) {

//可以在這個方法中設置場景的大小

}

?

@Override

public?void?onSurfaceCreated(GL10 gl, EGLConfig config) {

//可以在這個方法中做一些初始化工作,比如設置背景顏色、啟動平滑模型等

}

?

}

上述代碼中的onSurfaceCreated()方法在創建或重建OpenGL ES繪制窗口時會被調用到。可以在這個方法中做一些初始化的操作,比如設置背景顏色、啟動平滑模型等。onSurfaceChanged()在窗口尺寸發生變化時被調用,不管窗口的大小是否發生改變,該方法在程序啟動時至少執行一次,可以在這個方法中設置場景的大小。onDrawFrame(?)在繪制每一幀時被調用,類似于View中的onDraw()方法,一般在這個方法中繪制2D3D圖形。注意,在繪圖之前一般需要將屏幕清除成指定的顏色、清除深度緩存并重置場景。

上面3個方法的第一個參數的類型都是GL1.0,這是OpenGL ES 1.0的接口,我們就是利用它業完成2D/3D圖形的繪制及渲染的。

再提供一個Activity類,用來顯示我們在上面Renderer類中繪制的圖形,具體的代碼如下:

public?class?Frame3DActivity extends?Activity {

?

@Override

protected?void?onCreate(Bundle?savedInstanceState) {

super.onCreate(savedInstanceState);

GLSurfaceView glView = new?GLSurfaceView(this);

MyRenderer renderer = new?MyRenderer();

glView.setRenderer(renderer);

setContentView(glView);

}

}

接下來,我們在這個程序框架上繪制2D圖形。

示例2.2

在手機屏幕上繪制一個三角形和一個四邊形,要求三角形沿X軸旋轉、四邊開沿Y軸旋轉。

我們只需要修改示例2.1中的MyRenderer類,為其增加圖形繪制的功能,具體代碼如下:

public?class?MyRenderer?implements?Renderer {

int?one?= 0x10000;

?

private?float?triRotate;

private?float?quaterRotate;

// 三角形三個頂點:上頂點、左下點、右下點

private?IntBuffer triBuffer?= IntBuffer.wrap(new?int[] { 0, one, 0, -one, -one, 0, one, -one, 0, });

private?IntBuffer quaterBuffer?= IntBuffer.wrap(new?int[] { one, one, 0, -one, one, 0, one, -one, 0, -one, -one, 0 });

?

// 三角形的頂點顏色值(r,g,b,a)

private?IntBuffer colorBuffer?= IntBuffer.wrap(new?int[] { one, 0, 0, one, 0, one, 0, one, 0, 0, one, one});

?

@Override

public?void?onDrawFrame(GL10 gl) {

gl.glClear(GL10.GL_COLOR_BUFFER_BIT?| GL10.GL_DEPTH_BUFFER_BIT);// 清除屏幕和深度緩存

?

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);// 允許設置頂點

gl.glEnableClientState(GL10.GL_COLOR_ARRAY);//設置顏色數組,開啟顏色渲染功能

gl.glColorPointer(4, GL10.GL_FIXED, 0, colorBuffer);

gl.glLoadIdentity();// 重置當前的模型觀察矩陣

gl.glTranslatef(-1.5f, 0.0f, -6.0f);// 左移 1.5 單位,并移入屏幕 6.0

gl.glRotatef(triRotate, 0.0f, 1.0f, 0.0f); //設置旋轉,應該在坐標確定后再旋轉

gl.glVertexPointer(3, GL10.GL_FIXED, 0, triBuffer);// 設置三角形

gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);// 繪制三角形

gl.glDisableClientState(GL10.GL_COLOR_ARRAY);

gl.glColor4f(1.0f, 0.0f, 0.5f, 1.0f);

gl.glLoadIdentity();// 重置當前的模型觀察矩陣

gl.glTranslatef(1.5f, 0.0f, -6.0f);

gl.glRotatef(quaterRotate, 1.0f, 0.0f, 0.0f); //設置旋轉

gl.glVertexPointer(3, GL10.GL_FIXED, 0, quaterBuffer);

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);

?

gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);// 取消頂點設置

//改變旋轉角度

triRotate?+= 0.5f;

quaterRotate?-= 0.5f;

}

?

@Override

public?void?onSurfaceChanged(GL10 gl, int?width, int?height) {

float?ratio = (float) width / height;

gl.glViewport(0, 0, width, height);// 設置OpenGL場景的大小

gl.glMatrixMode(GL10.GL_PROJECTION);// 設置投影矩陣

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) {

gl.glShadeModel(GL10.GL_SMOOTH);// 啟用陰影平滑

gl.glClearColor(0, 0.5f, 0.5f, 0.5f);// 黑色背景

gl.glClearDepthf(1.0f);// 設置深度緩存

gl.glEnable(GL10.GL_DEPTH_TEST);// 啟用深度測試

gl.glDepthFunc(GL10.GL_LEQUAL);// 所作深度測試的類型

gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);// 告訴系統對透視進行修正

}

?

}

在本示例中我們用到了GL10的大量的方法,現列舉如下:

??void glClear(int mask)

清理緩沖區,也就是glClearColor或者glClearDepth等函數所指定的值來清除指定的緩沖區。參數表明哪個緩沖區需要清理,取值如下表3-1-1所示:

3-1-1 mask取值及含義

參數mask取值

說明

GL_COLOR_BUFFER_BIT

表明顏色緩沖區

GL_DEPTH_BUFFER_BIT

表明深度緩沖區

GL_STENCIL_BUFFER_BIT

表明模型緩沖區

?

??void glEnableClientState(int array)

開啟指定功能。默認的所有客戶端功能都是禁用。在OpenGL中使用glEnableClientState之后都要使用glDisableClientState來關閉或取消對應的功能。參數取值如下表3-1-2所示。

3-1-2 array取值及含義

參數array取值

說明

GL_COLOR_ARRAY

如果啟用,顏色矩陣可以用來寫入以及調用glDrawArrays方法或者glDrawElements方法時進行渲染

GL_NORMAL_ARRAY

如果啟用,法線矩陣可以用來寫入以及調用glDrawArrays方法或者glDrawElements方法時進行渲染

GL_TEXTURE_COORD_ARRAY

如果啟用,紋理坐標矩陣可以用來寫入以及調用glDrawArrays方法或者glDrawElements方法時進行渲染

GL_VERTEX_ARRAY

如果啟用,頂點矩陣可以用來寫入以及調用glDrawArrays方法或者glDrawElements方法時進行渲染

GL_POINT_SIZE_ARRAY_OES

如果啟用,點大小矩陣控制大小以渲染點和點sprites。這時由glPointSize定義的點大小將被忽略,由點大小矩陣提供的大小將被用來渲染點和點sprites

??void glDisableClientState(int array)

關閉指定功能。參數取值參看glEnableClientState()方法的array參數講解。

??void glColorPointer(int size, int type, int stride, Buffer?pointer)

指明渲染時使用的顏色矩陣。其中size指明每個顏色的元素數量,必須為4type指明每個顏色元素的數據類型允許的符號常量有GL_UNSIGNED_BYTE, GL_FIXEDGL_FLOAT,初始值為GL_FLOATstride指明連續的點之間的位偏移,如果stride0時,顏色被緊密擠入矩陣,初始值為0pointer指明包含顏色的緩沖區,如果pointernull,則為設置緩沖區。

??void glLoadIdentity()

將所選的矩陣狀態恢復成原始狀態,即將當前點移到了屏幕中心。

??void glTranslatef(float x, float y, float z)

將光標移動到指定的位置。其中x指明平移向量的x坐標y指明平移向量的y坐標z指明平移向量的z坐標z必須得在zNearzFar之間,否則我們看不到圖形的效果。

??void glRotatef(float angle, float x, float y, float z)

將物體沿指定的軸旋轉。其中angle指明旋轉的角度,單位為度x指明旋轉向量的x坐標y指明旋轉向量的y坐標z指明旋轉向量的z坐標

??void glVertexPointer(int size, int type, int stride, Buffer?pointer)

用來設置頂點緩存。其中size用于描述頂點的尺寸,當使用xyz坐標系時,值取3;type頂點的類型,GL10.GL_FIXED表示固定的頂點;stride表示步長;pointer表示頂點緩存。

??void glDrawArrays(int mode, int first, int count)

繪制頂點。其中first表示開始位置,count表示要繪制的頂點數,mode表示繪制的模式,它的具體取值參看下表3-1-3所示 。

3-1-3:mode取值及含義

mode取值

說明

GL10.GL_TRIANGLES

畫三角形

GL10.GL_TRIANGLE_STRIP

畫四邊形,取點順序如下圖3.1.3中左圖所示

GL10.GL_TRIANGLE_FAN

畫四邊開,取點順序如下圖3.1.3中右圖所示

?

3.1.3 四邊形取點順序

??void ?glColor4f(float red, float green, float blue, float alpha)

設置當前所使用的顏色,之后繪制的所有內容都會使用這個顏色,即使在完全采用紋理貼圖的時候,仍然可以用來調節紋理的色調。利用此方法不需要開啟渲染功能。

??void ?glViewport(int x, int y, int width, int height)

設置OpenGL的場景。其中x指明場景矩形的左下角x坐標,初始值為0;y指明場景矩形的左下角y坐標,初始值為0;width指明場景的寬,如果GL上下文首次附于一個surface則寬、高為這個surface大小;height指明視口的高,如果GL上下文首次附于一個surface則寬、高為這個surface大小。

??void glMatrixMode(int mode)

設置當前矩陣模式,mode允許的值參看表3-1-4所示。

3-1-4mode取值及含義

mode的取值

說明

GL_MODELVIEW

應用視圖矩陣堆的后續矩陣操作

GL_PROJECTION

應用投射矩陣堆的后續矩陣操作

GL_TEXTURE

應用紋理矩陣堆的后續矩陣操作

GL_MATRIX_PALETTE_OES

啟用矩陣調色板堆棧擴展,并應用矩陣調色板堆棧

?void glFrustumf(float left, float right, float bottom, float top, float zNear, float zFar)

設置窗口的大小。其中前四個參數用于確定窗口的大小,zNearzFar分別代表所能繪制深度的起點和終點。

?void glShadeModel(int mode)

設置明暗處理模式。所謂明暗處理指的是用單一的顏色或許多不同的顏色來勾畫(或填充)。其中參數mod指明一個符號常量來代表要使用的著色技術。允許的值有GL_FLAT GL_SMOOTH,初始值為GL_SMOOTH。

?void glClearColor(float red, float green, float blue, float alpha)

設置清除屏幕時所使用的顏色。色彩范圍從0.0f~1.0f0.0f最黑,1.0f最亮。

void glClearDepthf(float depth)

指明深度緩沖區的清理值。

void glEnable(int cap)

啟用服務器端GL功能。當參數取值為GL_DEPTH_TEST時表示如果啟用,做深度比較和更新深度緩存。

整個程序的運行效果如下圖3.1.4所示。

?

3.1.4 ?繪制的2D圖形效果

在本示例中,我們不僅講到了基本圖形(三角形、矩形)的繪制,還講到了顏色的填充、以及圖形的旋轉的知識,屬于一個比較綜合的案例,也是我們下面繪制3D圖形的基礎。

3.3?繪制3D圖形

我們可以通過這些2D圖形構建簡單的諸如“超級馬里奧”等常見橫版游戲,但隨著手機配置的提高,越來越多的3D游戲已經可以在手機上流暢運行,這也推動著越來越多的程序開發者加入到手機3D游戲的開發中來,那么在Android系統中,我們又如何繪制漂亮的3D圖形呢?

其實繪制2D圖形對于OpenGL ES來說是很簡單的,OpenGL ES的主要功能還是在于繪制3D圖形,它從繪制簡單的立體圖形到設置不同的紋理、以及光照、混合等效果,可謂無所不能。在本節中我們就學習如所利用OpenGL ES來繪制3D圖形

示例3.3

在屏幕上繪制一個三棱錐和一個立方體,然后給這兩個圖形填充上顏色,最后設置三棱錐沿Y軸旋轉,立方體沿X軸旋轉。整個程序的運行效果如下圖3.1.5所示。

?

3.1.5 簡單3D圖形效果

修改示例3.1中的MyRenderer類,修改后的代碼如下圖所示:

public?class?GLRenderer3D implements?Renderer {

float?rotateTri, rotateCube;

int?one?= 0x10000;

//定義六面體顏色

private?IntBuffer colorBufferForCube?= IntBuffer.wrap(new?int[]{

?0,one,0,one,

?0,one,0,one,

?0,one,0,one,

?0,one,0,one,

?

?one, one/2, 0, one,

?one, one/2, 0, one,

?one, one/2, 0, one,

?one, one/2, 0, one,

?

?one,0,0,one,

?one,0,0,one,

?one,0,0,one,

?one,0,0,one,

?

?one,one,0,one,

?one,one,0,one,

?one,one,0,one,

?one,one,0,one,

?

?0,0,one,one,

?0,0,one,one,

?0,0,one,one,

?0,0,one,one,

?

?one,0,one,one,

?one,0,one,one,

?one,0,one,one,

?one,0,one,one,

});

//四棱錐顏色

?private?IntBuffer colorBufferForPyramid?= IntBuffer.wrap(new?int[]{

?one,0,0,one,

?0,one,0,one,

?0,0,one,one,

?

?one,0,0,one,

?0,one,0,one,

?0,0,one,one,

?

?one,0,0,one,

?0,one,0,one,

?0,0,one,one,

?

?one,0,0,one,

?0,one,0,one,

?0,0,one,one,

?});

?

?

?private?IntBuffer PyramidBuffer?= IntBuffer.wrap(new?int[]{//四棱錐坐標

0,one,0,

-one,-one,0,

one,-one,one,

0,one,0,

one,-one,one,

one,-one,-one,

0,one,0,

one,-one,-one,

-one,-one,-one,

0,one,0,

-one,-one,-one,

-one,-one,one

?

?});

?private?IntBuffer cubeBuffer?= IntBuffer.wrap(new?int[]{//六面體坐標

one,one,-one,

-one,one,-one,

one,one,one,

-one,one,one,

one,-one,one,

-one,-one,one,

one,-one,-one,

-one,-one,-one,

one,one,one,

-one,one,one,

one,-one,one,

-one,-one,one,

one,-one,-one,

-one,-one,-one,

one,one,-one,

-one,one,-one,

-one,one,one,

-one,one,-one,

-one,-one,one,

-one,-one,-one,

one, one, -one,

one, one, one,

one, -one, -one,

one, -one, one,

?});

@Override

public?void?onDrawFrame(GL10 gl) {

// 清除屏幕和深度緩存

gl.glClear(GL10.GL_COLOR_BUFFER_BIT?| GL10.GL_DEPTH_BUFFER_BIT);

// 重置當前的模型觀察矩陣

gl.glLoadIdentity();

// 左移 1.5 單位,并移入屏幕 6.0

gl.glTranslatef(-1.5f, 0.0f, -6.0f);

// 設置旋轉

gl.glRotatef(rotateTri, 0.0f, 1.0f, 0.0f);

// 設置定點數組

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);

// 設置顏色數組

gl.glEnableClientState(GL10.GL_COLOR_ARRAY);

gl.glColorPointer(4, GL10.GL_FIXED, 0, colorBufferForPyramid);

// 設置三角形頂點

gl.glVertexPointer(3, GL10.GL_FIXED, 0, PyramidBuffer);

// 繪制三角錐

for?(int?i = 0; i < 4; i++) {

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, i * 3, 3);

}

/* 渲染正方體 */

// 重置當前的模型觀察矩陣

gl.glLoadIdentity();

// 左移 1.5 單位,并移入屏幕 6.0

gl.glTranslatef(1.5f, 0.0f, -6.0f);

// 設置旋轉

gl.glRotatef(rotateCube, 1.0f, 0.0f, 0.0f);

// 設置和繪制正方形

gl.glColorPointer(4, GL10.GL_FIXED, 0, colorBufferForCube);

gl.glVertexPointer(3, GL10.GL_FIXED, 0, cubeBuffer);

for?(int?i = 0; i < 6; i++) {

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, i * 4, 4);

}

// 繪制正方形結束

gl.glFinish();

// 取消頂點數組

gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);

gl.glDisableClientState(GL10.GL_COLOR_ARRAY);

// 改變旋轉的角度

rotateTri?+= 0.5f;

rotateCube?-= 0.5f;

}

?

@Override

public?void?onSurfaceChanged(GL10 gl, int?width, int?height) {

float?ratio = (float) width / height;

gl.glViewport(0, 0, width, height);// 設置OpenGL場景的大小

gl.glMatrixMode(GL10.GL_PROJECTION);// 設置投影矩陣

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) {

gl.glShadeModel(GL10.GL_SMOOTH);// 啟用陰影平滑

gl.glClearColor(0, 0.5f, 0.5f, 0.5f);// 黑色背景

gl.glClearDepthf(1.0f);// 設置深度緩存

gl.glEnable(GL10.GL_DEPTH_TEST);// 啟用深度測試

gl.glDepthFunc(GL10.GL_LEQUAL);// 所作深度測試的類型

gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);// 告訴系統對透視進行修正

}

}

在本示例中我們用到的GL10的方法如下:

??void glHint(int target, int mode)

用來對視圖進行修正。

target用來來表明被控制的行為,當取值為GL_PERSPECTIVE_CORRECTION_HINT時用來指定顏色和紋理坐標的插值質量。

mode來表明想要執行的行為,取值如下表3-1-5所示。

3-1-5 mode取值及含義

mode取值

說明

GL_FASTEST

使用速度最快的模式

GL_NICEST

使用質量最好的模式.

GL_DONT_CAR

由驅動設備來決定

??void glDepthFunc(int func)

設置所做深度測試的類型。?


任務實訓部分?

1繪制一個帶紋理的旋轉的立方體

訓練技能點

??基本3D圖形的繪制

??紋理的使用

??3D圖形的旋轉控制

需求說明

3D游戲相較于普通2D游戲的優點就在于可以讓玩家不斷變換視角,可以360度查看游戲角色,這里我們用一個立方體模擬一個3D游戲角色,使之不斷旋轉來模擬查看其各個方位不同的狀態。程序最終運行效果如下圖3.2.1所示。

?

3.2.1 旋轉的立方體

實現思路:

?

核心代碼如下

public?class?GLRotateCubeRender implements?Renderer

{

float?xrot, yrot, zrot;

int?texture?= -1;

int?one?= 0x10000;

IntBuffer vertices?= IntBuffer.wrap(new?int[]{

-one,-one,one,

one,-one,one,

one,one,one,

-one,one,one,

-one,-one,-one,

-one,one,-one,

one,one,-one,

one,-one,-one,

-one,one,-one,

-one,one,one,

one,one,one,

one,one,-one,

-one,-one,-one,

one,-one,-one,

one,-one,one,

-one,-one,one,

one,-one,-one,

one,one,-one,

one,one,one,

one,-one,one,

-one,-one,-one,

-one,-one,one,

-one,one,one,

-one,one,-one,

});

//對立方體的每一個面所設置的紋理映射數據

IntBuffer texCoords?= IntBuffer.wrap(new?int[]{

one,0,0,0,0,one,one,one,

0,0,0,one,one,one,one,0,

one,one,one,0,0,0,0,one,

0,one,one,one,one,0,0,0,

0,0,0,one,one,one,one,0,

one,0,0,0,0,one,one,one,

});

ByteBuffer indices?= ByteBuffer.wrap(new?byte[]{

0,1,3,2,

4,5,7,6,

8,9,11,10,

12,13,15,14,

16,17,19,18,

20,21,23,22,

});

@Override

public?void?onDrawFrame(GL10 gl)

{

// 清除屏幕和深度緩存

gl.glClear(GL10.GL_COLOR_BUFFER_BIT?| GL10.GL_DEPTH_BUFFER_BIT);

// 重置當前的模型觀察矩陣

gl.glLoadIdentity();

gl.glTranslatef(0.0f, 0.0f, -5.0f);

//設置3個方向的旋轉

gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);

gl.glRotatef(yrot, 0.0f, 1.0f, 0.0f);

gl.glRotatef(zrot, 0.0f, 0.0f, 1.0f);

?

// 綁定紋理

gl.glBindTexture(GL10.GL_TEXTURE_2D, texture);

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);

gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

//紋理和四邊形對應的頂點

gl.glVertexPointer(3, GL10.GL_FIXED, 0, vertices);

gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, texCoords);

?

//繪制

gl.glDrawElements(GL10.GL_TRIANGLE_STRIP, 24, ?GL10.GL_UNSIGNED_BYTE, indices);

?

????gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

????gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);

????

????xrot+=0.5f;

????yrot+=0.6f;

????zrot+=0.3f;

}

?

@Override

public?void?onSurfaceChanged(GL10 gl, int?width, int?height)

{

float?ratio = (float) width / height;

//設置OpenGL場景的大小

gl.glViewport(0, 0, width, height);

//設置投影矩陣

gl.glMatrixMode(GL10.GL_PROJECTION);

//重置投影矩陣

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)

{

// 黑色背景

gl.glClearColor(0, 0, 0, 0);

gl.glEnable(GL10.GL_CULL_FACE);

// 啟用陰影平滑

gl.glShadeModel(GL10.GL_SMOOTH);

// 啟用深度測試

gl.glEnable(GL10.GL_DEPTH_TEST);

//啟用紋理映射

gl.glClearDepthf(1.0f);

//深度測試的類型

gl.glDepthFunc(GL10.GL_LEQUAL);

//精細的透視修正

gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);

//允許2D貼圖,紋理

gl.glEnable(GL10.GL_TEXTURE_2D);

IntBuffer intBuffer = IntBuffer.allocate(1);

// 創建紋理

gl.glGenTextures(1, intBuffer);

texture?= intBuffer.get();

// 設置要使用的紋理

gl.glBindTexture(GL10.GL_TEXTURE_2D, texture);

//生成紋理

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, GLImage.mBitmap, 0);

// 線形濾波

gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);

gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);

}

?

}

?

class?GLImage

{

public?static?Bitmap mBitmap;

public?static?void?load(Resources resources)

{

mBitmap?= BitmapFactory.decodeResource(resources, R.drawable.img);

}

}

?

提示:

本例中用到兩個紋理處理的方法,語法及解釋如下:

??void glGenTextures(int n, IntBuffer?textures)

創建紋理,用于通知OpenGL我們所要生成的紋理的名字。其中參數n表示要載入的紋理的個數,textures表示紋理的名字。

??void glBindTexture(int target, int texture)

設置要使用的紋理,綁定紋理操作必須在繪圖之前完成。用于通知OpenGL將紋理名字texture綁定到紋理目標上。其中參數target描述了要綁定的紋理的類型,texture表示紋理的名字。


鞏固練習

一、簡答題

1.?簡述OpenGLOpenGL ES的關系及區別。?

2.?簡述在Android中使用OpenGL ES的基本步驟。?

二、上機練習

利用基本圖形組合的形式,采用OpenGL ES的知識繪制一個簡單的機器人,然后為機器人添加走動的功能(此步選做)。?

總結

以上是生活随笔為你收集整理的OpenGL ES的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美亚洲国产日韩 | 一区二区三区中文字幕在线观看 | 国产一性一爱一乱一交 | 亚洲最快最全在线视频 | 久久99免费观看 | 绯色av一区 | 久草在线视频中文 | 狠狠色伊人亚洲综合成人 | 草久草久 | 在线有码中文 | 91av免费观看 | 丝袜+亚洲+另类+欧美+变态 | 成人综合日日夜夜 | 国产美女网 | 免费看的黄色 | 狠狠色狠狠色综合系列 | av黄网站 | 国产污视频在线观看 | 天天色天天射综合网 | 亚洲美女在线一区 | 日日色综合 | 国产免费资源 | 毛片一区二区 | 免费av在| 亚洲黄a | 日韩v欧美v日本v亚洲v国产v | 国产97碰免费视频 | 亚洲精品一区二区精华 | 韩日电影在线观看 | 久久久精品一区二区 | 黄色av电影 | 黄色成人毛片 | 成人久久| 国产一级免费在线观看 | 欧美一级电影 | 成人黄色在线看 | 欧美日韩视频观看 | 国产欧美日韩精品一区二区免费 | 欧美在线观看视频免费 | 国产福利精品一区二区 | 亚洲激精日韩激精欧美精品 | 亚洲欧洲精品一区 | 99精品国产福利在线观看免费 | 操一草 | 精品福利在线观看 | 玖玖在线视频观看 | 91视频免费视频 | 99精品视频99 | 视频在线观看一区 | 亚洲精品高清视频在线观看 | 毛片网在线观看 | 日本中文乱码卡一卡二新区 | 日韩免费电影在线观看 | 亚洲少妇久久 | 亚洲va综合va国产va中文 | 日韩精品一区二区三区中文字幕 | 久久国产精品成人免费浪潮 | 国内精品久久久久影院一蜜桃 | 97天堂网 | 免费高清在线一区 | 日韩精品首页 | 久久涩涩网站 | 在线视频 一区二区 | 99精品免费久久久久久久久 | 永久免费在线 | 日韩夜夜爽 | 欧美 日韩 国产 中文字幕 | 久久久国产精品一区二区三区 | 国产自产高清不卡 | av黄色av | 最新日本中文字幕 | 美女在线国产 | 成人在线你懂得 | 国产精品初高中精品久久 | 伊人成人久久 | 国产精品一区二区三区在线看 | 日日碰狠狠躁久久躁综合网 | 亚洲黄在线观看 | 81精品国产乱码久久久久久 | 中文字幕第一页在线视频 | 精品美女在线视频 | 国产精品美女久久久久久久 | 91视频国产免费 | 国产精品毛片一区视频播 | 五月天欧美精品 | 欧美激精品 | 中文在线免费一区三区 | 日韩综合精品 | 国产高清久久久 | 99精品国产一区二区 | 久久国产精品一国产精品 | 91看国产| 国产看片免费 | 色婷婷免费 | 国产精品一区免费在线观看 | 日韩久久久久久久 | 日韩av黄| 中国一级片在线观看 | 亚洲精品视频在线播放 | 天天操天天干天天操天天干 | 日韩高清av在线 | 日韩免费网站 | 91夜夜夜 | 久久国产成人午夜av影院潦草 | 在线之家免费在线观看电影 | 久久综合久久八八 | 国产黄色在线观看 | 日韩综合视频在线观看 | 999热线在线观看 | 日韩三级视频 | 香蕉视频色 | www.久久com| 久久久久福利视频 | 久久高清免费观看 | 天天干天天干天天干天天干天天干天天干 | 国产精品久久婷婷六月丁香 | 成人wwwxxx视频 | 久久a级片 | 免费观看一级 | 欧美激情视频久久 | 在线观看免费一区 | 成人a视频在线观看 | 六月丁香激情网 | av日韩在线网站 | 欧美一级视频免费 | 9999毛片 | 日日夜夜婷婷 | 日韩免费一区二区三区 | 西西4444www大胆艺术 | 精品视频123区在线观看 | 欧美人牲 | 国内视频一区二区 | 日韩爱爱片 | 国产精品久久久久久久久软件 | 四虎在线免费观看 | 成人国产精品av | 国产综合在线观看视频 | 超碰999| 丁香六月伊人 | 黄色av一区| 国产一区视频在线观看免费 | 亚洲国产成人在线 | 手机在线观看国产精品 | 欧美男男激情videos | 国产精品欧美激情在线观看 | 五月激情丁香婷婷 | 日韩中文字幕免费视频 | 天天天干天天射天天天操 | 亚洲精品va| 在线视频一二区 | 欧美日韩中文在线视频 | 玖玖999| 99产精品成人啪免费网站 | 手机成人在线 | 中文字幕在线高清 | 97视频人人| 日韩欧美91 | 国产在线自 | 91精品爽啪蜜夜国产在线播放 | 国产精品日韩欧美 | 国产成人精品一区二区三区福利 | 日韩四虎 | 国产黄色一级片在线 | 国产资源网 | 免费成人在线观看 | 99r在线视频 | 欧美日韩在线免费观看 | 日韩免费在线 | 久久免费毛片 | 午夜精品三区 | 中文字幕视频网站 | 久久论理| 亚洲国产欧美一区二区三区丁香婷 | 成人黄色免费在线观看 | 黄色小网站在线观看 | 97超碰.com | 日韩网站在线免费观看 | 欧美日韩国产免费视频 | 亚洲第一区在线播放 | av官网在线| 国内综合精品午夜久久资源 | 婷婷av电影 | 在线免费观看麻豆视频 | 国产精品成人免费一区久久羞羞 | 亚洲,国产成人av | 色综合久久久久综合99 | 日韩一区在线播放 | 欧美精品久久久久久 | 国产精品一区二区三区在线 | 91精品免费在线观看 | 成人免费观看在线视频 | 精品国产乱码久久久久久1区二区 | 国产在线播放一区二区 | 高潮毛片无遮挡高清免费 | 97色涩| 亚洲年轻女教师毛茸茸 | 麻豆影视在线播放 | 日韩 精品 一区 国产 麻豆 | 欧美了一区在线观看 | 婷婷亚洲激情 | 欧美日韩不卡在线观看 | 亚洲美女精品视频 | 欧美色黄 | 亚洲综合色丁香婷婷六月图片 | 蜜臀久久99精品久久久酒店新书 | 亚洲九九影院 | 色婷婷亚洲综合 | 91中文字幕在线播放 | 天天射综合网视频 | 992tv人人草| 91porny九色91啦中文 | 日日爱夜夜爱 | 午夜久久福利影院 | 婷婷 综合 色 | 亚洲黄色片在线 | 免费黄色av片 | 国产成人精品亚洲a | 丁香婷婷电影 | 国产精品福利av | 欧美日一级片 | 狠狠狠色丁香婷婷综合久久五月 | 69av免费视频| 日本99久久 | 久久免费成人网 | 成人黄视频 | 亚洲黄色在线播放 | 国产福利中文字幕 | 91视频91色 | 亚洲 欧美 日韩 综合 | 亚洲黄色小说网 | 亚洲成色777777在线观看影院 | 国产精品免费久久久久影院仙踪林 | 国产精品久久久久久一二三四五 | 国产免费视频一区二区裸体 | 色婷丁香 | 免费一区在线 | 91丨九色丨高潮丰满 | 国产中文字幕一区二区 | 日本在线免费看 | 午夜精品久久久久久久爽 | 五月天亚洲精品 | 欧美成年网站 | 欧美精品久久人人躁人人爽 | 天天摸日日摸人人看 | 日韩高清免费无专码区 | 色av婷婷| 黄免费在线观看 | 久久天天躁狠狠躁亚洲综合公司 | 婷婷色 亚洲 | 正在播放一区 | 久久第四色 | 国产亚洲精品成人av久久影院 | 黄色tv视频 | 免费网站黄色 | 久久综合成人网 | 天天久久综合 | 久久麻豆精品 | 在线97| 在线视频观看你懂的 | 精品久久久久一区二区国产 | 国产在线污 | 国产精品久久久久亚洲影视 | 在线观看一区二区精品 | 日本一区二区三区免费观看 | 午夜视频欧美 | 久草资源在线 | 91丨九色丨国产在线观看 | 国产无限资源在线观看 | 国产精品综合久久久 | japanesexxx乱女另类 | 欧美国产日韩一区二区三区 | 五月婷婷国产 | 免费 在线 中文 日本 | 92中文资源在线 | 久久精品国产精品亚洲 | 成人黄在线观看 | 亚洲精品美女免费 | 九九国产精品视频 | 午夜久久福利 | 国产精品久久久久久爽爽爽 | 97视频网站 | 91麻豆高清视频 | 日韩专区视频 | 色姑娘综合 | 亚洲精品午夜国产va久久成人 | 一区二区三区四区精品 | 日韩在线免费电影 | 日本激情动作片免费看 | 久久激情电影 | 日韩中文字幕免费在线播放 | 四虎影视成人精品国库在线观看 | 97超碰国产精品女人人人爽 | 黄色在线网站噜噜噜 | 精品亚洲二区 | 国产手机精品视频 | 亚洲高清视频一区二区三区 | 爱av在线网 | 精品综合久久 | 久久九九影视 | 丁香五婷 | 丁香综合网 | 日本资源中文字幕在线 | 中文字幕在线看视频国产中文版 | 成人免费av电影 | 久草免费福利在线观看 | 97av影院 | 久久观看| 国产另类av| 国产手机视频在线播放 | 成人试看120秒 | 国产又粗又猛又黄又爽 | 欧美日韩免费视频 | 日韩中文字幕在线 | 国产在线精品区 | 成人久久久精品国产乱码一区二区 | 亚洲国产偷 | 免费成人看片 | 久久久久久免费毛片精品 | 国产精品一区二区av麻豆 | 国产精品不卡在线观看 | 日本3级在线观看 | 国产午夜在线观看视频 | 在线视频欧美日韩 | 精品一区二区三区香蕉蜜桃 | 77国产精品 | 日韩黄色大片在线观看 | 欧美电影在线观看 | 月下香电影 | 久久免费视频国产 | 国产成人一区二区在线观看 | 91伊人久久大香线蕉蜜芽人口 | 国产精品99久久久久久久久久久久 | 顶级bbw搡bbbb搡bbbb | 久久成人国产精品免费软件 | 欧美精品在线免费 | 久久成人综合 | 成人黄色免费在线观看 | 日韩电影中文 | 麻花豆传媒一二三产区 | 国产人成一区二区三区影院 | www.av在线播放| 成人一区影院 | 国产在线视频一区二区三区 | 精品国产电影 | 日韩av不卡在线 | 久久久久精 | 国内成人综合 | 免费观看不卡av | 国产精品久久久免费看 | 九九九在线 | 欧美乱熟臀69xxxxxx | 日韩在线免费看 | 中文在线最新版天堂 | 精品国产黄色片 | 91系列在线观看 | 伊人婷婷 | 国内外成人免费在线视频 | 999视频在线播放 | 中文字幕色婷婷在线视频 | 91精品国产欧美一区二区 | 在线视频你懂得 | 天堂av官网| 美国人与动物xxxx | 一区二区 久久 | 最近免费中文字幕大全高清10 | 九九在线精品视频 | 韩日精品在线 | 欧美性生活小视频 | 亚洲视频精品 | 久久久污 | 亚州av网站 | 国产麻豆剧传媒免费观看 | 高清在线一区 | 成人av免费电影 | 久久国产精品视频观看 | 制服丝袜在线91 | 一区二区三区日韩精品 | 香蕉网址 | 免费网站在线观看人 | 天天摸夜夜操 | 天天在线视频色 | 欧美午夜精品久久久久久孕妇 | 狠狠狠色丁香综合久久天下网 | 国产一级性生活 | 国产视频一区精品 | 欧美日本不卡 | 在线免费看片 | 玖玖999| 欧美日韩不卡在线视频 | 日本精品在线视频 | 天堂av在线中文在线 | 高清视频一区二区三区 | 在线观看视频亚洲 | 青春草视频在线播放 | 欧美性生交大片免网 | 国产精品成人aaaaa网站 | 一级久久精品 | 久久成人一区二区 | 亚洲成人xxx | 久久黄色影院 | 日韩精品一区在线播放 | 免费在线激情视频 | 亚洲最新视频在线 | 国产3p视频 | 最近中文字幕大全中文字幕免费 | 高清av中文字幕 | 亚洲精品乱码久久久久久久久久 | 91九色在线观看 | 亚洲精品国偷自产在线99热 | 91九色国产 | 在线v片免费观看视频 | 激情欧美丁香 | 亚洲国产精品99久久久久久久久 | 波多野结衣在线视频免费观看 | 91视频最新网址 | 麻豆传媒视频在线免费观看 | 国产精品视频观看 | 最近中文字幕 | 国产欧美日韩一区 | www.五月天 | 久久综合免费视频影院 | 欧美激情精品久久久久久变态 | 日韩免费福利 | 欧美日韩一区二区视频在线观看 | 91亚洲精品久久久蜜桃借种 | 色综合久久88色综合天天人守婷 | 欧美日韩国产mv | 天天操综 | 日韩视频在线不卡 | 99久久精品午夜一区二区小说 | 九九热在线观看视频 | 婷婷久月 | 天天综合网久久 | 在线精品亚洲一区二区 | 99久热在线精品视频 | 麻豆视频免费播放 | 亚洲 欧美 另类人妖 | 在线a视频免费观看 | 国产美女无遮挡永久免费 | 亚洲专区视频在线观看 | 99国产精品一区 | 中文字幕乱码日本亚洲一区二区 | 久久视频这里有精品 | 亚洲小视频在线 | 久久久久久久av | 成人在线播放网站 | 亚洲无吗视频在线 | 粉嫩av一区二区三区免费 | 99视频在线免费播放 | 2021国产在线 | 99久久精品免费看国产麻豆 | 中文字幕av一区二区三区四区 | 黄色精品网站 | 欧美一级裸体视频 | www.xxxx变态.com | 看片网站黄色 | avav片 | 亚洲精品欧美视频 | 美女网站在线观看 | 精品成人免费 | 一级免费黄视频 | 国产一区二区在线影院 | 黄色大片日本免费大片 | 一级一片免费看 | 特黄特黄的视频 | 中文字幕在线日本 | 亚洲精品五月 | av成人免费在线看 | 久久综合网色—综合色88 | 黄色com | 手机av电影在线观看 | 狠狠干狠狠操 | 在线观看国产 | 成人黄色毛片 | 日韩av资源站 | 色综合久久久久网 | 亚洲精选久久 | 99久久网站| 久久超 | 欧美成人理伦片 | 国产精品自产拍在线观看中文 | 亚洲 av网站 | 亚洲国产中文字幕 | 久久理论电影网 | 日本一区二区高清不卡 | 日韩乱码中文字幕 | 波多野结衣视频网址 | 99热99 | 久久精品中文字幕免费mv | 欧美一级黄色网 | 免费av福利| 热久久最新地址 | 国产高清av免费在线观看 | 日本在线视频网址 | 96精品视频 | 在线观看91网站 | 国产精品入口久久 | 国产精品一区二区在线播放 | 波多野结衣理论片 | 黄色大片国产 | 国产一区二区播放 | 国产精品一区二区在线观看 | 国产色区 | 中文字幕成人在线观看 | 91中文在线观看 | 国产色视频123区 | 久久精品视频国产 | 日本黄色免费电影网站 | 欧美精品一区二区性色 | 国产最新网站 | 亚洲欧美乱综合图片区小说区 | 欧美aaa级片| 久草在线看片 | 久草新在线| 91片黄在线观看动漫 | 天天添夜夜操 | 人人干,人人爽 | 午夜视频福利 | 丝袜美腿亚洲综合 | 精品久久久久久国产偷窥 | 久久久久久激情 | 久久精品成人热国产成 | 91伊人影院 | 蜜臀久久99精品久久久无需会员 | 国产中文字幕91 | 午夜精品久久久久久久99婷婷 | 婷婷亚洲最大 | 草莓视频在线观看免费观看 | 99这里只有| 欧美激情在线看 | 成人黄色大片网站 | 亚洲精品人人 | 激情婷婷综合网 | 免费黄色小网站 | 四虎在线视频免费观看 | 日韩欧美视频在线观看免费 | 人人澡人人爽欧一区 | 97热视频 | 精品国产一区二区三区免费 | 日韩极品视频在线观看 | 欧美精品一区二区免费 | 一级黄色大片在线观看 | 成人免费在线视频观看 | 免费观看的av | 欧美日比视频 | 国产成人亚洲在线观看 | 日韩av男人的天堂 | 日日操日日操 | 992tv在线观看 | 成人福利av | 免费久久久 | 欧美激情精品 | 精品视频免费久久久看 | 日日夜夜精品免费 | 五月香视频在线观看 | 久久免费在线观看 | 99精品视频免费在线观看 | 免费试看一区 | 在线a人v观看视频 | 五月婷婷激情综合网 | 国产美女免费观看 | 久久免费视频网站 | 麻豆传媒一区二区 | 国产黄色大片 | 日韩天天干 | 韩国精品一区二区三区六区色诱 | 91色蜜桃 | 国产欧美高清 | 久久五月婷婷丁香社区 | av资源网在线播放 | 91在线看视频 | 日韩精品免费在线观看 | 日韩特级片 | 69久久夜色精品国产69 | 91高清免费 | 国产亚洲精品av | 欧美色道 | 麻豆一级视频 | 亚洲视频在线看 | 日韩,中文字幕 | 中文乱幕日产无线码1区 | 国产色资源 | 日本久久成人中文字幕电影 | 麻豆视传媒官网免费观看 | 色综合久久精品 | 亚洲黄色免费电影 | 亚洲精品91天天久久人人 | 国产在线最新 | 欧美另类xxxxx| 91视频啪 | 特级黄色视频毛片 | 国产中文字幕大全 | 免费合欢视频成人app | 国产资源网站 | 欧美日韩aa| 中文国产字幕在线观看 | 免费十分钟 | 日b视频在线观看网址 | 亚洲国产中文字幕 | 香蕉视频免费看 | 免费在线看v | 久久精品国产亚洲aⅴ | 欧美成人精品在线 | 91桃色免费观看 | 成年人在线免费看视频 | 国产精品久久久久久麻豆一区 | 亚洲爱爱视频 | 亚洲成年人在线播放 | 四虎国产永久在线精品 | 国产黄a三级三级 | 亚洲精品久久久蜜桃 | 九九一级片 | 亚洲视频久久 | 欧美日韩1区2区 | 日韩国产高清在线 | 青青河边草免费直播 | 免费观看的黄色片 | 日韩高清免费无专码区 | 欧美久久久影院 | 成人黄在线 | 91成人免费看片 | 国产欧美精品在线观看 | 亚洲 在线 | 最近中文字幕免费视频 | 99精品视频中文字幕 | 中文字幕av一区二区三区四区 | 亚洲精品在线免费看 | 久草www| 久射网| 91九色性视频 | 爱情影院aqdy鲁丝片二区 | 91精品国自产在线观看欧美 | 国产男女无遮挡猛进猛出在线观看 | 久色婷婷| wwwww.国产| 三级黄在线 | 亚洲成人黄色在线观看 | 国产丝袜一区二区三区 | 少妇资源站| 在线观看免费黄色 | 久久视频免费在线 | 在线观看国产v片 | 日韩中文字 | 黄色视屏免费在线观看 | 久久经典国产 | 久久久麻豆视频 | 欧美 激情 国产 91 在线 | 精品久久久久久久久久久久久久久久久久 | 黄色亚洲在线 | 久久国产精品视频 | av 一区 二区 久久 | 中文字幕精 | 97超碰人人澡人人爱学生 | 国产伦精品一区二区三区免费 | 国产中文字幕一区二区 | 国产精品99久久久久的智能播放 | 中文字幕日韩高清 | 久久99国产精品久久99 | 久久久久欠精品国产毛片国产毛生 | 色综合天天狠狠 | 天天爱天天操 | 草久在线 | 在线观看视频97 | 正在播放一区 | 国产成人精品av | 日本三级在线观看中文字 | 激情动态 | 日韩国产欧美视频 | 欧美一区二视频在线免费观看 | 久久视频这里有久久精品视频11 | 日本高清xxxx | 天堂麻豆 | 久久夜色精品国产欧美一区麻豆 | 成人va在线观看 | 国产精品18久久久久久不卡孕妇 | 亚洲综合一区二区精品导航 | 久久国产精品成人免费浪潮 | 日韩免费看片 | 久99久在线 | 日韩在线观看视频中文字幕 | 在线看小早川怜子av | 在线成人小视频 | 国产色视频| 午夜精品福利影院 | 亚洲成 人精品 | 欧美在线观看小视频 | 成人h动漫精品一区二 | 精品高清视频 | 97视频人人澡人人爽 | 激情视频免费在线 | 精品久久久免费 | 午夜久久影视 | 欧美日韩国产一二三区 | 狠狠色丁香九九婷婷综合五月 | 中文字幕在线视频第一页 | 久久久久免费网 | 亚洲精品乱码久久久久久蜜桃不爽 | 国产亚洲成av人片在线观看桃 | 91在线免费观看网站 | 粉嫩一二三区 | 亚洲 欧美 精品 | 看国产黄色片 | 久久激情综合 | 正在播放五月婷婷狠狠干 | 日韩在线视频免费看 | 涩五月婷婷 | 欧美一区二区伦理片 | 伊人天天色 | 午夜精品视频在线 | 人人插人人舔 | 欧美精品三级在线观看 | 丁香六月天婷婷 | 日日爱999| 天天躁日日躁狠狠 | 国产精品一区二区三区久久 | 欧美激情视频三区 | 久久免费一级片 | 亚洲免费婷婷 | 91人人澡| 日韩欧美国产激情在线播放 | 久久av中文字幕片 | 久久国产精品视频免费看 | 亚洲精品视频在线免费播放 | 在线免费观看国产视频 | 日韩欧美一区二区三区在线 | 在线久草视频 | 91av视屏 | 亚洲精品乱码久久久久久9色 | 成人黄色大片在线免费观看 | 欧美日韩中文字幕视频 | 狠狠躁日日躁狂躁夜夜躁av | 午夜久久久精品 | 欧美激情xxxx | 在线激情电影 | 久久久免费电影 | 一区二区三区日韩视频在线观看 | 精品国产一区二区三区av性色 | 精品一区二区在线免费观看 | 久久国产精品小视频 | 国产中文a | 久久久久久久久爱 | 二区视频在线 | 日韩免费高清在线观看 | 美女在线免费观看视频 | 成人午夜网 | 99在线热播精品免费 | 在线免费观看成人 | 99热官网 | 国产精品精品久久久久久 | 亚洲综合色丁香婷婷六月图片 | 久久超级碰视频 | 久久国产精品一区二区三区四区 | av福利电影| 国产伦精品一区二区三区四区视频 | 精品一区久久 | 久草免费看 | 深爱开心激情网 | 综合色天天 | 日韩av中文在线 | 日本色小说视频 | 日本少妇久久久 | 欧美色精品天天在线观看视频 | 成人影片免费 | 天天干天天操天天干 | 欧美一区二区三区免费看 | av观看在线观看 | 亚洲日本va中文字幕 | 丁香婷婷色综合亚洲电影 | 亚洲国产网站 | 欧美一级片免费观看 | 色综合久久久久综合99 | 国产在线观看91 | 亚洲一区二区精品3399 | 人人射网站 | 亚洲国产成人高清精品 | 亚洲激情网站免费观看 | 国产视频一区二区在线播放 | 91手机视频在线 | 97在线观视频免费观看 | 69国产成人综合久久精品欧美 | 亚洲最快最全在线视频 | 亚洲欧洲国产视频 | 亚洲禁18久人片 | 麻豆国产露脸在线观看 | 婷婷国产在线 | 日韩av高潮 | 久久伦理视频 | 九九精品毛片 | 日本在线观看黄色 | 激情综合色图 | 伊人电影天堂 | 久久爽久久爽久久av东京爽 | 中文字幕亚洲不卡 | 人人澡人人舔 | 天天干,天天操,天天射 | 亚洲综合色激情五月 | 国产免费影院 | 久久精品最新 | 婷婷六月久久 | 97视频在线观看视频免费视频 | 久草青青在线观看 | 日韩电影在线观看一区 | 91福利社区在线观看 | 国产一级黄色av | 成人一区在线观看 | 国产亚洲精品成人av久久ww | 国产一区免费视频 | 精品uu | 国产精品h在线观看 | 久久精品99国产精品亚洲最刺激 | 日韩免费三区 | 婷婷免费视频 | 久久国产精品久久精品 | 久久九九网站 | 久久字幕精品一区 | 黄色免费大全 | 999电影免费在线观看 | 国产麻豆果冻传媒在线观看 | 日韩一区二区在线免费观看 | 成人黄色电影在线观看 | 免费看污在线观看 | 久久久久久久精 | 国产精品系列在线观看 | 国产欧美高清 | 国产一区二区久久久 | 中文字幕第一页在线 | 久草在线观看 | 久久婷婷一区二区三区 | 黄色大片av | 亚洲伊人av| 91精品视频免费看 | 91桃色视频| 欧美另类亚洲 | 久久久久女人精品毛片九一 | 99亚洲精品 | 国产男男gay做爰 | 天天狠狠干 | 亚洲精品国偷自产在线99热 | 狠狠色伊人亚洲综合网站野外 | 色综合久久久久久久久五月 | 久草在线视频在线观看 | 最新日韩在线观看视频 | 久久综合操 | 狠狠色丁香婷婷综合久小说久 | 一区免费在线 | 91精选 | 欧美性久久久久久 | 欧美性天天| 51久久成人国产精品麻豆 | 亚洲视频www| 99国产情侣在线播放 | 久草在线免费色站 | 久久久夜色 | 五月婷婷激情网 | av看片在线| 日韩最新中文字幕 | 国产精品永久免费 | 天天综合狠狠精品 | 亚洲精品综合在线 | 在线成人免费av | 亚洲精品成人av在线 | 尤物97国产精品久久精品国产 | 天天干 天天摸 天天操 | 激情视频免费在线 | 蜜桃麻豆www久久囤产精品 | 欧美午夜剧场 | 深夜免费福利视频 | 97超碰国产精品女人人人爽 | 五月开心六月伊人色婷婷 | 热久久精品在线 | 中文在线天堂资源 | 97久久精品午夜一区二区 | 亚洲精品国偷拍自产在线观看 | 视频一区二区在线 | 精品国产精品国产偷麻豆 | 亚洲精品理论片 | 日韩激情小视频 | 亚洲精品高清视频在线观看 | 免费99视频 | 亚洲电影黄色 | 色婷婷亚洲综合 | 国产精品12 | 色视频成人在线观看免 | 亚洲人成人在线 | 久久久激情网 | 国产96av| www.一区二区三区 | 在线国产专区 | 亚洲视频 在线观看 | 久久97精品 | 特黄免费av | 最近中文字幕免费视频 | 久久精品久久久久 | 亚洲精品久久激情国产片 | 99精品国产福利在线观看免费 | 色中射| 国产亚洲欧美精品久久久久久 | 久久久久亚洲国产 | 五月开心色 | 亚洲精品国产精品国自产在线 | 国产69久久久欧美一级 | 国产精品成人久久久 | 就操操久久 | 亚洲欧美视频在线播放 | 亚洲欧美怡红院 | 狠狠的干 | 亚洲精品国精品久久99热一 | 日韩中文字幕一区 | 精品在线视频一区 | 色综合网在线 | 99看视频在线观看 | 日韩在线观看第一页 | 国产色拍拍拍拍在线精品 | 成人黄大片 | 一区二区免费不卡在线 | 久久精品99国产精品 | 国产成人333kkk| 九九热只有精品 | 国产成人av免费在线观看 | 亚洲精品1234区 | 日韩小视频网站 | 精品uu| 丁香影院在线 | 国内一区二区视频 | 免费av福利 | 欧美污污网站 | 永久中文字幕 | 欧美一区二区三区在线看 | 中文国产字幕在线观看 | 亚洲精品免费观看视频 | 91av视频免费在线观看 | 91欧美精品| 麻豆91精品视频 | 99视频导航| 国产精品久久久久久久久搜平片 | 久久久亚洲精品 | 色狠狠操 | 日韩精品在线视频 | 天天爽天天爽天天爽 | 一区二区三区四区影院 | 国产精品第三页 | 午夜精品福利一区二区 | 91精品一区二区三区蜜桃 | 国产一级在线视频 | 亚洲一区欧美精品 | 成人app在线免费观看 | 99免费在线观看视频 | 中文字幕888| 91亚洲精品久久久久图片蜜桃 | 91理论片午午伦夜理片久久 | 91精品在线免费观看 | www.婷婷com | 国产美女精品视频 | 在线综合 亚洲 欧美在线视频 | 欧美va天堂在线电影 | 4438全国亚洲精品观看视频 | 99av在线视频 | 精品视频在线看 | 日韩视频中文 | 麻豆91精品视频 | 伊人色播 | 国产理论片在线观看 | 国产欧美最新羞羞视频在线观看 | 中文在线免费一区三区 | 在线综合色 | 欧美一级视频免费看 | 国产精品久久久久久久久久99 | 欧美成人视 | 网站在线观看日韩 | 97超碰福利久久精品 | 色综合欧洲 | 在线免费黄色av | 国产精品岛国久久久久久久久红粉 | 视频在线观看日韩 | 日韩最新在线视频 | 国产一区二区免费在线观看 | 久草在线视频网 | 国产一级三级 | 亚洲精品小区久久久久久 | 亚洲日日射 | 日韩欧美在线观看一区二区 | 日韩免费网址 | 久久久久国产一区二区三区四区 | 免费a级毛片在线看 | 欧美久久综合 | 午夜男人影院 | 五月天久久婷婷 | 麻花天美星空视频 | 日韩av一区二区在线影视 | www.97视频| 欧美 日韩 视频 | 国内精品在线看 | 国精产品满18岁在线 | 国产高清日韩欧美 | 欧美老少交| 欧美视频一区二 | 一区二区三区在线视频观看58 | www久久久久 |