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

OpenGL特殊光處理

 目 錄
  14.1 光照模型
  14.2 光源位置與衰減
  14.3 聚光和多光源
  14.4 光源位置與方向的控制
  14.5 輻射光

 

  本章內容是基礎篇第七章的補充和提高。這一章主要講述一些特殊光效果處理,如全局環境光、雙面光照、光的衰減、聚光、多光源、光源位置的改變等等。讀者若有興趣,可以按照本章例程的方法作出許多變換,則會出現意想不到的效果,充分發揮你的藝術才能。

14.1、光照模型
  OpenGL光照模型的概念由一下三部分組成:1)全局泛光強度、2)視點位置在景物附近還是在無窮遠處、3)物體的正面和背面是否分別進行光照計算。

  14.1.1 全局環境光
  正如前面基礎篇中所提到的一樣,每個光源都能對一個場景提供環境光。此外,還有一個環境光,它不來自任何特定的光源,即稱為全局環境光。下面用參數GL_LIGHT_MODEL_AMBIENT來說明全局環境光的RGBA強度:
GLfloat lmodel_ambient[]={0.2,0.2,0.2,1.0};
glLightModelfv(GLLIGHT_MODEL_AMBIENT,lmodel_ambient);

  在這個例子中,lmodel_ambient所用的值為GL_LIGHT_MODEL_AMBIENT的缺省值。這些數值產生小量的白色環境光。

  14.1.2 近視點與無窮遠視點
  視點位置能影響鏡面高光的計算,也就是說,頂點的高光強度依賴于頂點法向量,從頂點到光源的方向和從頂點到視點的方向。實際上,調用光照函數并不能移動視點。但是可以對光照計算作出不同的假定,這樣視點似乎移動了。對于一個無窮遠視點,視點到任何頂點的方向保持固定,缺省時為無窮遠視點。對于一個近視點,物體每個頂點到視點的方向是不同的,需要逐個計算,從而整體性能降低,但效果更真實。下面一句函數代碼是假定為近視 點:
 

glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);

  這個調用把視點放在視點坐標系的原點處。若要切換到無窮遠視點,只需將參數GL_TRUE 改為GL_FALSE即可。

  14.1.3 雙面光照
  光照計算通常是對所有多邊形進行的,無論其是正面或反面。一般情況下,設置光照條件時總是正面多邊形,因此不能對背面多邊形進行正確地光照。在基礎篇的第七章中的例子里,物體是一個球,只有正面多邊形能看到,即球的外部可見,這種情況下不必考慮背面光照。若球被砍開,其內部的曲面是可見的,那么對內部多邊形需進行光照計算,這時應該調用如下函數:

glLightModeli(LIGHT_MODEL_TWO_SIDE,GL_TRUE);

  啟動雙面光照。實際上,這就是OpenGL給背面多邊形定義一個相反的法向量(相對于正面多邊形而言)。一般來說,這意味著可見正面多邊形和可見反面多邊形的法向量都面朝觀察者,而不是向里,這樣所有多邊形都能進行正確的光照。關閉雙面光照,只需將參數GL_TRUE改為GL_FALSE即可。

14.2、光源位置與衰減
  在基礎篇中已經提到過,光源有無窮遠光源和近光源兩種形式。無窮遠光源又稱作定向光源,即這種光到達物體時是平行光,例如現實生活中的太陽光。近光源又稱作定位光源,光源在場景中的位置影響場景的光照效果,尤其影響光到達物體的方向。臺燈是定位光源的范例。在以前所有與光照有關的例子里都采用的是定向光源,如:
 

GLfloat light_position[]={1.0,1.0,1.0,0.0};
glLightfv(GL_LIGHT0,GL_POSITION,light_position);

  光源位置坐標采用的齊次坐標(x, y, z, w),這里的w為0,所以相應的光源是定向光,(x, y, z)描述光源的方向,這個方向也要進行模型變換。GL_POSITION的缺省值是(0.0, 0.0, 1.0, 0.0),它定義了一個方向指向Z負軸的平行光源。若w非零,光源為定位光源。(x, y, z, w)指定光源在齊次坐標系下的具體位置,這個位置經過模型變換等在視點坐標系下保存下來。
  真實的光,離光源越遠則光強越小。因為定向光源是無窮遠光源,因此距離的變換對光強的影響幾乎沒有,所以定向光沒有衰減,而定位光有衰減。OpenGL的光衰減是通過光源的發光量乘以衰減因子計算出來的。其中衰減因子在第十章表10-2中說明過。缺省狀態下,常數衰減因子是1.0,其余兩個因子都是0.0。用戶也可以自己定義這些值,如:
 

glLightf(GL_LIGHT0,GL_CONSTANT_ATTENUATION,2.0);
glLightf(GL_LIGHT0,GL_LINEAR_ATTENUATION,1.0);
glLightf(GL_LIGHT0,GL_QUADRATIC_ATTENUATION,0.5);

  注意:環境光、漫反射光和鏡面光的強度都衰減,只有輻射光和全局環境光的強度不衰減。

14.3、聚光和多光源

  14.3.1 聚光
  定位光源可以定義成聚光燈形式,即將光的形狀限制在一個圓錐內。OpenGL中聚光的定義有以下幾步:
  1)定義聚光源位置。因為聚光源也是定向光源,所以他的位置同一般定向光一樣。如:

 

GLfloat light_position[]={1.0,1.0,1.0,1.0};
glLightfv(GL_LIGHT0,LIGHT_POSITION,light_position);

  2)定義聚光截止角。參數GL_SPOT_CUTOFF給定光錐的軸與中心線的夾角,也可說成是光錐頂角的一半,如圖14-1所示。缺省時,這個參數為180.0,即頂角為360度,光向所有的方向發射,因此聚光關閉。一般在聚光啟動情況下,聚光截止角限制在[0.0, 90.0] 之間,如下面一行代碼設置截止角為45度:
 

glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,45.0);

  3)定義聚光方向。聚光方向決定光錐的軸,它齊次坐標定義,其缺省值為(0.0, 0.0, -1.0),即指向Z負軸。聚光方向也要進行幾何變換,其結果保存在視點坐標系中。它的定義如下:
 

GLfloat spot_direction[]={-1.0,-1.0,0.0};
glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,spot_direction);

  4)定義聚光指數。參數GL_SPOT_EXPONENT控制光的集中程度,光錐中心的光強最大,越靠邊的光強越小,缺省時為0。如:
 

glLightf(GL_LIGHT0,GL_SPOT_EXPONENT,2.0);

 此外,除了定義聚光指數控制光錐內光強的分布,還可利用上一節所講的衰減因子的設置來實現,因為衰減因子與光強相乘得最終光強值。

  14.3.2 多光源及例程
  在前面已提到過場景中最多可以設置八個光源(根據OpenGL的具體實現也許會更多一些)。在多光源情況下,OpenGL需計算每個頂點從每個光源接受的光強,這樣會增加計算量,降低性能,因此在實時仿真中最好盡可能地減少光源數目。在前面都已討論過八個光源的常數:GL_LIGHT0、GL_LIGHT1、…、LIGHT7,注意:GL_LIGHT0的參數缺省值與其它光源的參數缺省值不同。下面這段代碼定義了紅色的聚光:

 

GLfloat light1_ambient[]= { 0.2, 0.2, 0.2, 1.0 };
GLfloat light1_diffuse[]= { 1.0, 0.0, 0.0, 1.0 };
GLfloat light1_specular[] = { 1.0, 0.6, 0.6, 1.0 };
GLfloat light1_position[] = { -3.0, -3.0, 3.0, 1.0 };
 
GLfloat spot_direction[]={ 1.0,1.0,-1.0}; 
 
glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient);
glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse);
glLightfv(GL_LIGHT1, GL_SPECULAR,light1_specular);
glLightfv(GL_LIGHT1, GL_POSITION,light1_position);
 
glLightf (GL_LIGHT1, GL_SPOT_CUTOFF, 30.0);
glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION,spot_direction);
 
glEnable(GL_LIGHT1);
 
// 這段代碼描述的是一個紅色的立方體,用它來代表所定義的聚光光源 //
// 可加到程序的函數display()中去。 //
 
glPushMatrix();
glTranslated (-3.0, -3.0, 3.0);
glDisable (GL_LIGHTING);
glColor3f (1.0, 0.0, 0.0);
auxWireCube (0.1);
glEnable (GL_LIGHTING);
glPopMatrix ();
 
//////////////////////////////////////////////////////////////////

  將這些代碼加到基礎篇第十章光照的例程(light2.c)中去:

  例14-1 聚光和多光源運用例程spmulght.c
 

#include "glos.h"
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
 
void myinit(void);
void CALLBACK myReshape(GLsizei w, GLsizei h);
void CALLBACK display(void);
 
/* 初始化光源、材質等 */
void myinit(void)
{
  GLfloat mat_ambient[]= { 0.2, 0.2, 0.2, 1.0 };
  GLfloat mat_diffuse[]= { 0.8, 0.8, 0.8, 1.0 };
  GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
  GLfloat mat_shininess[] = { 50.0 };
 
  GLfloat light0_diffuse[]= { 0.0, 0.0, 1.0, 1.0};
  GLfloat light0_position[] = { 1.0, 1.0, 1.0, 0.0 };
 
  GLfloat light1_ambient[]= { 0.2, 0.2, 0.2, 1.0 };
  GLfloat light1_diffuse[]= { 1.0, 0.0, 0.0, 1.0 };
  GLfloat light1_specular[] = { 1.0, 0.6, 0.6, 1.0 };
  GLfloat light1_position[] = { -3.0, -3.0, 3.0, 1.0 };
 
  GLfloat spot_direction[]={ 1.0,1.0,-1.0};
 
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  glMaterialfv(GL_FRONT, GL_SHININESS,mat_shininess);
 
  glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
  glLightfv(GL_LIGHT0, GL_POSITION,light0_position);
 
  glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient);
  glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse);
  glLightfv(GL_LIGHT1, GL_SPECULAR,light1_specular);
  glLightfv(GL_LIGHT1, GL_POSITION,light1_position);
 
  glLightf (GL_LIGHT1, GL_SPOT_CUTOFF, 30.0);
  glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION,spot_direction);
 
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  glEnable(GL_LIGHT1);
  glDepthFunc(GL_LESS);
  glEnable(GL_DEPTH_TEST);
}
 
void CALLBACK display(void)
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
  glPushMatrix();
  glTranslated (-3.0, -3.0, 3.0);
  glDisable (GL_LIGHTING);
  glColor3f (1.0, 0.0, 0.0);
  auxWireCube (0.1); 
  glEnable (GL_LIGHTING);
  glPopMatrix ();
 
  auxSolidSphere(2.0);
  glFlush();
}
 
void CALLBACK myReshape(GLsizei w, GLsizei h)
{
  glViewport(0, 0, w, h);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  if (w <= h)
    glOrtho (-5.5, 5.5, -5.5*(GLfloat)h/(GLfloat)w, 5.5*(GLfloat)h/(GLfloat)w,
    -10.0, 10.0);
  else
    glOrtho (-5.5*(GLfloat)w/(GLfloat)h, 5.5*(GLfloat)w/(GLfloat)h,
    -5.5, 5.5, -10.0, 10.0);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
}
 
void main(void)
{
  auxInitDisplayMode (AUX_SINGLE | AUX_RGBA);
  auxInitPosition (0, 0, 500, 500);
  auxInitWindow ("Spotlight and Multi_lights ");
  myinit();
  auxReshapeFunc (myReshape);
  auxMainLoop(display);
}
  以上程序運行結果是球被兩個光源照射,一個是藍色的定向光,另一個紅色的是聚光。

 
圖14-1 聚光與多光源

14.4、光源位置與方向的控制
  OpenGL光源的位置和方向與其它幾何圖元的位置和方向一樣都必須經過變換矩陣的作用。尤其是當用glLight*()說明光源的位置和方向時,位置和方向都要經過當前變換矩陣的作用并保存在視點坐標系中,注意投影矩陣變換對它們不起作用。OpenGL可通過調整光源函數和視點變換函數在程序中的相對位置來獲得三種不同的效果:1)光源位置保持固定、2)光源繞靜止物體移動、3)光源隨視點移動。
  在第一種情況下,為獲得光源位置固定的效果,必須在所有視點和模型變換之后設置光源位置。第二種情況下,有兩種方法可以達到這種效果,一種是在模型變換后設置光源位置,變換的改變將修改光源位置;另一種是使物體和視點繞光源移動,相對地光源就能繞物體移動了。第三種情況下,要建立一個沿視線移動的光源,必須在視點變換之前設置光源位置,則視點變換按同樣的方式影響光源和視點。下面有一個光源移動的例子:

  例14-1 光源移動例程mvlight.c
 
 
#include "glos.h"
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
 
void myinit(void);
void CALLBACK movelight (AUX_EVENTREC *event);
void CALLBACK display(void);
void CALLBACK myReshape(GLsizei w, GLsizei h);
 
static int step = 0;
 
void CALLBACK movelight (AUX_EVENTREC *event)
{
  step = (step + 15) % 360;
}
 
void myinit (void)
{
  GLfloat mat_diffuse[]={0.0,0.5,1.0,1.0};
  GLfloat mat_ambient[]={0.0,0.2,1.0,1.0};
  GLfloat light_diffuse[]={1.0,1.0,1.0,1.0};
  GLfloat light_ambient[]={0.0,0.5,0.5,1.0};
 
  glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mat_diffuse);
  glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
  glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
 
  glDepthFunc(GL_LESS);
  glEnable(GL_DEPTH_TEST);
}
 
void CALLBACK display(void)
{
  GLfloat position[] = { 0.0, 0.0, 1.5, 1.0 };
 
  glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glPushMatrix ();
  glTranslatef (0.0, 0.0, -5.0);
 
  glPushMatrix ();
  glRotated ((GLdouble) step, -1.0, 1.0, 1.0);
  glRotated (0.0, 1.0, 0.0, 0.0);
  glLightfv (GL_LIGHT0, GL_POSITION, position);
 
  glTranslated (0.0, 0.0, 1.5);
  glDisable (GL_LIGHTING);
  glColor3f (1.0, 1.0, 0.0);
  auxWireSphere (0.1);
  glEnable (GL_LIGHTING);
  glPopMatrix ();
 
  auxSolidTorus (0.275, 0.85);
  glPopMatrix ();
  glFlush ();
}
 
void CALLBACK myReshape(GLsizei w, GLsizei h)
{
  glViewport(0, 0, w, h);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(40.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
  glMatrixMode(GL_MODELVIEW);
}
 
void main(void)
{
  auxInitDisplayMode (AUX_SINGLE | AUX_RGBA);
  auxInitPosition (0, 0, 500, 500);
  auxInitWindow ("Moving Light");
  myinit();
  auxMouseFunc (AUX_LEFTBUTTON, AUX_MOUSEDOWN, movelight);
  auxReshapeFunc (myReshape);
  auxMainLoop(display);
}
  以上程序運行結果是在屏幕中央顯示一個藍色的環形圈,按下鼠標左鍵則可移動光源,其中一個黃色的小球代表光源。

 
圖14-2 光源移動

14.5、輻射光
  在前面的章節中已經應用了輻射光,可以參見10.4.4材質改變的例程(chgmat1.c)的運行效果。這里再一次強調提出,通過給GL_EMISSION定義一個RGBA值,可以使物體看起來象發出這種 顏色的光一樣,以達到某種特殊效果。實際上,現實生活中的物體除光源外都不發光,但我們可以利用這一特性來模擬燈和其他光源。代碼舉例如下:
 
GLfloat mat_emission[]={0.3,0.3,0.5,0.0};
glMaterialfv(GL_FRONT,GL_EMISSION,mat_emission);

  這樣,物體看起來稍微有點發光。比如繪制一個打開的臺燈,就可以將一個小球的材質定義成上述形式,并且在小球內部建立一個聚光源,這樣臺燈的燈泡效果就出來了。

posted on 2006-01-17 01:09 zmj 閱讀(4303) 評論(1)  編輯 收藏 引用

評論

# re: OpenGL特殊光處理 2008-12-29 21:08 sosoyoyo

你好,我在做圖形學最后的大作業可否麻煩你把這個源代碼發給我,謝謝,sosoyoyo918@sina.com  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美视频在线看| 欧美国产免费| 激情成人亚洲| 国产日韩精品在线| 国产欧美精品日韩精品| 国产精品亚洲一区| 国内久久婷婷综合| 亚洲国产老妈| 夜夜嗨av色综合久久久综合网| 中文日韩在线视频| 欧美在线免费观看| 欧美va天堂| 99精品欧美一区二区蜜桃免费| 亚洲一区二区精品在线| 久久成人精品无人区| 欧美91精品| 国产精品手机在线| 精品99一区二区| 亚洲深夜影院| 久久综合网色—综合色88| 亚洲精品国产精品久久清纯直播| 亚洲电影有码| 午夜国产精品视频免费体验区| 久久国产一区二区| 欧美揉bbbbb揉bbbbb| 伊人成人在线| 欧美一区二区三区男人的天堂| 免费观看一区| 午夜精品在线观看| 欧美人与禽性xxxxx杂性| 国产欧美日韩综合| a4yy欧美一区二区三区| 久久夜色精品国产噜噜av| 99国产精品| 欧美 日韩 国产在线 | 国产精品99久久久久久久女警| 欧美亚洲日本国产| 欧美网站在线| 亚洲精品日韩在线观看| 久久久久久久尹人综合网亚洲| 亚洲三级视频| 欧美成人免费观看| 1024日韩| 久久综合狠狠综合久久激情| 一区二区三区欧美在线| 欧美激情区在线播放| 在线观看欧美黄色| 久久人人97超碰精品888 | 老司机精品视频网站| 国产日韩精品一区二区| 亚洲一区二区三区影院| 亚洲另类黄色| 欧美精品日韩| 亚洲精品之草原avav久久| 麻豆九一精品爱看视频在线观看免费| 亚洲一区三区电影在线观看| 欧美四级在线观看| 亚洲免费影院| 亚洲午夜久久久| 国产精品久久综合| 欧美一区二区国产| 西西人体一区二区| 国内激情久久| 欧美大成色www永久网站婷| 久久一区激情| 亚洲美女视频在线观看| 亚洲人成啪啪网站| 欧美精品国产精品日韩精品| 亚洲美女电影在线| 一区二区三区视频观看| 国产精品海角社区在线观看| 亚洲在线免费| 午夜视频在线观看一区二区| 国产热re99久久6国产精品| 久久精品亚洲精品国产欧美kt∨| 欧美一区二区视频在线观看2020| 国产一区二区三区久久 | 先锋影音一区二区三区| 亚洲女人小视频在线观看| 国产视频欧美| 欧美ab在线视频| 欧美激情一区二区三区蜜桃视频| 一区二区激情小说| 亚洲一区二区三区影院| 韩国精品一区二区三区| 亚洲国产高清在线观看视频| 欧美日韩三区| 久久国产精品电影| 你懂的亚洲视频| 亚洲欧美日韩在线观看a三区| 香蕉av福利精品导航| 亚洲经典自拍| 亚洲女人av| 亚洲欧洲日本在线| 亚洲男人的天堂在线aⅴ视频| 在线欧美三区| 亚洲午夜久久久| 亚洲高清一区二| 宅男在线国产精品| 在线播放日韩| 亚洲欧美日韩精品久久久| 亚洲国产福利在线| 亚洲欧美日韩成人高清在线一区| 亚洲国产一区二区a毛片| 亚洲天堂成人在线观看| 亚洲国产一区二区三区a毛片 | 欧美大片一区二区三区| 国产精品成人在线观看| 免费在线观看精品| 国产精品一区二区三区成人| 亚洲国产精品黑人久久久| 国产伦精品一区二区三区免费 | 国产亚洲一区二区三区| 日韩亚洲在线观看| 亚洲国产精品一区在线观看不卡| 在线视频免费在线观看一区二区| 曰韩精品一区二区| 欧美在线亚洲| 欧美一级成年大片在线观看| 欧美激情精品久久久久久蜜臀 | 国外成人在线| 亚洲免费在线视频| 亚洲欧美一区二区三区在线| 欧美另类女人| 亚洲福利视频三区| 韩日精品视频一区| 亚洲欧美资源在线| 亚洲欧美久久久| 欧美深夜福利| 亚洲精品美女在线观看播放| 亚洲激情二区| 农村妇女精品| 亚洲福利视频一区二区| 亚洲精品久久久久久久久久久久久| 久久精品国产久精国产思思| 久久国产黑丝| 激情懂色av一区av二区av| 香蕉成人久久| 久热国产精品视频| 亚洲第一精品夜夜躁人人躁| 久久久精品性| 欧美.www| 亚洲精品网站在线播放gif| 欧美阿v一级看视频| 亚洲国产高清在线观看视频| 日韩亚洲欧美在线观看| 欧美日韩成人一区二区| 一本久道综合久久精品| 亚洲欧美日韩网| 国产精品自在线| 久久av一区| 欧美成年人网| 99国产精品国产精品久久| 欧美日韩一区二区三| 亚洲一二三区精品| 久久久久综合| 日韩亚洲欧美在线观看| 欧美日韩三级| 欧美在线影院| 亚洲激情视频在线播放| 亚洲综合首页| 好看的日韩视频| 蜜臀91精品一区二区三区| 亚洲精品三级| 午夜精品福利一区二区蜜股av| 国产一区二区日韩精品欧美精品 | 国产精品一区二区在线观看网站 | 国产视频一区二区三区在线观看| 久久精品首页| 一区二区av在线| 久久久亚洲人| 夜夜嗨av色一区二区不卡| 国产亚洲亚洲| 欧美视频中文一区二区三区在线观看| 欧美一级理论片| 最新国产乱人伦偷精品免费网站 | 亚洲精品乱码久久久久久蜜桃麻豆| 欧美日韩国产成人在线91| 午夜在线一区二区| 亚洲欧洲精品一区| 久久精品中文字幕一区| 亚洲另类自拍| 狠狠色伊人亚洲综合成人| 欧美日韩免费观看一区| 久久精品国产免费看久久精品| 亚洲激情欧美| 免费av成人在线| 午夜久久久久久| 一本色道精品久久一区二区三区| 国产精品一级| 欧美日韩mv| 美日韩在线观看| 欧美一级在线播放| 亚洲视频精品| 亚洲三级色网| 亚洲国产成人久久综合一区| 久久久精品日韩欧美| 午夜精品久久久久影视 | 亚洲神马久久| 在线视频欧美日韩|