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

  C++博客 :: 首頁 :: 聯系 ::  :: 管理
  163 Posts :: 4 Stories :: 350 Comments :: 0 Trackbacks

常用鏈接

留言簿(48)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 402860
  • 排名 - 59

最新評論

閱讀排行榜

評論排行榜

學習Texture Map紋理映射(貼圖)有很多好處。比方說您想讓一顆導彈飛過屏幕。根據前幾課的知識,我們最可行的辦法可能是很多個多邊形來構建導彈的輪廓并加上有趣的顏色。使用紋理映射,您可以使用真實的導彈圖像并讓它飛過屏幕。您覺得哪個更好看?照片還是一大堆三角形和四邊形?使用紋理映射的好處還不止是更好看,而且您的程序運行會更快。導彈貼圖可能只是一個飛過窗口的四邊形。一個由多邊形構建而來的導彈卻很可能包括成百上千的多邊形。很顯然,貼圖極大的節省了CPU時間。
   現在我們在第一課的代碼開始處增加五行新代碼。新增的第一行是#include <stdio.h>。它允許我們對文件進行操作,為了在后面的代碼中使用fopen(),我們增加了這一行。然后我們增加了三個新的浮點變量...xrotyrotzrot。這些變量用來使立方體繞X、Y、Z軸旋轉。最后一行GLuint texture[1]為一個紋理分配存儲空間。如果您需要不止一個的紋理,應該將數字1改成您所需要的數字。

  #include <windows.h>                    // Windows的頭文件
  #include <stdio.h>                     // 標準輸入/輸出庫的頭文件 (新增)
  #include <gl\\gl.h>                     // OpenGL32庫的頭文件
  #include <gl\\glu.h>                    // GLu32庫的頭文件
  #include <gl\\glaux.h>                   // GLaux庫的頭文件

  HGLRC hRC=NULL;                      // 永久著色描述表
  HDC hDC=NULL;                       // 私有GDI設備描述表
  HWND hWnd=NULL;                      // 保存我們的窗口句柄
  HINSTANCE hInstance;                    // 保存程序的實例

  bool keys[256];                      // 用于鍵盤例程的數組
  bool active=TRUE;                     // 窗口的活動標志,缺省為TRUE
  bool fullscreen=TRUE;                   // 全屏標志缺省設定成全屏模式

  GLfloat xrot;                       // X 旋轉量 (新增)
  GLfloat yrot;                       // Y 旋轉量 (新增)
  GLfloat zrot;                       // Z 旋轉量 (新增)

  GLuint texture[1];                     // 存儲一個紋理 (新增)

  LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);   // WndProc的定義

緊跟上面的代碼在ReSizeGLScene()之前,我們增加了下面這一段代碼。這段代碼用來加載位圖文件。如果文件不存在,返回NULL告知程序無法 加載位圖。在我開始解釋這段代碼之前,關于用作紋理的圖像我想有幾點十分重要,并且您必須明白。此圖像的寬和高必須是2的n次方;寬度和高度最小必須是 64象素;并且出于兼容性的原因,圖像的寬度和高度不應超過256象素。如果您的原始素材的寬度和高度不是64,128,256象素的話,使用圖像處理軟 件重新改變圖像的大小。可以肯定有辦法能繞過這些限制,但現在我們只需要用標準的紋理尺寸。
   首先,我們創建一個文件句柄。句柄是個用來鑒別資源的數值,它使程序能夠訪問此資源。我們開始先將句柄設為NULL 。

  AUX_RGBImageRec *LoadBMP(char *Filename)          // 載入位圖圖象
  {
       FILE *File=NULL;
                  // 文件句柄

   接下來檢查文件名是否已提供。因為LoadBMP()可以無參數調用,所以我們不得不檢查一下。您可不想什么都沒載入吧......。

      if (!Filename)                   // 確保文件名已提供。
      {
          return NULL;               // 如果沒提供,返回 NULL
      }

   接著檢查文件是否存在。下面這一行嘗試打開文件。

      File=fopen(Filename,"r");              // 嘗試打開文件

   如果我們能打開文件的話,很顯然文件是存在的。使用fclose(File) 關閉文件。auxDIBImageLoad(Filename) 讀取圖象數據并將其返回。

      if (File)                      // 文件存在么?
      {
         fclose(File);
                 // 關閉句柄
        return auxDIBImageLoad(Filename);       // 載入位圖并返回指針
      }

   如果我們不能打開文件,我們將返回NULL。這意味著文件無法載入。程序在后面將檢查文件是否已載入。如果沒有,我們將退出程序并彈出錯誤消息。

      return NULL;                    // 如果載入失敗,返回 NULL
  }

   下一部分代碼載入位圖(調用上面的代碼)并轉換成紋理。

  int LoadGLTextures()                  // 載入位圖(調用上面的代碼)并轉換成紋理
  {

   然后設置一個叫做Status的變量。我們使用它來跟蹤是否能夠載入位圖以及能否創建紋理。Status缺省設為 FALSE(表示沒有載入或創建任何東東)。

      int Status=FALSE;                 // Status 狀態指示器

   現在我們創建存儲位圖的圖像記錄。次記錄包含位圖的寬度、高度和數據。

      AUX_RGBImageRec *TextureImage[1];          // 創建紋理的存儲空間

   清除圖像記錄,確保其內容為空。

      memset(TextureImage,0,sizeof(void *) *1);     // 將指針設為 NULL

現在載入位圖,并將其轉換為紋理。TextureImage[0]=LoadBMP("Data/NeHe.bmp")調用LoadBMP()的代碼。載 入 Data目錄下的“NeHe.bmp”位圖文件。如果一切正常,圖像數據將存放在TextureImage[0] 中,Status被設為TRUE,然后我們開始創建紋理。

      // 載入位圖,檢查有無錯誤,如果位圖沒找到則退出。
      if (TextureImage[0]=LoadBMP("Data/NeHe.bmp"))
       {
           Status=TRUE;
               // 將 Status 設為 TRUE

   現在使用中TextureImage[0]的數據創建紋理。第一行glGenTextures(1, &texture[0])告訴OpenGL我們想生成一個紋理名字(如果您想載入多個紋理,加大數字)。值得注意的是,開始我們使用GLuinttexture[1]來創建一個紋理的存儲空間,您也許會認為第一個紋理就是存放在&texture[1]中的,但這是錯的。正確的地址應該是 &texture[0]。同樣如果使用GLuint texture[2]的話,第二個紋理存放在texture[1]中。(譯者學C的,在這里應該沒有障礙,數組就是從零開始的呀。) 第二行glBindTexture(GL_TEXTURE_2D, texture[0])告訴OpenGL將紋理名字texture[0]綁定到紋理目標上。2D紋理只有高度(在Y軸上)和寬度(在X軸上)。主函數將紋 理名字指派給紋理數據。本例中我們告知OpenGL,&texture[0]處的內存已經可用。我們創建的紋理將存儲在&texture [0]的指向的內存區域。

          glGenTextures(1, &texture[0]);     // 創建紋理
           // 使用來自位圖數據生成的典型紋理
          glBindTexture(GL_TEXTURE_2D, texture[0]);

下來我們創建真正的紋理。下面一行告訴OpenGL此紋理是一個2D紋理(GL_TEXTURE_2D)。數字零代表圖像的詳細程度,通常就由它為零去 了。數字三是數據的成分數。因為圖像是由紅色數據,綠色數據,藍色數據三種組分組成。TextureImage[0]->sizeX是紋理的寬度。 如果您知道寬度,您可以在這里填入,但計算機可以很容易的為您指出此值。TextureImage[0]->sizey是紋理的高度。數字零是邊框 的值,一般就是零。GL_RGB告訴OpenGL圖像數據由紅、綠、藍三色數據組成。
   GL_UNSIGNED_BYTE意味著組成圖像的數據是無符號字節類型的。最后...TextureImage[0]->data告訴OpenGL紋理數據的來源。此例中指向存放在TextureImage[0]記錄中的數據。

          // 生成紋理
          glTexImage2D(GL_TEXTURE_2D, 0, 3,
               TextureImage[0]->sizeX, TextureImage[0]->sizeY,
               0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);

下面的兩行告訴OpenGL在顯示圖像時,當它比放大得原始的紋理大(GL_TEXTURE_MAG_FILTER)或縮小得比原始得紋理小 (GL_TEXTURE_MIN_FILTER)時OpenGL采用的濾波方式。通常這兩種情況下我都采用GL_LINEAR。這使得紋理從很遠處到離屏 幕很近時都平滑顯示。使用GL_LINEAR需要CPU和顯卡做更多的運算。如果您的機器很慢,您也許應該采用GL_NEAREST。過濾的紋理在放大的 時候,看起來斑駁的很(譯者就是馬賽克)。您也可以結合這兩種濾波方式。在近處時使用GL_LINEAR,遠處時GL_NEAREST。

          glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);// 線形濾波
          glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);// 線形濾波
      }

   現在我們釋放前面用來存放位圖數據的內存。我們先查看位圖數據是否存放在處。如果是的話,再查看數據是否已經存儲。如果已經存儲的話,刪了它。接著再釋放TextureImage[0]圖像結構以保證所有的內存都能釋放。

      if (TextureImage[0])                // 紋理是否存在
      {
           if (TextureImage[0]->data)
         // 紋理圖像是否存在
          {
               free(TextureImage[0]->data);
    // 釋放紋理圖像占用的內存
          }
           free(TextureImage[0]);
           // 釋放圖像結構
      }

   最后返回狀態變量。如果一切OK,變量Status的值為TRUE。否則為FALSE

      return Status;                  // 返回 Status
  }

我只在 InitGL 中增加很少的幾行代碼。但為了方便您查看增加了哪幾行,我這段代碼全部重貼一遍。if (!LoadGLTextures())這行代碼調用上面講的子例程載入位圖并生成紋理。如果因為任何原因LoadGLTextures()調用失敗,接 著的一行返回FALSE。如果一切OK,并且紋理創建好了,我們啟用2D紋理映射。如果您忘記啟用的話,您的對象看起來永遠都是純白色,這一定不是什么好 事。

  int InitGL(GLvoid)                     // 此處開始對OpenGL進行所有設置
  {
        if (!LoadGLTextures())
               // 調用紋理載入子例程(新增)
      {
           return FALSE;
               // 如果未能載入,返回FALSE(新增)
      }

       glEnable(GL_TEXTURE_2D);
              // 啟用紋理映射(新增)
      glShadeModel(GL_SMOOTH);              // 啟用陰影平滑
      glClearColor(0.0f, 0.0f, 0.0f, 0.5f);       // 黑色背景
      glClearDepth(1.0f);                // 設置深度緩存
      glEnable(GL_DEPTH_TEST);              // 啟用深度測試
      glDepthFunc(GL_LEQUAL);              // 所作深度測試的類型
      glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 真正精細的透視修正
      return TRUE;                    // 初始化 OK
  }

現在我們繪制貼圖(紋理映射)過的立方體。這段代碼被狂注釋了一把,應該很好懂。開始兩行代碼 glClear() 和 glLoadIdentity() 是第一課中就有的代碼。 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) 清除屏幕并設為我們在 InitGL() 中選定的顏色,本例中是黑色。深度緩存也被清除。模型觀察矩陣也使用glLoadIdentity()重置。

  int DrawGLScene(GLvoid)                  // 從這里開始進行所有的繪制
  {
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// 清除屏幕和深度緩存
      glLoadIdentity();                 // 重置當前的模型觀察矩陣
      glTranslatef(0.0f,0.0f,-5.0f);           // 移入屏幕 5 個單位

   下面三行使立方體繞X、Y、Z軸旋轉。旋轉多少依賴于變量 xrot, yrot 和 zrot 的值。

      glRotatef(xrot,1.0f,0.0f,0.0f);          // 繞X軸旋轉
      glRotatef(yrot,0.0f,1.0f,0.0f);          // 繞Y軸旋轉
      glRotatef(zrot,0.0f,0.0f,1.0f);          // 繞Z軸旋轉

下一行代碼選擇我們使用的紋理。如果您在您的場景中使用多個紋理,您應該使用來 glBindTexture(GL_TEXTURE_2D, texture[ 所使用紋理對應的數字 ]) 選擇要綁定的紋理。當您想改變紋理時,應該綁定新的紋理。有一點值得指出的是,您不能在glBegin()和glEnd()之間綁定紋理,必須在 glBegin()之前或 glEnd()之后綁定。注意我們在后面是如何使用glBindTexture來指定和綁定紋理的。

      glBindTexture(GL_TEXTURE_2D, texture[0]);     // 選擇紋理

  為了將紋理正確的映射到四邊形上,您必須將紋理的右上角映射到四邊形的右上角,紋理的左上角映射到四邊形的左上角,紋理的右下角映射到四邊形的右下角,紋理的左下角映射到四邊形的左下角。如果映射錯誤的話,圖像顯示時可能上下顛倒,側向一邊或者什么都不是。
   glTexCoord2f的第一個參數是X坐標。0.0f是紋理的左側。0.5f是紋理的中點,1.0f是紋理的右側。glTexCoord2f的第二個參數是Y坐標。0.0f是紋理的底部。0.5f是紋理的中點,1.0f是紋理的頂部。
   所以紋理的左上坐標是X:0.0f,Y:1.0f,四邊形的左上頂點是X:-1.0f,Y:1.0f。其余三點依此類推。
   試著玩玩glTexCoord2f的X,Y坐標參數。把1.0f改為0.5f 將只顯示紋理的左半部分,把0.0f改為0.5f將只顯示紋理的右半部分。

      glBegin(GL_QUADS);
          // 前面
          glTexCoord2f(0.0f, 0.0f);glVertex3f(-1.0f, -1.0f, 1.0f); // 紋理和四邊形的左下
          glTexCoord2f(1.0f, 0.0f);glVertex3f( 1.0f, -1.0f, 1.0f); // 紋理和四邊形的右下
          glTexCoord2f(1.0f, 1.0f);glVertex3f( 1.0f, 1.0f, 1.0f); // 紋理和四邊形的右上
          glTexCoord2f(0.0f, 1.0f);glVertex3f(-1.0f, 1.0f, 1.0f); // 紋理和四邊形的左上

          // 后面
          glTexCoord2f(1.0f, 0.0f);glVertex3f(-1.0f, -1.0f, -1.0f);// 紋理和四邊形的右下
          glTexCoord2f(1.0f, 1.0f);glVertex3f(-1.0f, 1.0f, -1.0f); // 紋理和四邊形的右上
          glTexCoord2f(0.0f, 1.0f);glVertex3f( 1.0f, 1.0f, -1.0f); // 紋理和四邊形的左上
          glTexCoord2f(0.0f, 0.0f);glVertex3f( 1.0f, -1.0f, -1.0f);// 紋理和四邊形的左下

          // 頂面
          glTexCoord2f(0.0f, 1.0f);glVertex3f(-1.0f, 1.0f, -1.0f); // 紋理和四邊形的左上
          glTexCoord2f(0.0f, 0.0f);glVertex3f(-1.0f, 1.0f, 1.0f); // 紋理和四邊形的左下
          glTexCoord2f(1.0f, 0.0f);glVertex3f( 1.0f, 1.0f, 1.0f); // 紋理和四邊形的右下
          glTexCoord2f(1.0f, 1.0f);glVertex3f( 1.0f, 1.0f, -1.0f); // 紋理和四邊形的右上

          // 底面
          glTexCoord2f(1.0f, 1.0f);glVertex3f(-1.0f, -1.0f, -1.0f);// 紋理和四邊形的右上
          glTexCoord2f(0.0f, 1.0f);glVertex3f( 1.0f, -1.0f, -1.0f);// 紋理和四邊形的左上
          glTexCoord2f(0.0f, 0.0f);glVertex3f( 1.0f, -1.0f, 1.0f); // 紋理和四邊形的左下
          glTexCoord2f(1.0f, 0.0f);glVertex3f(-1.0f, -1.0f, 1.0f); // 紋理和四邊形的右下

          // 右面
          glTexCoord2f(1.0f, 0.0f);glVertex3f( 1.0f, -1.0f, -1.0f);// 紋理和四邊形的右下
          glTexCoord2f(1.0f, 1.0f);glVertex3f( 1.0f, 1.0f, -1.0f); // 紋理和四邊形的右上
          glTexCoord2f(0.0f, 1.0f);glVertex3f( 1.0f, 1.0f, 1.0f); // 紋理和四邊形的左上
          glTexCoord2f(0.0f, 0.0f);glVertex3f( 1.0f, -1.0f, 1.0f); // 紋理和四邊形的左下

          // 左面
          glTexCoord2f(0.0f, 0.0f);glVertex3f(-1.0f, -1.0f, -1.0f);// 紋理和四邊形的左下
          glTexCoord2f(1.0f, 0.0f);glVertex3f(-1.0f, -1.0f, 1.0f); // 紋理和四邊形的右下
          glTexCoord2f(1.0f, 1.0f);glVertex3f(-1.0f, 1.0f, 1.0f); // 紋理和四邊形的右上
          glTexCoord2f(0.0f, 1.0f);glVertex3f(-1.0f, 1.0f, -1.0f); // 紋理和四邊形的左上
      glEnd();

   現在增加xrot、yrot及zrot的值。嘗試變化每次各變量的改變值來及調節立方體的旋轉速度,或改變+/-號來調節立方體的旋轉方向。

      xrot+=0.3f;                    // X 軸旋轉
      yrot+=0.2f;                    // Y 軸旋轉
      zrot+=0.4f;                    // Z 軸旋轉
      return true;                    // 繼續運行
  }
posted on 2007-12-10 11:39 sdfasdf 閱讀(1122) 評論(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>
            亚洲国产第一页| 亚洲午夜在线观看| 国产精品成人一区二区网站软件| 久久精品国产一区二区三区| 欧美日韩高清一区| 欧美 亚欧 日韩视频在线| 国产精品成人播放| 亚洲精品视频在线播放| 亚洲成人在线视频播放| 亚洲欧美日韩另类精品一区二区三区| 亚洲精品人人| 另类成人小视频在线| 久久人人97超碰精品888| 国产精品三级久久久久久电影| 亚洲第一精品在线| 亚洲高清不卡av| 久久国产精品99国产| 久久成人免费网| 国产精品中文在线| 午夜视频久久久| 久久超碰97人人做人人爱| 国产精品家庭影院| 亚洲午夜激情在线| 亚洲特色特黄| 欧美午夜三级| 99国产精品99久久久久久粉嫩| 亚洲精品一二| 欧美岛国激情| 亚洲黄页一区| 亚洲深夜福利网站| 国产精品video| 亚洲一区二区三区在线| 午夜精品久久久久| 国产欧美日韩中文字幕在线| 亚洲男人第一av网站| 久久av老司机精品网站导航| 国产人成精品一区二区三| 亚洲欧美国产精品专区久久| 久久久国产午夜精品| 红桃视频成人| 免费欧美日韩国产三级电影| 亚洲经典在线看| 国产精品系列在线播放| 久久综合中文字幕| 亚洲综合首页| 亚洲欧美国产一区二区三区| 亚洲欧美日韩中文播放| 亚洲一区二区三区视频| 亚洲欧美精品一区| 亚洲欧美美女| 久久久久久久一区二区三区| 欧美老女人xx| 午夜亚洲一区| 久久男人av资源网站| 最新亚洲一区| 亚洲欧美日韩国产| 国产无一区二区| 欧美国产另类| 亚洲欧美一区二区原创| 亚洲成在线观看| 午夜精品久久| 亚洲精品四区| 国产婷婷精品| 欧美日韩国产不卡| 性欧美暴力猛交另类hd| 亚洲欧洲另类国产综合| 欧美一区二区三区久久精品| 亚洲国产精品久久久久久女王| 欧美日韩视频第一区| 香蕉亚洲视频| 亚洲最新在线视频| 欧美丰满高潮xxxx喷水动漫| 亚洲综合色自拍一区| 最新国产乱人伦偷精品免费网站| 国产精品久久久久久久浪潮网站 | 亚洲第一区中文99精品| 国产精品www| 美国三级日本三级久久99| 亚洲一区尤物| 亚洲精品字幕| 欧美成人一二三| 久久国产综合精品| 亚洲性视频网址| 亚洲精选久久| 一区在线视频观看| 国产乱码精品一区二区三区忘忧草| 欧美大尺度在线| 久久免费视频网| 欧美在线欧美在线| 亚洲一区二区三区在线播放| 亚洲精品免费观看| 亚洲电影中文字幕| 欧美成人精品| 久久免费视频在线观看| 久久国产精品久久国产精品| 亚洲影院污污.| 亚洲素人一区二区| 亚洲色图综合久久| 一本久久综合亚洲鲁鲁五月天| 在线国产日韩| 亚洲国产日韩美| 在线成人激情视频| 樱桃视频在线观看一区| 加勒比av一区二区| 在线电影一区| …久久精品99久久香蕉国产| 黄色成人免费网站| 国内偷自视频区视频综合| 国模精品娜娜一二三区| 国产一区二区无遮挡| 国产一区白浆| 激情偷拍久久| 亚洲欧洲美洲综合色网| 亚洲激情一区二区三区| 亚洲黄色片网站| 日韩午夜在线观看视频| 中文亚洲欧美| 亚洲欧美日韩综合aⅴ视频| 亚洲一二三四区| 欧美一区二区三区的| 久久尤物视频| 亚洲国产精品一区制服丝袜| 亚洲激情网站免费观看| a91a精品视频在线观看| 亚洲综合精品| 久久精品综合| 欧美精品乱码久久久久久按摩| 欧美日韩国产片| 国产伦精品一区二区三区高清版 | 久久久午夜精品| 免费永久网站黄欧美| 亚洲黄色在线看| 亚洲午夜免费视频| 欧美在线视频二区| 欧美成人精品福利| 国产精品电影观看| 国产在线麻豆精品观看| 亚洲人成在线观看| 亚洲一区三区视频在线观看| 欧美一区激情| 亚洲国产成人久久综合| 亚洲伦理精品| 久久久99久久精品女同性| 欧美二区在线看| 国产欧美视频一区二区| 亚洲国产精品一区二区第一页| 一区二区三区日韩精品视频| 久久激情视频| 亚洲二区在线观看| 亚洲少妇自拍| 欧美成人午夜免费视在线看片| 国产精品女人网站| 亚洲另类在线一区| 亚洲在线一区二区三区| 免费成人av在线看| 亚洲午夜性刺激影院| 欧美大秀在线观看| 国内偷自视频区视频综合| 亚洲天堂av图片| 欧美a级大片| 午夜久久资源| 欧美日韩亚洲在线| 亚洲国产精品va在看黑人| 欧美一区二区三区视频在线| 91久久精品国产| 久久久精彩视频| 国产日韩精品久久| 9色国产精品| 亚洲成人在线视频播放| 亚洲天堂成人在线观看| 欧美精品色网| 91久久久久| 免费久久99精品国产自在现线| 亚洲欧美日本精品| 国产精品yjizz| 一级日韩一区在线观看| 欧美第一黄色网| 久久精品一区二区国产| 国产三级欧美三级| 小辣椒精品导航| 这里只有精品在线播放| 欧美日韩亚洲系列| 日韩亚洲欧美中文三级| 亚洲二区免费| 欧美福利在线| 亚洲精品黄色| 亚洲缚视频在线观看| 久久手机免费观看| 伊人婷婷久久| 免费在线看成人av| 久久这里有精品视频| 亚洲大片在线观看| 欧美高清你懂得| 欧美国产乱视频| 一区二区三区高清在线| 一区二区欧美精品| 国产精品免费aⅴ片在线观看| 亚洲欧美日韩综合国产aⅴ| 亚洲一区二区视频在线| 国产伦一区二区三区色一情|