青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 132  文章 - 51  trackbacks - 0
<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用鏈接

留言簿(7)

隨筆分類

隨筆檔案

文章分類

文章檔案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

混合是什么呢?混合就是把兩種顏色混在一起。具體一點(diǎn),就是把某一像素位置原來的顏色和將要畫上去的顏色,通過某種方式混在一起,從而實(shí)現(xiàn)特殊的效果。
假設(shè)我們需要繪制這樣一個(gè)場(chǎng)景:透過紅色的玻璃去看綠色的物體,那么可以先繪制綠色的物體,再繪制紅色玻璃。在繪制紅色玻璃的時(shí)候,利用“混合”功能,把將要繪制上去的紅色和原來的綠色進(jìn)行混合,于是得到一種新的顏色,看上去就好像玻璃是半透明的。
要使用OpenGL的混合功能,只需要調(diào)用:glEnable(GL_BLEND);即可。
要關(guān)閉OpenGL的混合功能,只需要調(diào)用:glDisable(GL_BLEND);即可。
注意:只有在RGBA模式下,才可以使用混合功能,顏色索引模式下是無法使用混合功能的。
一、源因子和目標(biāo)因子
前面我們已經(jīng)提到,混合需要把原來的顏色和將要畫上去的顏色找出來,經(jīng)過某種方式處理后得到一種新的顏色。這里把將要畫上去的顏色稱為“源顏色”,把原來的顏色稱為“目標(biāo)顏色”。
OpenGL 會(huì)把源顏色和目標(biāo)顏色各自取出,并乘以一個(gè)系數(shù)(源顏色乘以的系數(shù)稱為“源因子”,目標(biāo)顏色乘以的系數(shù)稱為“目標(biāo)因子”),然后相加,這樣就得到了新的顏 色。(也可以不是相加,新版本的OpenGL可以設(shè)置運(yùn)算方式,包括加、減、取兩者中較大的、取兩者中較小的、邏輯運(yùn)算等,但我們這里為了簡(jiǎn)單起見,不討 論這個(gè)了)
下面用數(shù)學(xué)公式來表達(dá)一下這個(gè)運(yùn)算方式。假設(shè)源顏色的四個(gè)分量(指紅色,綠色,藍(lán)色,alpha值)是(Rs, Gs, Bs,  As),目標(biāo)顏色的四個(gè)分量是(Rd, Gd, Bd, Ad),又設(shè)源因子為(Sr, Sg, Sb, Sa),目標(biāo)因子為(Dr, Dg, Db,  Da)。則混合產(chǎn)生的新顏色可以表示為:
(Rs*Sr+Rd*Dr, Gs*Sg+Gd*Dg, Bs*Sb+Bd*Db, As*Sa+Ad*Da)
當(dāng)然了,如果顏色的某一分量超過了1.0,則它會(huì)被自動(dòng)截取為1.0,不需要考慮越界的問題。

源因子和目標(biāo)因子是可以通過glBlendFunc函數(shù)來進(jìn)行設(shè)置的。glBlendFunc有兩個(gè)參數(shù),前者表示源因子,后者表示目標(biāo)因子。這兩個(gè)參數(shù)可以是多種值,下面介紹比較常用的幾種。
GL_ZERO:     表示使用0.0作為因子,實(shí)際上相當(dāng)于不使用這種顏色參與混合運(yùn)算。
GL_ONE:      表示使用1.0作為因子,實(shí)際上相當(dāng)于完全的使用了這種顏色參與混合運(yùn)算。
GL_SRC_ALPHA:表示使用源顏色的alpha值來作為因子。
GL_DST_ALPHA:表示使用目標(biāo)顏色的alpha值來作為因子。
GL_ONE_MINUS_SRC_ALPHA:表示用1.0減去源顏色的alpha值來作為因子。
GL_ONE_MINUS_DST_ALPHA:表示用1.0減去目標(biāo)顏色的alpha值來作為因子。
除 此以外,還有GL_SRC_COLOR(把源顏色的四個(gè)分量分別作為因子的四個(gè)分量)、GL_ONE_MINUS_SRC_COLOR、 GL_DST_COLOR、GL_ONE_MINUS_DST_COLOR等,前兩個(gè)在OpenGL舊版本中只能用于設(shè)置目標(biāo)因子,后兩個(gè)在OpenGL 舊版本中只能用于設(shè)置源因子。新版本的OpenGL則沒有這個(gè)限制,并且支持新的GL_CONST_COLOR(設(shè)定一種常數(shù)顏色,將其四個(gè)分量分別作為 因子的四個(gè)分量)、GL_ONE_MINUS_CONST_COLOR、GL_CONST_ALPHA、 GL_ONE_MINUS_CONST_ALPHA。另外還有GL_SRC_ALPHA_SATURATE。新版本的OpenGL還允許顏色的alpha 值和RGB值采用不同的混合因子。但這些都不是我們現(xiàn)在所需要了解的。畢竟這還是入門教材,不需要整得太復(fù)雜~

舉例來說:

(將要畫上去的顏色稱為“源顏色”,把原來的顏色稱為“目標(biāo)顏色”。)
如果設(shè)置了glBlendFunc(GL_ONE, GL_ZERO);,則表示完全使用源顏色,完全不使用目標(biāo)顏色,因此畫面效果和不使用混合的時(shí)候一致(當(dāng)然效率可能會(huì)低一點(diǎn)點(diǎn))。如果沒有設(shè)置源因子和目標(biāo)因子,則默認(rèn)情況就是這樣的設(shè)置。
如果設(shè)置了glBlendFunc(GL_ZERO, GL_ONE);,則表示完全不使用源顏色,因此無論你想畫什么,最后都不會(huì)被畫上去了。(但這并不是說這樣設(shè)置就沒有用,有些時(shí)候可能有特殊用途)
如 果設(shè)置了glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);,則表示源顏色乘以自身的alpha 值,目標(biāo)顏色乘以1.0減去源顏色的alpha值,這樣一來,源顏色的alpha值越大,則產(chǎn)生的新顏色中源顏色所占比例就越大,而目標(biāo)顏色所占比例則減 小。這種情況下,我們可以簡(jiǎn)單的將源顏色的alpha值理解為“不透明度”。這也是混合時(shí)最常用的方式。
如果設(shè)置了glBlendFunc(GL_ONE, GL_ONE);,則表示完全使用源顏色和目標(biāo)顏色,最終的顏色實(shí)際上就是兩種顏色的簡(jiǎn)單相加。例如紅色(1, 0, 0)和綠色(0, 1, 0)相加得到(1, 1, 0),結(jié)果為黃色。
注意:
所 謂源顏色和目標(biāo)顏色,是跟繪制的順序有關(guān)的。假如先繪制了一個(gè)紅色的物體,再在其上繪制綠色的物體。則綠色是源顏色,紅色是目標(biāo)顏色。如果順序反過來,則 紅色就是源顏色,綠色才是目標(biāo)顏色。在繪制時(shí),應(yīng)該注意順序,使得繪制的源顏色與設(shè)置的源因子對(duì)應(yīng),目標(biāo)顏色與設(shè)置的目標(biāo)因子對(duì)應(yīng)。不要被混亂的順序搞暈 了。

 

三、實(shí)現(xiàn)三維混合
也許你迫不及待的想要繪制一個(gè)三維的帶有半透明物體的場(chǎng)景了。但是現(xiàn)在恐怕還不行,還有一點(diǎn)是在進(jìn)行三維場(chǎng)景的混合時(shí)必須注意的,那就是深度緩沖。
深 度緩沖是這樣一段數(shù)據(jù),它記錄了每一個(gè)像素距離觀察者有多近。在啟用深度緩沖測(cè)試的情況下,如果將要繪制的像素比原來的像素更近,則像素將被繪制。否則, 像素就會(huì)被忽略掉,不進(jìn)行繪制。這在繪制不透明的物體時(shí)非常有用——不管是先繪制近的物體再繪制遠(yuǎn)的物體,還是先繪制遠(yuǎn)的物體再繪制近的物體,或者干脆以 混亂的順序進(jìn)行繪制,最后的顯示結(jié)果總是近的物體遮住遠(yuǎn)的物體。
然而在你需要實(shí)現(xiàn)半透明效果時(shí),發(fā)現(xiàn)一切都不是那么美好了。如果你繪制了一個(gè)近距離的半透明物體,則它在深度緩沖區(qū)內(nèi)保留了一些信息,使得遠(yuǎn)處的物體將無法再被繪制出來。雖然半透明的物體仍然半透明,但透過它看到的卻不是正確的內(nèi)容了。
要 解決以上問題,需要在繪制半透明物體時(shí)將深度緩沖區(qū)設(shè)置為只讀,這樣一來,雖然半透明物體被繪制上去了,深度緩沖區(qū)還保持在原來的狀態(tài)。如果再有一個(gè)物體 出現(xiàn)在半透明物體之后,在不透明物體之前,則它也可以被繪制(因?yàn)榇藭r(shí)深度緩沖區(qū)中記錄的是那個(gè)不透明物體的深度)。以后再要繪制不透明物體時(shí),只需要再 將深度緩沖區(qū)設(shè)置為可讀可寫的形式即可。嗯?你問我怎么繪制一個(gè)一部分半透明一部分不透明的物體?這個(gè)好辦,只需要把物體分為兩個(gè)部分,一部分全是半透明 的,一部分全是不透明的,分別繪制就可以了。
即使使用了以上技巧,我們?nèi)匀徊荒茈S心所欲的按照混亂順序來進(jìn)行繪制。必須是先繪制不透明的物體,然 后繪制透明的物體。否則,假設(shè)背景為藍(lán)色,近處一塊紅色玻璃,中間一個(gè)綠色物體。如果先繪制紅色半透明玻璃的話,它先和藍(lán)色背景進(jìn)行混合,則以后繪制中間 的綠色物體時(shí),想單獨(dú)與紅色玻璃混合已經(jīng)不能實(shí)現(xiàn)了。
總結(jié)起來,繪制順序就是:首先繪制所有不透明的物體。如果兩個(gè)物體都是不透明的,則誰先誰后 都沒有關(guān)系。然后,將深度緩沖區(qū)設(shè)置為只讀。接下來,繪制所有半透明的物體。如果兩個(gè)物體都是半透明的,則誰先誰后只需要根據(jù)自己的意愿(注意了,先繪制 的將成為“目標(biāo)顏色”,后繪制的將成為“源顏色”,所以繪制的順序?qū)?huì)對(duì)結(jié)果造成一些影響)。最后,將深度緩沖區(qū)設(shè)置為可讀可寫形式。
調(diào)用glDepthMask(GL_FALSE);可將深度緩沖區(qū)設(shè)置為只讀形式。調(diào)用glDepthMask(GL_TRUE);可將深度緩沖區(qū)設(shè)置為可讀可寫形式。
一 些網(wǎng)上的教程,包括大名鼎鼎的NeHe教程,都在使用三維混合時(shí)直接將深度緩沖區(qū)禁用,即調(diào)用glDisable(GL_DEPTH_TEST);。這樣 做并不正確。如果先繪制一個(gè)不透明的物體,再在其背后繪制半透明物體,本來后面的半透明物體將不會(huì)被顯示(被不透明的物體遮住了),但如果禁用深度緩沖, 則它仍然將會(huì)顯示,并進(jìn)行混合。NeHe提到某些顯卡在使用glDepthMask函數(shù)時(shí)可能存在一些問題,但可能是由于我的閱歷有限,并沒有發(fā)現(xiàn)這樣的 情況。

那么,實(shí)際的演示一下吧。我們來繪制一些半透明和不透明的球體。假設(shè)有三個(gè)球體,一個(gè)紅色不透明的,一個(gè)綠色半透明的,一個(gè)藍(lán)色半透明的。紅色最遠(yuǎn),綠色 在中間,藍(lán)色最近。根據(jù)前面所講述的內(nèi)容,紅色不透明球體必須首先繪制,而綠色和藍(lán)色則可以隨意修改順序。這里為了演示不注意設(shè)置深度緩沖的危害,我們故 意先繪制最近的藍(lán)色球體,再繪制綠色球體。
為了讓這些球體有一點(diǎn)立體感,我們使用光照。在(1, 1, -1)處設(shè)置一個(gè)白色的光源。代碼如下:
void setLight(void)
{
    static const GLfloat light_position[] = {1.0f, 1.0f, -1.0f, 1.0f};
    static const GLfloat light_ambient[]  = {0.2f, 0.2f, 0.2f, 1.0f};
    static const GLfloat light_diffuse[]  = {1.0f, 1.0f, 1.0f, 1.0f};
    static const GLfloat light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};

    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
    glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);

    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);
    glEnable(GL_DEPTH_TEST);
}
每一個(gè)球體顏色不同。所以它們的材質(zhì)也都不同。這里用一個(gè)函數(shù)來設(shè)置材質(zhì)。
void setMatirial(const GLfloat mat_diffuse[4], GLfloat mat_shininess)
{
    static const GLfloat mat_specular[] = {0.0f, 0.0f, 0.0f, 1.0f};
    static const GLfloat mat_emission[] = {0.0f, 0.0f, 0.0f, 1.0f};

    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR,  mat_specular);
    glMaterialfv(GL_FRONT, GL_EMISSION,  mat_emission);
    glMaterialf (GL_FRONT, GL_SHININESS, mat_shininess);
}
有了這兩個(gè)函數(shù),我們就可以根據(jù)前面的知識(shí)寫出整個(gè)程序代碼了。這里只給出了繪制的部分,其它部分大家可以自行完成。
void myDisplay(void)
{
    // 定義一些材質(zhì)顏色
    const static GLfloat red_color[] = {1.0f, 0.0f, 0.0f, 1.0f};
    const static GLfloat green_color[] = {0.0f, 1.0f, 0.0f, 0.3333f};
    const static GLfloat blue_color[] = {0.0f, 0.0f, 1.0f, 0.5f};

    // 清除屏幕
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // 啟動(dòng)混合并設(shè)置混合因子
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    // 設(shè)置光源
    setLight();

    // 以(0, 0, 0.5)為中心,繪制一個(gè)半徑為.3的不透明紅色球體(離觀察者最遠(yuǎn))
    setMatirial(red_color, 30.0);
    glPushMatrix();
    glTranslatef(0.0f, 0.0f, 0.5f);
    glutSolidSphere(0.3, 30, 30);
    glPopMatrix();

    // 下面將繪制半透明物體了,因此將深度緩沖設(shè)置為只讀
    glDepthMask(GL_FALSE);

    // 以(0.2, 0, -0.5)為中心,繪制一個(gè)半徑為.2的半透明藍(lán)色球體(離觀察者最近)
    setMatirial(blue_color, 30.0);
    glPushMatrix();
    glTranslatef(0.2f, 0.0f, -0.5f);
    glutSolidSphere(0.2, 30, 30);
    glPopMatrix();

    // 以(0.1, 0, 0)為中心,繪制一個(gè)半徑為.15的半透明綠色球體(在前兩個(gè)球體之間)
    setMatirial(green_color, 30.0);
    glPushMatrix();
    glTranslatef(0.1, 0, 0);
    glutSolidSphere(0.15, 30, 30);
    glPopMatrix();

    // 完成半透明物體的繪制,將深度緩沖區(qū)恢復(fù)為可讀可寫的形式
    glDepthMask(GL_TRUE);

    glutSwapBuffers();
}

大家也可以將上面兩處glDepthMask刪去,結(jié)果會(huì)看到最近的藍(lán)色球雖然是半透明的,但它的背后直接就是紅色球了,中間的綠色球沒有被正確繪制。

小結(jié):
本課介紹了OpenGL混合功能的相關(guān)知識(shí)。
混合就是在繪制時(shí),不是直接把新的顏色覆蓋在原來舊的顏色上,而是將新的顏色與舊的顏色經(jīng)過一定的運(yùn)算,從而產(chǎn)生新的顏色。新的顏色稱為源顏色,原來舊的顏色稱為目標(biāo)顏色。傳統(tǒng)意義上的混合,是將源顏色乘以源因子,目標(biāo)顏色乘以目標(biāo)因子,然后相加。
源 因子和目標(biāo)因子是可以設(shè)置的。源因子和目標(biāo)因子設(shè)置的不同直接導(dǎo)致混合結(jié)果的不同。將源顏色的alpha值作為源因子,用1.0減去源顏色alpha值作 為目標(biāo)因子,是一種常用的方式。這時(shí)候,源顏色的alpha值相當(dāng)于“不透明度”的作用。利用這一特點(diǎn)可以繪制出一些半透明的物體。
在進(jìn)行混合時(shí),繪制的順序十分重要。因?yàn)樵诶L制時(shí),正要繪制上去的是源顏色,原來存在的是目標(biāo)顏色,因此先繪制的物體就成為目標(biāo)顏色,后來繪制的則成為源顏色。繪制的順序要考慮清楚,將目標(biāo)顏色和設(shè)置的目標(biāo)因子相對(duì)應(yīng),源顏色和設(shè)置的源因子相對(duì)應(yīng)。
在進(jìn)行三維混合時(shí),不僅要考慮源因子和目標(biāo)因子,還應(yīng)該考慮深度緩沖區(qū)。必須先繪制所有不透明的物體,再繪制半透明的物體。在繪制半透明物體時(shí)前,還需要將深度緩沖區(qū)設(shè)置為只讀形式,否則可能出現(xiàn)畫面錯(cuò)誤


---------------------------------------------------------------------------------

關(guān)于透明,OpenGL/ES 中可以通過 blend (混色) 來簡(jiǎn)單實(shí)現(xiàn),混色的基本原理就是把要繪制的物體的顏色與屏幕上已經(jīng)繪制好的顏色以一定比例來混合,最后的顏色看上去就像半透明一樣。

要使用混合先要通過 glEnable 函數(shù)來啟用

1
glEnable(GL10.GL_BLEND);

然后通過 glBlendFunc 來設(shè)置下要使用的混合方法

1
glBlendFunc(sfactor, dfactor);

sfactor 及 dfactor 分別代表源和目標(biāo)顏色在混合時(shí)所占比重的枚舉常量。其中 sfactor 可取值包括:GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_SRC_ALPHA_SATURATE ; 而 dfactor 可取值包括:GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA。

以下說明及公式中所涉及顏色的R、G、B、A值都是指浮點(diǎn)形式,即范圍在 0.0f – 1.0f 之間。

在計(jì)算混色時(shí),首先是根據(jù)以上的枚舉得出源顏色和目標(biāo)顏色的系數(shù),然后分別與源和目標(biāo)顏色相乘(乘積大于1時(shí)取值1),然后再把得出的結(jié)果相加。那么如果假設(shè)根據(jù)以上枚舉得出的RGBA四個(gè)成分上的系數(shù)分別為 源 sfR, sfG, sfB, sfA, 目標(biāo) dfR, dfG, dfB, dfA, 源和目標(biāo)的顏色成分值分別用 sR, sG, sB, sA 和 dR, dG, dB, dA 表示的話, 最終結(jié)果色的 rR, rG, rB, rA 分別為:

rR = sR * sfR + dR * dfR
rG = sG * sfG + dG * dfG
rB = sB * sfB + dB * dfB
rA = sA * sfA + dA * dfA

以上 rR, rG, rB, rA 的值如果大于 1 則最終取值為 1 。

然后再來看看 xfR, xfG, xfB, xfA ( x => s / d )是怎么得出來的。

factor枚舉 xfR, xfG, xfB, xfA
GL_ZERO 0, 0, 0, 0
GL_ONE 1, 1, 1, 1
GL_SRC_COLOR sR, sG, sB, sA
GL_DST_COLOR dR, dG, dB, dA
GL_ONE_MINUS_SRC_COLOR 1-sR, 1-sG, 1-sB, 1-sA
GL_ONE_MINUS_DST_COLOR 1-dR, 1-dG, 1-dB, 1-dA
GL_SRC_ALPHA sA, sA, sA, sA
GL_DST_ALPHA dA, dA, dA, dA
GL_ONE_MINUS_SRC_ALPHA 1-sA, 1-sA, 1-sA, 1-sA
GL_ONE_MINUS_DST_ALPHA 1-dA, 1-dA, 1-dA, 1-dA
GL_SRC_ALPHA_SATURATE i, i, i, 1 *

上邊的表中最后的 i 取值為 min ( sA, 1-dA )

根據(jù)以上公式,

glBlendFunc(GL_ONE, GL_ONE); 即源與目標(biāo)顏色的RGBA分別相加。

glBlendFunc(GL_ONE, GL_ZERO); 即只取源顏色,這也是默認(rèn)值。

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); 是比較典型的半透明效果,如果源色 alpha 為0,則取目標(biāo)色,如果源色alpha為1,則取源色,否則視源色的alpha大小各取一部分。源色的alpha越大,則源色取的越多,最終結(jié)果源色的表現(xiàn)更強(qiáng);源色的alpha越小,則目標(biāo)色“透過”的越多。

此外在一般的渲染過程中,都會(huì)把有半透明效果的渲染放到后邊,先把不透明的部分在深度測(cè)試啟用的情況下渲染完, 再關(guān)閉深度測(cè)試寫入(glDepthMask(false)),并渲染半透明的部分。這樣就不會(huì)出現(xiàn)由于半透明且離鏡頭近的面被先渲染時(shí)污染深度緩沖了。

android-opengles-5-screenshot

posted on 2012-07-18 17:32 風(fēng)輕云淡 閱讀(5089) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OpenGL
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美巨乳波霸| 日韩视频一区二区三区在线播放免费观看 | 欧美成人一区在线| 久久久久国产一区二区三区四区| 午夜精品成人在线| 午夜精品久久久久久久蜜桃app| 亚洲在线一区| 久久精品夜色噜噜亚洲a∨| 蜜臀久久久99精品久久久久久| 久久一区二区精品| 亚洲区一区二区三区| 亚洲精品你懂的| 亚洲国产精品高清久久久| 99精品热6080yy久久| 亚洲一区二区三区精品在线| 亚洲欧美日韩成人| 久久午夜精品| 欧美日韩国产高清视频| 国产精品萝li| 在线视频国内自拍亚洲视频| 亚洲伦理在线观看| 亚洲一区在线免费| 久久久久久久一区二区| 亚洲国产成人午夜在线一区| 日韩一级网站| 久久久午夜精品| 欧美日韩在线看| 欧美一区二区日韩| 在线成人av网站| 欧美日韩亚洲免费| 国产亚洲综合性久久久影院| 亚洲大胆av| 亚洲中字在线| 亚洲丁香婷深爱综合| 亚洲在线国产日韩欧美| 蜜臀av性久久久久蜜臀aⅴ| 国产精品v日韩精品| 樱桃国产成人精品视频| 亚洲欧美日本在线| 亚洲国产精品视频| 久久大香伊蕉在人线观看热2| 欧美精品日韩| 亚洲第一区在线观看| 午夜视频在线观看一区二区| 亚洲大片在线| 久久精品盗摄| 国产毛片一区二区| 亚洲午夜国产成人av电影男同| 乱码第一页成人| 一区二区三区成人| 欧美二区乱c少妇| 国产字幕视频一区二区| 亚洲自拍16p| 亚洲精品久久嫩草网站秘色 | 午夜国产精品视频| 欧美日韩另类字幕中文| 亚洲欧洲三级| 欧美黄色日本| 久久这里有精品15一区二区三区 | 一本色道88久久加勒比精品| 六月婷婷久久| 久久久久久久久久久成人| 国产日韩精品电影| 久久精品二区三区| 久久精品国产亚洲一区二区三区 | 亚洲精品国产精品久久清纯直播| 久久蜜臀精品av| 久久aⅴ乱码一区二区三区| 国产精品日本一区二区| 亚洲欧美综合v| 亚洲视频电影图片偷拍一区| 欧美日韩视频| 亚洲一本视频| 正在播放亚洲一区| 国产精品视频最多的网站| 亚洲欧美激情视频在线观看一区二区三区| 亚洲国产精品久久久久秋霞影院| 久久综合网hezyo| 亚洲电影在线| 亚洲国产精品999| 欧美高清不卡在线| 中文欧美字幕免费| 久久婷婷人人澡人人喊人人爽| 香蕉久久夜色精品| 国户精品久久久久久久久久久不卡 | 亚洲欧美国产日韩中文字幕| 99精品欧美一区二区三区| 欧美日韩精品伦理作品在线免费观看| 99视频精品免费观看| 一区二区三区四区五区视频| 国产精品男gay被猛男狂揉视频| 亚洲欧美成人一区二区三区| 午夜精品短视频| 在线欧美不卡| 欧美伊人影院| 久久综合国产精品| 中日韩高清电影网| 午夜精品久久久久久久99水蜜桃 | 亚洲激情一区二区三区| 亚洲经典在线看| 国产精品黄色| 久久综合色影院| 欧美精品一区二区久久婷婷| 亚洲免费在线精品一区| 久久国产精品99国产| 亚洲乱码国产乱码精品精| 在线视频日韩精品| **欧美日韩vr在线| 一区二区三区产品免费精品久久75 | 玖玖国产精品视频| 欧美色图五月天| 久久久久久久999| 欧美美女bb生活片| 久久久www成人免费精品| 欧美丰满高潮xxxx喷水动漫| 性色av一区二区三区红粉影视| 久久亚洲色图| 欧美一站二站| 欧美日韩在线播放三区四区| 免费观看成人网| 国产精品美女久久久| 亚洲国产高清视频| 黄色日韩网站| 午夜电影亚洲| 亚洲综合成人在线| 欧美国产亚洲精品久久久8v| 久久精品国产精品亚洲| 欧美性片在线观看| 91久久夜色精品国产网站| 精品av久久久久电影| 午夜精品久久久久影视 | 欧美亚洲视频一区二区| 欧美成人国产va精品日本一级| 久久成人精品无人区| 欧美三级视频在线播放| 欧美夫妇交换俱乐部在线观看| 国产一区二区三区在线观看免费 | 欧美在线二区| 国产精品国产三级国产a| 亚洲国产精品一区二区久| 在线观看日韩国产| 欧美一区二区视频免费观看| 午夜电影亚洲| 欧美亚韩一区| 亚洲视频自拍偷拍| 亚洲自拍三区| 国产精品户外野外| 亚洲一二三区在线| 午夜一区在线| 国产精品午夜春色av| 亚洲尤物影院| 先锋影音一区二区三区| 国产精品久久久久99| 亚洲视频成人| 久久精品99国产精品日本| 欧美视频四区| 一区二区三区精品久久久| 亚洲一区二区三区中文字幕在线 | 一区二区欧美亚洲| 欧美三级午夜理伦三级中视频| 日韩亚洲精品电影| 亚洲免费视频观看| 国产裸体写真av一区二区| 亚洲嫩草精品久久| 久久久久免费视频| 美日韩精品免费观看视频| 在线亚洲伦理| 国产精品午夜电影| 亚洲视频一区二区免费在线观看| 亚洲午夜性刺激影院| 国产精品麻豆欧美日韩ww| 午夜精品久久| 亚洲国产日韩在线| 香蕉精品999视频一区二区 | 性久久久久久久久| 亚洲成色777777女色窝| 一区二区三区国产在线| 国产欧美一区二区三区在线看蜜臀| 久久精品女人的天堂av| 最新中文字幕一区二区三区| 午夜一区二区三视频在线观看 | 狠狠色狠狠色综合日日五| 欧美77777| 午夜免费电影一区在线观看| 欧美成人在线网站| 久久国产精品久久国产精品| 亚洲美女视频| 久久se精品一区精品二区| 91久久黄色| 久久久久国色av免费看影院| 亚洲精品偷拍| 国内精品福利| 国产精品久久久久aaaa九色| 久久一二三区| 亚洲尤物在线| 亚洲国产精品va在线观看黑人| 香蕉成人久久| 亚洲美女一区| 国产精品你懂得| 国产精品igao视频网网址不卡日韩|