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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

openGL天空盒实现-立方体贴图

發布時間:2023/12/31 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openGL天空盒实现-立方体贴图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

openGL系列文章目錄

文章目錄

  • openGL系列文章目錄
  • 前言
  • 一、pandas是什么?
  • 二、實現步驟
    • 1.主程序
    • 2.著色器
  • 運行效果
  • 源碼下載


前言

如前所述,天空盒容易受到圖像畸變和接縫的影響。接縫指兩個紋理圖像接觸的地方(比
如沿著立方體的邊緣)有時出現的可見線條。圖9.8 展示了一個圖像上半部分出現接縫的示
例,它是運行程序9.1 時出現的偽影。為了避免接縫,需要仔細構建立方體貼圖圖像,并分
配精確的紋理坐標

一、pandas是什么?

構建天空盒的另一種方法是使用OpenGL 紋理立方體貼圖。OpenGL 立方體貼圖比我們
在上一節中看到的簡單方法稍微復雜一點。但是,使用OpenGL 立方體貼圖有自己的優點,
例如減少接縫以及支持環境貼圖。
OpenGL 紋理立方體貼圖類似于稍后將要研究的3D 紋理,它們都使用3 個紋理坐標訪
問——通常標記為(s, t, r)——而不是我們目前為止用到的兩個。OpenGL 紋理立方體貼圖
的另一個特性是,其中的圖像以紋理圖像的左上角(而不是通常的左下角)作為紋理坐標
(0, 0, 0),這通常是混亂產生的源頭。
程序9.1 中展示的方法通過讀入單個圖像來為立方體貼圖添加紋理,而程序9.2 中展示
的loadCubeMap()函數則讀入6 個單獨的立方體面圖像文件。正如我們在第5 章中所學的,
有許多方法可以讀取紋理圖像,我們選擇使用SOIL2 庫。在這里,SOIL2 用于實例化和加
載OpenGL 立方體貼圖也非常方便。我們先找到需要讀入的文件, 然后調用
SOIL_load_OGL_cubemap(),其參數包括6 個圖像文件和一些其他參數,類似于我們在第5
章中看到的SOIL_load_OGL_texture()。在使用OpenGL 立方體貼圖時,無須垂直翻轉紋理,
OpenGL 會自動進行處理,注意,loadCubeMap()函數放在“Utils.cpp”文件中。
init()函數現在包含一個函數調用以啟用GL_TEXTURE_CUBE_MAP_SEAMLESS,它告
訴OpenGL 嘗試混合立方體相鄰的邊以減少或消除接縫。在display()中,立方體的頂點像以
前一樣沿管線向下發送,但這次不需要發送立方體的紋理坐標。我們將會看到,OpenGL 紋
理立方體貼圖通常使用立方體的頂點位置作為其紋理坐標。之后禁用深度測試并繪制立方
體。然后為場景的其余部分重新啟用深度測試。
完成后的OpenGL 紋理立方體貼圖使用了int 類型的標識符進行引用。與陰影貼圖時一
樣,通過將紋理包裹模式設置為“夾緊到邊緣”,可以減少沿邊框的偽影。在這種情況下,
它還可以幫助進一步縮小接縫。請注意,這里需要為3 個紋理坐標s、t 和r 都設置紋理包
裹模式。
在片段著色器中使用名為samplerCube 的特殊類型的采樣器訪問紋理。在紋理立方體貼
圖中,從采樣器返回的值是沿著方向向量(s, t, r)從原點“看到”的紋素。因此,我們通常可
以簡單地使用傳入的插值頂點位置作為紋理坐標。在頂點著色器中,我們將立方體頂點位
置分配到輸出紋理坐標屬性中,以便在它們到達片段著色器時進行插值。另外需要注意,
在頂點著色器中,我們將傳入的視圖矩陣轉換為3×3,然后再轉換回4×4。這個“技巧”
有效地移除了平移分量,同時保留了旋轉(回想一下,平移值在轉換矩陣的第四列中)。這
樣,就將立方體貼圖固定在了攝像機位置,同時仍允許合成相機“環顧四周”。

二、實現步驟

1.主程序

#include "glew/glew.h" #include "glfw/glfw3.h" #include "glm/glm.hpp" #include "glm/gtc/matrix_transform.hpp" #include "glm/gtc/type_ptr.hpp" #include "Torus.h" #include "Utils.h" #include "Sphere.h" #include "camera.h" #include "SOIL2/SOIL2.h" #include <iostream> #include <fstream> #include <string> #include <stack>using namespace std;static const float pai = 3.1415926f; float toRadins(float degrees) { return degrees * 2.f * pai / (float)360.f; }static const int screenWidth = 1920; static const int screenHeight = 1080;GLuint renderingProgram = 0;static const int numVAOs = 1; static const int numVBOs = 6; float cameraX = 0.f, cameraY = 0.f, cameraZ = 5.f; float torLocX = 0.f, torLocY = 0.f, torLocZ = 0.f; GLuint vao[numVAOs] = { 0 }; GLuint vbo[numVBOs] = { 0 }; GLuint brickTexture = 0, skyboxTexture = 0; float rotAmt = 0.f;// variable allocation for display GLuint mvLoc = 0, projLoc = 0; int width = 0; int height = 0; float aspect = 0.f; glm::mat4 mMat(1.f), vMat(1.f), pMat(1.f), mvMat(1.f);Torus myTorus(0.5f, 0.2f, 48); int numTorusVertices = 0, numTorusIndices = 0;float sunLocX = 0.f, sunLocY = 0.f, sunLocZ = 0.f; float earthLocX = 0.f, earthLocY = 0.f, earthLocZ = 0.f; float moonLocX = 0.f, moonLocY = 0.f, moonLocZ = 0.f; GLuint sunTextureId = 0, earthTextureId = 0, moonTextureId = 0;Sphere sun = Sphere(48); Sphere earth = Sphere(48); Sphere moon = Sphere(48); std::stack<glm::mat4> mvStack; //注意不要和vector<glm::mat4>相混淆Camera camera(glm::vec3(0.f, 0.f, 5.f)); GLboolean keys[1024] = { GL_FALSE }; GLboolean b_firstMouse = GL_TRUE; float deltaTime = 0.f;float lastFrame = 0.f; float lastLocX = 0.f; float lastLocY = 0.f;void do_movement() {if (keys[GLFW_KEY_W]){camera.ProcessKeyboard(FORWARD, deltaTime);}if (keys[GLFW_KEY_S]){camera.ProcessKeyboard(BACKWARD, deltaTime);}if (keys[GLFW_KEY_A]){camera.ProcessKeyboard(LEFT, deltaTime);}if (keys[GLFW_KEY_D]){camera.ProcessKeyboard(RIGHT, deltaTime);}/*if (keys[GLFW_KEY_ESCAPE]){glfwSetWindowShouldClose(window, GL_TRUE);}*/ }void key_press_callback(GLFWwindow* window, int key, int scancode, int action, int mode) {if ((key == GLFW_KEY_ESCAPE) && (action == GLFW_PRESS)){glfwSetWindowShouldClose(window, GL_TRUE);}if (action == GLFW_PRESS){keys[key] = GLFW_TRUE; //這里一定一定不能寫成“==“,否則 按鍵WSAD按鍵失效!!!!!!!}else if (action == GLFW_RELEASE){keys[key] = GLFW_FALSE; //這里一定一定不能寫成“==“,否則 按鍵WSAD按鍵失效!!!!!!!} }void mouse_move_callback(GLFWwindow* window, double xPos, double yPos) {if (b_firstMouse){lastLocX = xPos;lastLocY = yPos;b_firstMouse = GL_FALSE;}float xOffset = xPos - lastLocX;float yOffset = lastLocY - yPos;lastLocX = xPos;lastLocY = yPos;camera.ProcessMouseMovement(xOffset, yOffset);}void mouse_scroll_callback(GLFWwindow* window, double xPos, double yPos) {camera.ProcessMouseScroll(yPos); }void setupVertices(void) {float cubeVertexPosition[108] ={-1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f,1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, -1.0f,1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f,1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f,-1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,-1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, 1.0f,-1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f,-1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f,-1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f,1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f};float cubeTextureCoords[72] ={1.00f, 0.6666666f, 1.00f, 0.3333333f, 0.75f, 0.3333333f, // back face lower right0.75f, 0.3333333f, 0.75f, 0.6666666f, 1.00f, 0.6666666f, // back face upper left0.75f, 0.3333333f, 0.50f, 0.3333333f, 0.75f, 0.6666666f, // right face lower right0.50f, 0.3333333f, 0.50f, 0.6666666f, 0.75f, 0.6666666f, // right face upper left0.50f, 0.3333333f, 0.25f, 0.3333333f, 0.50f, 0.6666666f, // front face lower right0.25f, 0.3333333f, 0.25f, 0.6666666f, 0.50f, 0.6666666f, // front face upper left0.25f, 0.3333333f, 0.00f, 0.3333333f, 0.25f, 0.6666666f, // left face lower right0.00f, 0.3333333f, 0.00f, 0.6666666f, 0.25f, 0.6666666f, // left face upper left0.25f, 0.3333333f, 0.50f, 0.3333333f, 0.50f, 0.0000000f, // bottom face upper right0.50f, 0.0000000f, 0.25f, 0.0000000f, 0.25f, 0.3333333f, // bottom face lower left0.25f, 1.0000000f, 0.50f, 1.0000000f, 0.50f, 0.6666666f, // top face upper right0.50f, 0.6666666f, 0.25f, 0.6666666f, 0.25f, 1.0000000f // top face lower left};/*numTorusVertices = myTorus.getNumVertices();numTorusIndices = myTorus.getNumIndices();vector<int> ind = myTorus.getIndices();vector<glm::vec3> vert = myTorus.getVertices();vector<glm::vec2> text = myTorus.getTexCoords();vector<glm::vec3> norm = myTorus.getNormals();vector<float> pValues;vector<float> tValues;vector<float> nValues;for (int i=0; i<numTorusVertices; i++){pValues.push_back(vert[i].x);pValues.push_back(vert[i].y);pValues.push_back(vert[i].z);tValues.push_back(text[i].s);tValues.push_back(text[i].t);nValues.push_back(norm[i].x);nValues.push_back(norm[i].y);nValues.push_back(norm[i].z);}glGenVertexArrays(numVAOs, vao);glBindVertexArray(vao[0]);glGenBuffers(numVBOs, vbo);glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);size_t cubeVertexPositionSize = sizeof(cubeVertexPosition);glBufferData(GL_ARRAY_BUFFER, sizeof(cubeVertexPosition) * sizeof(float), cubeVertexPosition, GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);glBufferData(GL_ARRAY_BUFFER, sizeof(cubeTextureCoords) * sizeof(float), cubeTextureCoords, GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[2]);glBufferData(GL_ARRAY_BUFFER, pValues.size() * sizeof(float), &pValues[0], GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[3]);glBufferData(GL_ARRAY_BUFFER, tValues.size() * sizeof(float), &tValues[0], GL_STATIC_DRAW);glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo[4]);glBufferData(GL_ELEMENT_ARRAY_BUFFER, ind.size() * sizeof(int), &ind[0], GL_STATIC_DRAW);*/vector<int> ind = sun.getIndices();vector<glm::vec3> vert = sun.getVertices();vector<glm::vec2> text = sun.getTexCoords();vector<glm::vec3> norm = sun.getNormals();vector<glm::vec3> tang = sun.getTangents();vector<float> pValues; //頂點位置vector<float> tValues; //紋理坐標vector<float> nValues; //法線向量int numIndices = sun.getNumIndices();for (int i = 0; i < numIndices; i++){//pValues.push_back(vert[ind[i]].x);pValues.push_back((vert[ind[i]]).x);pValues.push_back((vert[ind[i]]).y);pValues.push_back((vert[ind[i]]).z);tValues.push_back((text[ind[i]]).s);tValues.push_back((text[ind[i]]).t);nValues.push_back((norm[ind[i]]).x);nValues.push_back((norm[ind[i]]).y);nValues.push_back((norm[ind[i]]).z);}glGenVertexArrays(numVAOs, vao);glBindVertexArray(vao[0]);glGenBuffers(numVBOs, vbo);glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);glBufferData(GL_ARRAY_BUFFER, sizeof(cubeVertexPosition) * sizeof(float), cubeVertexPosition, GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);glBufferData(GL_ARRAY_BUFFER, sizeof(cubeTextureCoords) * sizeof(float), cubeTextureCoords, GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[2]);size_t sizeFloat = sizeof(float);glBufferData(GL_ARRAY_BUFFER, pValues.size() * sizeof(float), &(pValues[0]), GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[3]);glBufferData(GL_ARRAY_BUFFER, tValues.size() * sizeof(float), &(tValues[0]), GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[4]);glBufferData(GL_ARRAY_BUFFER, nValues.size() * sizeof(float), &(nValues[0]), GL_STATIC_DRAW);glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo[5]);glBufferData(GL_ELEMENT_ARRAY_BUFFER, ind.size() * sizeof(int), &ind[0], GL_STATIC_DRAW);/*glBindBuffer(GL_ARRAY_BUFFER, vbo[2]);glBufferData(GL_ARRAY_BUFFER, pValues.size() * sizeof(float), &pValues[0], GL_STATIC_DRAW);glBindBuffer(GL_ARRAY_BUFFER, vbo[3]);glBufferData(GL_ARRAY_BUFFER, tValues.size() * sizeof(float), &tValues[0], GL_STATIC_DRAW);glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo[4]);glBufferData(GL_ELEMENT_ARRAY_BUFFER, ind.size() * sizeof(int), &ind[0], GL_STATIC_DRAW);*/}void init(GLFWwindow* window) {renderingProgram = Utils::createShaderProgram("vertShader.vert", "fragShader.frag");glfwGetFramebufferSize(window, &width, &height);aspect = (float)width / (float)height;pMat = glm::perspective(toRadins(45.f), aspect, 0.01f, 1000.f);setupVertices();brickTexture = Utils::loadTexture("brick1.jpg");skyboxTexture = Utils::loadTexture("alien.jpg");sunTextureId = Utils::loadTexture("resource/shining.jpg");earthTextureId = Utils::loadTexture("resource/earth.jpg");moonTextureId = Utils::loadTexture("resource/moon.jpg");torLocX = 0.f, torLocY = -0.75f, torLocZ = 0.f;cameraX = 0.f, cameraY = 0.f, cameraZ = 5.f; }void display(GLFWwindow* window, double currentTime) {glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glClearColor(0.f, 0.5f, 1.f, 1.f);vMat = glm::translate(glm::mat4(1.f), glm::vec3(-cameraX, -cameraY, -cameraZ));// draw cube mapglUseProgram(renderingProgram);deltaTime = currentTime - lastFrame;lastFrame = currentTime;do_movement();//這句必須要有,否則鼠標中鍵失效pMat = glm::perspective(camera.Zoom, aspect, 0.01f, 1000.f);//沒有這句,背景就沒在相機視點上了,把圓環移到相機的位置mMat = glm::translate(glm::mat4(1.f), glm::vec3(cameraX, cameraY, 4.5f));vMat = camera.GetViewMatrix();mMat = glm::rotate(mMat, glm::radians(35.f), glm::vec3(1.f, 0.f, 0.f));mvMat = vMat * mMat;//將視圖矩陣壓入堆棧mvStack.push(vMat);mvLoc = glGetUniformLocation(renderingProgram, "mv_matrix");projLoc = glGetUniformLocation(renderingProgram, "proj_matrix");glUniformMatrix4fv(mvLoc, 1, GL_FALSE, glm::value_ptr(mvMat));glUniformMatrix4fv(projLoc, 1, GL_FALSE, glm::value_ptr(pMat));glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);glEnableVertexAttribArray(0);glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, 0);glEnableVertexAttribArray(1);glActiveTexture(GL_TEXTURE0);glBindTexture(GL_TEXTURE_2D, skyboxTexture);glEnable(GL_CULL_FACE); //開啟剔除操作效果//GL_CCW 表示窗口坐標上投影多邊形的頂點順序為逆時針方向的表面為正面。//GL_CW 表示窗口坐標上投影多邊形的頂點順序為順時針方向的表面為正面。glFrontFace(GL_CCW);// cube is CW, but we are viewing the insideglDisable(GL_DEPTH_TEST); //為了繪制背景天空盒,先關閉深度測試,時天空盒被物體遮擋glDrawArrays(GL_TRIANGLES, 0, 36); //繪制立方體貼圖glEnable(GL_DEPTH_TEST); draw scene (in this case it is just a torus//glUseProgram(renderingProgram);//mvLoc = glGetUniformLocation(renderingProgram, "mv_matrix");//projLoc = glGetUniformLocation(renderingProgram, "proj_matrix");//mMat = glm::translate(glm::mat4(1.f), glm::vec3(torLocX, torLocY, torLocZ));//mMat = glm::rotate(mMat, toRadins(30.f), glm::vec3(1.f, 0.f, 0.f));//mvMat = vMat * mMat;//glUniformMatrix4fv(mvLoc, 1, GL_FALSE, glm::value_ptr(mvMat));//glUniformMatrix4fv(projLoc, 1, GL_FALSE, glm::value_ptr(pMat));//glBindBuffer(GL_ARRAY_BUFFER, vbo[2]);//glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);//glEnableVertexAttribArray(0);紋理layout(location = 1)//glBindBuffer(GL_ARRAY_BUFFER, vbo[3]);//glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, 0);//glEnableVertexAttribArray(1);//glActiveTexture(GL_TEXTURE0);//glBindTexture(GL_TEXTURE_2D, brickTexture);//glClear(GL_DEPTH_BUFFER_BIT);//glEnable(GL_CULL_FACE);//glFrontFace(GL_CCW);//glDisable(GL_LEQUAL);//glDrawArrays(GL_TRIANGLES, 0, 36);//glEnable(GL_DEPTH_TEST);//glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo[4]);//glDrawElements(GL_TRIANGLES, numTorusIndices, GL_UNSIGNED_INT, 0);/************************************ 太陽 ***********************************/glUseProgram(renderingProgram);mvLoc = glGetUniformLocation(renderingProgram, "mv_matrix");projLoc = glGetUniformLocation(renderingProgram, "proj_matrix");vMat = camera.GetViewMatrix();/*sunLocZ = -6.f;*/mMat = glm::translate(glm::mat4(1.f), glm::vec3(sunLocX, sunLocY, sunLocZ));mMat = glm::rotate(glm::mat4(1.f), (float)currentTime * 0.1f, glm::vec3(0.f, 1.f, 0.f));pMat = glm::perspective(camera.Zoom, (GLfloat)screenWidth / (GLfloat)screenHeight, 0.01f, 1000.f);//右乘規則//mvMat = mMat * vMat; //金字塔會離開視口mvMat = vMat * mMat;//將視圖矩陣壓入堆棧mvStack.push(vMat);glUniformMatrix4fv(mvLoc, 1, GL_FALSE, glm::value_ptr(mvMat));glUniformMatrix4fv(projLoc, 1, GL_FALSE, glm::value_ptr(pMat));/*堆棧頂部的矩陣復制一份,并和其他的變換結合,然后再利用這個命令把新的矩陣副本推入堆棧中。*/mvStack.push(mvStack.top());//向矩陣堆棧頂部的矩陣添加平移mvStack.top() *= glm::translate(glm::mat4(1.f), glm::vec3(0.f, 0.f, 0.f));mvStack.push(mvStack.top());//在不移除的情況下,返回堆棧最頂部旋轉矩陣(繞X軸)的引用。mvStack.top() *= glm::rotate(glm::mat4(1.f), (float)glfwGetTime() * 0.4f, glm::vec3(0.f, 1.f, 0.f));glUniformMatrix4fv(mvLoc, 1, GL_FALSE, glm::value_ptr(mvStack.top()));//綁定到太陽頂點緩沖區glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);//啟用或禁用通用頂點屬性數組,參數0索引和著色器中的layout(location = 0)中的0相對應,頂點位置glEnableVertexAttribArray(0);//綁定到紋理坐標緩沖區glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, 0);glEnableVertexAttribArray(1);//激活紋理坐標 glActiveTexture(GL_TEXTURE0);glBindTexture(GL_TEXTURE_2D, sunTextureId);//glDrawArrays(GL_TRIANGLES, 0, sun.getNumIndices());glBindBuffer(GL_ARRAY_BUFFER, vbo[4]);glDrawArrays(GL_TRIANGLES, 0, sun.getNumVertices());mvStack.pop();}void window_size_callback(GLFWwindow* window, int newWidth, int newHeight) {aspect = (float)newWidth / (float)newHeight;glViewport(0, 0, newWidth, newHeight);pMat = glm::perspective(toRadins(45.f), aspect, 0.01f, 1000.f); }int main(int argc, char** argv) {int glfwState = glfwInit();if (GLFW_FALSE == glfwState){cout << "GLFW initialize failed,invoke glfwInit()......Error file:" << __FILE__ << "......Error line:" << __LINE__ << endl;glfwTerminate();exit(EXIT_FAILURE);}glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6);glfwWindowHint(GLFW_OPENGL_CORE_PROFILE, GLFW_OPENGL_PROFILE);glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);GLFWwindow* window = glfwCreateWindow(screenWidth, screenHeight, "sky box simple", nullptr, nullptr);if (!window){cout << "GLFW create window failed,invoke glfwCreateWindow()......Error file:" << __FILE__ << "......Error line:" << __LINE__ << endl;glfwTerminate();exit(EXIT_FAILURE);}glfwMakeContextCurrent(window);glfwSetWindowSizeCallback(window, window_size_callback);glfwSetCursorPosCallback(window, mouse_move_callback);glfwSetScrollCallback(window, mouse_scroll_callback);glfwSetKeyCallback(window, key_press_callback);int glewState = glewInit();if (GLEW_OK != glewState){cout << "GLEW initialize failed,invoke glewInit()......Error file:" << __FILE__ << "......Error line:" << __LINE__ << endl;glfwTerminate();exit(EXIT_FAILURE);}glfwSwapInterval(1);init(window);while (!glfwWindowShouldClose(window)){display(window, glfwGetTime());glfwSwapBuffers(window);glfwPollEvents(); //如果沒這句,程序直接掛了}glfwDestroyWindow(window);glfwTerminate();exit(EXIT_SUCCESS);return 0; }

2.著色器

1.頂點著色器

#version 460 corelayout(location = 0) in vec3 position; layout(location = 1) in vec2 texCoord; out vec2 tc;uniform mat4 mv_matrix; uniform mat4 proj_matrix; layout(binding = 0) uniform sampler2D samp;void main(void) {tc = texCoord;gl_Position = proj_matrix * mv_matrix * vec4(position, 1.f); }

2.片元著色器

#version 460 corein vec2 tc; out vec4 fragColor;uniform mat4 mv_matrix; uniform mat4 proj_matrix; layout(binding = 0) uniform sampler2D samp;void main(void) {fragColor = texture(samp, tc); }

運行效果

源碼下載

源碼下載地址

總結

以上是生活随笔為你收集整理的openGL天空盒实现-立方体贴图的全部內容,希望文章能夠幫你解決所遇到的問題。

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

久久福利小视频 | 午夜999| 日本大片免费观看在线 | 久草亚洲视频 | 天天干天天插伊人网 | 成人av电影网址 | 日韩在线视频一区二区三区 | 国产99久久99热这里精品5 | 性色在线视频 | 久久精品一区二区三区四区 | 欧美精品久久久久久久久老牛影院 | 99精品在线视频播放 | 亚洲欧美观看 | 美女福利视频一区二区 | 国产亚洲午夜高清国产拍精品 | 精品久久免费 | 久久久综合精品 | 天海翼一区二区三区免费 | 美女视频免费精品 | 久久久久成人精品 | 国产成人精品一区二区三区福利 | 三三级黄色片之日韩 | 国产色女人 | 久久av中文字幕片 | 亚洲国产免费网站 | 中文字幕在线看视频 | 综合久久久久久久久 | 中文字幕av免费在线观看 | 国产一二三四在线视频 | 国产中文字幕久久 | 日本激情视频中文字幕 | 成人av免费播放 | 国产精品久久久久久久婷婷 | 久久中文字幕在线视频 | 免费a级大片 | www.xxxx欧美| 午夜私人影院 | 香蕉手机在线 | 五月激情婷婷丁香 | 国产精品成人久久久 | 中文字幕在线视频一区二区 | 亚洲色影爱久久精品 | 国产精品久久久久aaaa九色 | 一级片视频免费观看 | 免费高清在线视频一区· | 日韩成人免费电影 | 国产美女在线免费观看 | 毛片黄色一级 | 色在线高清| 麻豆视屏| 久久久精品视频成人 | 五月婷婷丁香在线观看 | www五月天婷婷 | 国产精品va在线播放 | 国产精品毛片久久久久久久 | 国产亚洲午夜高清国产拍精品 | 国产黄色电影 | 中文字幕电影在线 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 欧美日本高清视频 | 亚洲精品国产日韩 | 国产二区精品 | 91视频下载 | 久久久精品亚洲 | 91精品推荐 | 国产小视频网站 | 日韩高清片 | 成人高清av在线 | 夜夜嗨av色一区二区不卡 | 99在线精品免费视频九九视 | 成人黄色av免费在线观看 | 色婷婷av在线 | 国产午夜精品一区二区三区欧美 | 国产精品久久电影网 | 国产1区在线观看 | 日日操天天操狠狠操 | 精品字幕在线 | 国产精品12 | 四虎5151久久欧美毛片 | 久久精品国产亚洲精品 | 国产精品精品国产 | 久久久久99精品国产片 | 亚洲 欧美 国产 va在线影院 | 国产日产高清dvd碟片 | 亚洲在线成人精品 | 国产精品高潮久久av | 久久av不卡| 在线观看视频99 | 精品国产一区二区三区久久久 | 欧美日韩免费网站 | 中文字幕国产精品一区二区 | 久久激情电影 | 欧美小视频在线观看 | 免费观看一级一片 | 亚洲成av片人久久久 | 日韩 在线a | 一级性视频 | 久久96国产精品久久99软件 | 久久夜色网 | 免费黄在线观看 | 欧美精品久久久久久久久久丰满 | 久久伊人八月婷婷综合激情 | 激情开心站 | 日本午夜免费福利视频 | 韩国精品一区二区三区六区色诱 | 国产精品一区二区三区免费视频 | 成人黄色小说在线观看 | 国产精品久久久久久久久蜜臀 | 国产亚州av | 99视频一区| 国产一级片免费播放 | 免费在线中文字幕 | 91免费试看 | 亚洲成人精品国产 | 99c视频在线| 波多野结衣理论片 | 国产精品久久 | 91在线免费播放视频 | 在线v片免费观看视频 | 五月婷婷黄色 | 97在线精品视频 | av在线直接看| 超级碰99| 天堂av在线中文在线 | 91桃色国产在线播放 | 国产精品视频地址 | 丁香六月天| 欧美精品一区二区蜜臀亚洲 | 日韩黄色免费电影 | 一区二区视频在线免费观看 | av综合 日韩| 人人爽人人干 | 特黄特色特刺激视频免费播放 | 国产在线观看h | 国产精选视频 | 在线看片日韩 | 久久一级片| 国产精品女同一区二区三区久久夜 | 免费看污黄网站 | 一区二区中文字幕在线观看 | 国产福利av在线 | 中日韩欧美精彩视频 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 黄色视屏av | 中文欧美字幕免费 | 91精品一| 日韩在线视频精品 | 五月婷婷播播 | 又黄又爽的视频在线观看网站 | 人人爱人人添 | 久久久免费精品国产一区二区 | 人人草人人草 | 成人黄大片视频在线观看 | 日本高清免费中文字幕 | 久久99精品波多结衣一区 | 婷婷九月激情 | 久久免费a | 国产精品k频道 | 色综合天天| 亚洲欧洲精品视频 | 日日干美女 | 免费在线国产 | 狠狠干狠狠久久 | 久久精品三级 | www.夜夜夜| bbb搡bbb爽爽爽 | 97超碰在线视 | 国产美女在线免费观看 | 人成在线免费视频 | 黄色在线成人 | 成人在线观看资源 | 国产精品嫩草在线 | 国产精品不卡一区 | 狂野欧美激情性xxxx | 91日韩免费 | 黄色日本免费 | 精品一区二区在线免费观看 | 久久99视频免费 | 久久手机看片 | 国产日韩视频在线播放 | 就色干综合 | 蜜桃av人人夜夜澡人人爽 | 黄色片毛片 | 色网站中文字幕 | 成人在线免费看 | 狠狠操狠狠干天天操 | 99夜色| 国产精品精品 | 日韩高清精品一区二区 | 婷婷综合五月天 | 999久久久久 | 日韩欧美有码在线 | 日韩精品欧美专区 | 在线播放第一页 | 一区在线观看视频 | 久久久国产精品一区二区三区 | 色欧美成人精品a∨在线观看 | 91精品国产三级a在线观看 | 91热这里只有精品 | 成人免费视频免费观看 | 国产精品嫩草影院99网站 | 日韩av一区二区在线影视 | 久久视频免费看 | av电影一区 | 国产操在线| 国产精品久久久久久久久久久久午夜 | 91大神在线观看视频 | 一二区电影 | 中文字幕制服丝袜av久久 | 91人人人 | 天天艹日日干 | 国产精品 中文字幕 亚洲 欧美 | 久久精品一区二区三区四区 | 午夜三级影院 | 久久久午夜电影 | 欧美三级高清 | www.av在线播放 | 成人h电影 | 久久亚洲美女 | 人人搞人人爽 | 色综合久久久久综合体 | 韩国精品一区二区三区六区色诱 | 免费av片在线 | 最近日韩中文字幕中文 | 玖玖视频网 | 奇米四色影狠狠爱7777 | 久久黄色免费观看 | 国产精品毛片一区视频播不卡 | 99精品乱码国产在线观看 | 伊人五月天.com | 精品在线观看一区二区 | 九九久久影视 | 最近日本中文字幕a | 久久久一本精品99久久精品 | 黄色av影院 | 国产成人三级一区二区在线观看一 | 亚洲国产中文字幕 | www.天天综合 | 黄色在线看网站 | 91视频这里只有精品 | 五月婷婷综合在线视频 | 欧美日韩午夜 | 天堂在线一区二区三区 | 91秒拍国产福利一区 | 人人射人人爱 | 五月天狠狠操 | 日韩精品免费在线观看视频 | 91免费高清在线观看 | 日日干夜夜草 | 亚洲成人一二三 | 亚洲视屏在线播放 | 国产91成人在在线播放 | 久久精品一二三 | 久久艹在线 | 狠狠88综合久久久久综合网 | 成年人视频免费在线播放 | 在线看日韩av | 中文字幕亚洲精品日韩 | 青青河边草观看完整版高清 | 日韩一级精品 | 99久久精品免费看国产一区二区三区 | 久久99精品一区二区三区三区 | 99这里只有| 欧美午夜视频在线 | 天天天色| 午夜三级理论 | 日韩欧美高清在线观看 | 国产网站色 | 视频国产一区二区三区 | 在线播放亚洲 | 欧美日韩不卡在线视频 | 欧美 日韩精品 | 午夜美女福利直播 | 欧美日韩中文另类 | 狠狠干狠狠色 | 狠狠色丁香婷综合久久 | 亚洲午夜精品一区二区三区电影院 | 久久久久久久久久久成人 | 中文字幕在线观看av | 97超碰色| 欧美另类视频 | 成人在线播放av | 日韩成人av在线 | 毛片视频电影 | 四虎成人av | 福利视频入口 | 婷婷中文字幕 | 国产一区二区免费 | 色综合天天色综合 | 成人小视频在线观看免费 | 国模精品一区二区三区 | 国产日韩精品一区二区在线观看播放 | av丁香花 | 国产91九色蝌蚪 | 91在线免费视频 | 最新午夜电影 | 不卡av在线免费观看 | 国产在线高清精品 | 欧美激情综合五月色丁香小说 | 国产a免费 | 久草久热 | 中文字幕国产 | 久久伊人国产精品 | 日日夜夜免费精品 | 午夜美女福利直播 | 99九九免费视频 | 碰超在线| 日韩欧美在线中文字幕 | 摸bbb搡bbb搡bbbb | 久久精品国产v日韩v亚洲 | 亚洲在线国产 | 91视频大全 | 91精品国产电影 | 一区二区三区免费在线观看视频 | 91丨九色丨丝袜 | 成人国产精品久久久 | 在线免费av观看 | 日韩免费观看一区二区三区 | 69av国产| 免费高清在线观看成人 | 日本中文字幕久久 | 国产精品2019 | 中文字幕在线看视频 | 伊人丁香| 91污污| 成人福利在线观看 | 99草在线视频 | 免费观看成年人视频 | 日韩视频一区二区在线观看 | 国产一区在线精品 | 综合视频在线 | 久久成年人 | 中文字幕欲求不满 | 激情久久一区二区三区 | 亚洲国产小视频在线观看 | 亚洲精品在线观看不卡 | 看av免费网站 | 日本久久中文字幕 | 极品久久久久久久 | 中文字幕精品一区久久久久 | 日韩乱码中文字幕 | 又黄又爽又湿又无遮挡的在线视频 | 亚洲无吗天堂 | 日韩xxxbbb | 欧美色综合 | 97人人澡人人爽人人模亚洲 | 天天艹日日干 | 999成人| 综合色在线观看 | www.天天色 | 日韩三级视频在线观看 | 国产69精品久久app免费版 | 国产高清不卡在线 | 九九热视频在线免费观看 | 中文有码在线 | 2000xxx影视 | 欧美巨乳波霸 | 手机色站| 久久免费看视频 | 国产三级香港三韩国三级 | 综合国产在线观看 | 嫩嫩影院理论片 | www.亚洲精品 | 91天天视频| 91在线看黄 | www黄| 久久er99热精品一区二区 | 免费在线国产视频 | 国产美女视频免费观看的网站 | 九九视频在线观看视频6 | 国产视频亚洲视频 | 丁香5月婷婷 | 久久精美视频 | ww亚洲ww亚在线观看 | 精品国产一区二区三区免费 | 成人av在线直播 | 免费日韩一区二区三区 | 国产中文字幕视频 | 欧美日韩视频在线观看一区二区 | 91在线视频免费 | 午夜久久久久久久久 | 色爱区综合激月婷婷 | 日韩av网页 | 成人在线免费av | 五月婷香蕉久色在线看 | 亚洲国产精品一区二区久久hs | 欧美日韩1区 | 国产一二三精品 | 中文字幕乱码一区二区 | 91在线资源 | 欧美坐爱视频 | 天天综合网在线观看 | 五月天久久综合网 | 久久精品91久久久久久再现 | 欧美 日韩 国产 成人 在线 | 欧美午夜寂寞影院 | 91久久国产露脸精品国产闺蜜 | 五月天久久综合 | 欧美激情片在线观看 | 国内精自线一二区永久 | 亚洲一二区精品 | 亚洲欧美少妇 | 国产精品11 | 激情综合网五月激情 | 日韩毛片精品 | 在线视频欧美精品 | 久久久久女教师免费一区 | 91自拍视频在线观看 | 涩涩爱夜夜爱 | 精品字幕在线 | 国产精品免费视频网站 | 在线免费观看的av | 91丨九色丨丝袜 | av在线免费在线观看 | 久久久伦理 | 91在线精品观看 | 国产精品视频 | 人人看黄色 | 人人舔人人插 | av丝袜天堂 | 99国产一区 | 久久午夜国产 | 91成人精品一区在线播放69 | 日一日操一操 | 综合国产在线 | 91chinese在线 | 国产午夜一区二区 | 99爱视频在线观看 | 中文字幕资源在线观看 | 97在线资源 | 久久艹人人| 国产一区二区手机在线观看 | 在线观看欧美成人 | a精品视频 | 国产精品午夜久久 | 成年人国产视频 | 夜夜躁狠狠躁日日躁 | 色婷婷综合成人av | 亚洲综合五月 | 最近中文字幕在线中文高清版 | 一二三区高清 | 超碰97免费 | 成人99免费视频 | 亚洲理论在线 | 五月婷av| 国产91精品高清一区二区三区 | 天天干.com | 91高清完整版在线观看 | 狠狠色噜噜狠狠狠狠 | 久久人人爽爽 | 亚洲成人精品 | 欧美综合色在线图区 | 中文字幕电影高清在线观看 | 日韩av手机在线看 | 在线欧美日韩 | 成人黄色免费观看 | 免费日韩 精品中文字幕视频在线 | 日p视频在线观看 | 久精品视频免费观看2 | av成人免费网站 | 久久精品123 | 日韩黄色在线电影 | 亚洲黄色在线播放 | 国产精品久久久久国产精品日日 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 欧美一级小视频 | 日韩激情小视频 | 日本黄色大片免费 | 成人三级网站在线观看 | 国产一区欧美在线 | 在线观看成人毛片 | 国内精品视频一区二区三区八戒 | 亚洲成人精品在线观看 | 天天操天天插 | 999超碰 | 亚洲免费精品一区二区 | 久久九九影视网 | 国产va饥渴难耐女保洁员在线观看 | 伊人视频 | 天天天天天天天天操 | www.狠狠插.com | 亚洲色图 校园春色 | 亚洲 欧美 变态 国产 另类 | 国产精品久久久一区二区 | 91视频下载| 四虎亚洲精品 | 中国一区二区视频 | 国产精品一区二区三区观看 | .国产精品成人自产拍在线观看6 | 一级片免费视频 | 808电影免费观看三年 | 久久伦理 | 97色在线视频 | 久久这里只有精品9 | 亚洲午夜精 | 久久一区国产 | 亚洲免费公开视频 | 国产成人精品国内自产拍免费看 | 亚洲妇女av | 日韩亚洲国产精品 | 成人h动漫精品一区二 | 中文字幕电影在线 | 欧美三人交| 99热这里 | 免费精品视频在线 | 在线综合 亚洲 欧美在线视频 | 亚洲蜜桃在线 | 91av视频在线播放 | 精品国产理论 | www.亚洲| 粉嫩高清一区二区三区 | 精品久久久999 | 在线观看aaa | 成人黄色国产 | 国产精品一区二区中文字幕 | 久久视频精品在线观看 | 日韩精品亚洲专区在线观看 | 久久视讯 | 亚洲一区二区三区在线看 | 波多野结衣视频一区 | 亚洲视频 在线观看 | 国产一区成人 | 最近中文字幕视频完整版 | 欧美日韩亚洲在线 | 手机在线黄色网址 | 在线观看免费版高清版 | 午夜视频一区二区三区 | 日韩精品免费一区二区在线观看 | 国产在线无 | 97成人精品视频在线播放 | 亚洲视频久久 | 国产精品久久久久久久久久久久午夜 | 成人国产精品av | 黄色免费网站 | 色婷婷久久久综合中文字幕 | 久久99精品久久只有精品 | 美女视频永久黄网站免费观看国产 | 国产成人精品久久久久蜜臀 | 色老板在线视频 | 亚洲精选视频免费看 | 国产精品国产三级国产不产一地 | 国产精品欧美久久久久三级 | 国产麻豆精品久久一二三 | 亚洲综合欧美日韩狠狠色 | 国产精品va在线观看入 | 婷婷色五 | 国产亚洲在线观看 | 美女久久久久久久久久 | 成人av一区二区在线观看 | 日本大尺码专区mv | 一区 在线观看 | 91视频在线免费下载 | 欧美精品亚洲精品日韩精品 | 美女激情影院 | 在线观看91视频 | 九九在线视频免费观看 | 日日摸日日爽 | 精品一区二区三区久久 | 人人插人人爱 | 亚洲极色 | 久久99精品国产99久久 | 日本爱爱片 | 久久久久免费精品视频 | 色综合久久综合网 | 亚洲观看黄色网 | 91精品秘密在线观看 | 国产专区在线 | 欧美精品成人在线 | 五月天综合| 亚洲综合网站在线观看 | 久草视频在线资源 | 亚洲无在线 | 亚洲激情一区二区三区 | 天天干天天综合 | 久久99精品久久久久婷婷 | 中文在线免费看视频 | 丁香六月国产 | 最新日韩视频在线观看 | 美女视频黄色免费 | 久久亚洲影院 | 国产精品手机在线 | 精品一区二区在线播放 | 国产一区国产二区在线观看 | 又黄又刺激视频 | 久久视频在线免费观看 | 亚洲黄色av网址 | 久草在线免费色站 | 国产精品一区二区av日韩在线 | 国产精品高潮在线观看 | 久久九九精品 | 日韩在线视频播放 | 九九免费在线观看 | 午夜久久久久久久 | 国产精品11| 天天色天天综合 | 亚洲精品中文字幕在线 | 日韩久久久久久久 | 96视频免费在线观看 | av一级片在线观看 | 国产精品精品国产色婷婷 | 狠狠干免费 | 少妇搡bbbb搡bbb搡忠贞 | 国产日韩视频在线观看 | 人人视频网站 | 久久男人中文字幕资源站 | 天天射天天操天天色 | 91最新视频在线观看 | 日韩一区二区在线免费观看 | 国产精品18久久久久久久久久久久 | 亚洲欧洲精品一区二区精品久久久 | 久久99精品久久久久婷婷 | 国产精品第10页 | 精品嫩模福利一区二区蜜臀 | 亚洲综合网站在线观看 | 97超碰人人澡人人 | 亚洲视频在线观看 | 国产精品久久久久久久久大全 | 成 人 黄 色视频免费播放 | 国产区久久 | 国产精品国产亚洲精品看不卡15 | 日韩精品一区二区三区免费观看视频 | 高清精品久久 | 久久视频国产 | 伊人五月天综合 | 久久99国产精品自在自在app | 91视频在线观看免费 | 香蕉手机在线 | 六月丁香色婷婷 | 日韩av电影一区 | 国产第一页福利影院 | 中文字幕成人一区 | 成人免费毛片aaaaaa片 | 精品免费99久久 | 亚洲精品国产精品久久99 | 中文在线www| 欧美一级电影 | 日韩精品一区二区不卡 | 香蕉视频在线网站 | 久日视频 | 国产高清视频在线 | av大全在线看 | 免费涩涩网站 | 国产成人专区 | 日本性xxx | 一区二区三区在线电影 | 视频福利在线观看 | 国产精品免费小视频 | 成人av在线直播 | 四虎4hu永久免费 | 久久久久久久国产精品影院 | 欧美三级免费 | 国产一区在线视频播放 | 综合久久影院 | 国产精品理论片在线播放 | 综合色综合 | 91免费看黄色| 久久97久久 | 成人av在线看 | 三级av网| 欧美久久久久久久久久 | 在线观看日韩免费视频 | 天天色欧美 | 在线激情网 | 国产成人精品国内自产拍免费看 | 懂色av一区二区三区蜜臀 | 91精品爽啪蜜夜国产在线播放 | 美腿丝袜一区二区三区 | 国产尤物一区二区三区 | 69av国产 | 久久九九影院 | 成年人免费在线观看网站 | www久久久久 | 六月激情网 | 亚洲精品美女久久17c | 中文理论片 | 九月婷婷综合网 | 久久精品国产美女 | 天堂va在线观看 | av在线小说| 国际av在线| 超碰97成人 | 国产精品96久久久久久吹潮 | 国产日韩三级 | 国产.精品.日韩.另类.中文.在线.播放 | 欧美a视频在线观看 | 久久在线看 | 91成人在线视频 | av一区二区三区在线播放 | 91精品婷婷国产综合久久蝌蚪 | 1区2区3区在线观看 三级动图 | 有码一区二区三区 | 国产麻豆视频 | 狠狠狠综合 | 99成人免费视频 | 国产一区电影在线观看 | 欧美少妇xxxxxx | 欧美91片 | 日韩精品久久久久久久电影99爱 | 97精品国产97久久久久久免费 | 天天操夜夜爱 | 狠狠操天天射 | 免费黄色在线网站 | 国产日韩在线观看一区 | 国产精品麻豆果冻传媒在线播放 | 亚洲天堂精品 | 色妞色视频一区二区三区四区 | 高清中文字幕 | 欧美激情视频在线观看免费 | av成年人电影 | 粉嫩av一区二区三区四区在线观看 | 欧美大片www| 成人午夜精品 | 色网址99 | 精品国产自在精品国产精野外直播 | 国产精品不卡一区 | 国产精品婷婷午夜在线观看 | 在线免费观看国产黄色 | 成人中文字幕在线 | 国产精品去看片 | 久久成人人人人精品欧 | 久久国产剧场电影 | 成片免费观看视频大全 | 亚洲女同ⅹxx女同tv | 欧美日韩国产一区 | 日本中文乱码卡一卡二新区 | 欧美粗又大 | 国产成人黄色片 | 亚洲国产精品推荐 | 亚洲成色777777在线观看影院 | 亚洲va韩国va欧美va精四季 | 国产视频黄 | 夜夜爽天天爽 | 亚洲做受高潮欧美裸体 | 五月天色中色 | 日韩精选在线观看 | 亚洲精品一区二区三区新线路 | 国产大片黄色 | 成人黄视频 | 亚洲欧洲精品一区二区 | 色婷婷激情电影 | 国产精品男女啪啪 | 久久爱资源网 | 免费中文字幕视频 | 天天综合导航 | 91精品成人久久 | 少妇bbb搡bbbb搡bbbb′ | 亚洲久草网 | 婷婷香蕉| 国产精品一区二区免费视频 | 国产精品免费观看网站 | 国产伦理剧 | 99中文在线 | 四虎国产视频 | 最近日本字幕mv免费观看在线 | 久久r精品| 国产精品一级视频 | 日韩精品一区在线播放 | 伊人日日干 | 免费看黄色毛片 | 伊人久在线 | 1024久久| 91精品婷婷国产综合久久蝌蚪 | 亚洲欧洲精品在线 | 黄色三级免费看 | 免费在线观看成年人视频 | 国产精彩视频一区 | 免费一级片视频 | 91成人在线视频观看 | 91色综合 | 亚洲黄色软件 | 97av在线视频 | 日韩综合一区二区三区 | 一区二区三区高清 | 久久精品高清视频 | 色97在线 | 久久最新 | 国产伦理一区二区三区 | 日本精品视频在线 | 亚洲美女在线一区 | 天天操天天摸天天爽 | 亚洲人成人天堂h久久 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 91精品在线免费 | 欧美色就是色 | 日韩高清 一区 | 日本中文字幕在线 | 亚洲国产剧情 | 国产小视频你懂的 | 国产一二三区在线观看 | 夜夜骑日日操 | av大全在线免费观看 | 久久久久久国产精品 | 国产大片免费久久 | 天天操天天玩 | 久久久视频在线 | 精品久久综合 | 丰满少妇对白在线偷拍 | 久草a在线 | 911香蕉| www久草 | 国产成人精品免费在线观看 | 免费在线观看视频a | 成年人在线看片 | 免费91麻豆精品国产自产在线观看 | 伊甸园av在线 | 中文字幕在线观看日本 | 欧美精选一区二区三区 | 国内精品久久久精品电影院 | 69精品久久 | 去看片 | 中文字幕在线播放一区 | 成x99人av在线www | 992tv在线成人免费观看 | av成人黄色| 成人av资源站 | 国产高清不卡av | 欧美日韩精品在线免费观看 | 国产视频在线观看一区 | 国产精品9999久久久久仙踪林 | 国产黄色理论片 | 操操操com | 少妇精品久久久一区二区免费 | 日韩三级一区 | 久久久久激情视频 | 久久久91精品国产一区二区三区 | 久久国产综合视频 | 亚洲精品小视频 | 国产视频九色蝌蚪 | 天天做天天爱夜夜爽 | 成年人黄色在线观看 | 美女网站在线播放 | 日韩三级免费观看 | 欧美精品一区二区蜜臀亚洲 | 麻豆国产露脸在线观看 | 亚洲色图 校园春色 | www欧美xxxx| 国产在线观看99 | 97超碰人| 日韩成人邪恶影片 | 97成人免费 | 欧美a级免费视频 | 色开心| 久久经典视频 | 麻花豆传媒mv在线观看网站 | 国产精品免费在线观看视频 | 色婷久久 | 免费在线激情电影 | 亚洲成人av在线 | 日韩特级片 | 色婷婷狠狠干 | 狠狠色丁香久久婷婷综合丁香 | 99精品区| 欧美亚洲精品在线观看 | 国产精品成久久久久三级 | 349k.cc看片app| 日本视频不卡 | 99精品视频在线播放观看 | 丁香花中文在线免费观看 | 中文字幕免费一区二区 | 91资源在线 | 91夫妻视频| 国产九色在线播放九色 | 狠狠夜夜 | 日韩电影在线一区二区 | 国产精品人人做人人爽人人添 | 一本一本久久a久久精品综合 | 麻豆传媒视频在线 | 日韩在线观看你懂的 | 久久久久久久久艹 | 国产裸体无遮挡 | 亚洲影院色 | 99色亚洲 | 日日天天av | 国产伦理久久精品久久久久_ | 欧美精品久久久久久久久久久 | av电影免费观看 | 干综合网 | 精品国产一区二区三区四 | 欧美日韩精品在线播放 | 日本午夜免费福利视频 | 成年人app网址 | 国产精品成人av久久 | 一级国产视频 | 涩涩网站在线看 | 一级特黄aaa大片在线观看 | 少妇bbb好爽| 亚洲黄色免费观看 | 欧美日韩精品在线免费观看 | 天天爱天天舔 | 日韩二区在线观看 | 成人久久18免费网站麻豆 | 日韩网站免费观看 | 天天综合色| 麻豆视频在线免费 | 亚州av一区| 欧美日韩视频在线一区 | 久久99久久99精品免费看小说 | 91精品国产99久久久久久久 | 99国产在线视频 | 久久久久久久久久免费视频 | 久久精品免费 | 99精品免费网| 色噜噜在线观看 | 亚洲一区美女视频在线观看免费 | www黄在线 | 综合天天色 | 日韩精品亚洲专区在线观看 | 91成人在线看 | 又黄又爽免费视频 | 久久久国产一区二区三区 | 六月丁香色婷婷 | 91精品国产亚洲 | 午夜精品久久久久久久爽 | 在线观看久草 | 一区二区不卡在线观看 | 97视频免费观看 | www婷婷| 五月天网页 | 亚洲国产欧美一区二区三区丁香婷 | 成人a视频在线观看 | 九九亚洲精品 | 久久久国产日韩 | 91视频下载| 99婷婷| 国产精品久久久久久久久久久久午 | 国产中年夫妇高潮精品视频 | 国产小视频在线 | 四虎成人免费影院 | 精品国产人成亚洲区 | 国产精品ssss在线亚洲 | 国产日韩在线视频 | 91一区啪爱嗯打偷拍欧美 | 国产一级二级三级在线观看 | 久久久官网 | 黄色小说18 | 久久国产精品99久久久久久老狼 | 日韩欧美高清不卡 | 天天操天天爱天天干 | 免费情趣视频 | 国产精品成人国产乱 | 亚洲日本欧美 | 久久色中文字幕 | 中文字幕在线专区 | av在线免费不卡 | 激情网在线观看 | 国产麻豆精品久久一二三 | 国产一级在线看 | 亚洲精品a区 | 免费a网址| 欧美日韩中字 | 国产精品久免费的黄网站 | 国产中文字幕网 | 欧美91精品| 免费观看视频黄 | 精品亚洲国产视频 | 青青河边草免费 | 日韩一区二区三免费高清在线观看 | 成人91av| 91网址在线看 | 亚洲精品国产精品99久久 | 在线观看免费一级片 | 国产在线播放观看 | 日韩精品中文字幕在线播放 | 国产精品一区二区久久久久 | 午夜精品久久久久久久爽 | 国产69久久久 | 国产中文字幕大全 | 天天综合网在线观看 | 麻豆91精品| 久久久国产一区二区三区 | 丝袜一区在线 | 国产精品二区在线 | 久久久久久久久免费视频 | 久爱精品在线 | 日韩免费看视频 | 国产精品久久久久久久电影 | 亚洲精品欧美视频 | 久久精品电影网 | 国产美女在线观看 | 亚洲综合成人在线 | 天天色天天射天天干 | 国产亚洲日本 | 久久影院精品 | 久久超碰97| www.天天草| 久久精品xxx | 亚洲va欧美 | 国产大片黄色 | 91av在线不卡 | 精品国内自产拍在线观看视频 | 日本在线观看中文字幕 | 中国一级片在线播放 | 日批网站免费观看 | 久草在线综合 | 九九免费精品 | 国产成人精品一二三区 | 91精品1区2区 | 久久成人一区二区 |