日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OpenGL学习笔记(2) 画一个正方形

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL学习笔记(2) 画一个正方形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

畫一個正方形

其實,畫正方形就是畫兩個三角形,用四個頂點以及使用索引來實現
完整代碼在Square項目的Application.cpp里
先貼上窗口初始化代碼

void BaseInit() {glfwInit();//初始化glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//配置GLFWglfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//配置GLFWglfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);float screenWidth = 800.0f;float screenHeight = 600.0f;//創建窗口glWindow = glfwCreateWindow(screenWidth, screenHeight, "LearnOpenGL", nullptr, nullptr);if (glWindow == nullptr){cout << "Failed to create GLFW window" << endl;glfwTerminate();return;}glfwMakeContextCurrent(glWindow);if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){std::cout << "Failed to initialize GLAD" << std::endl;return;}

畫一個普通的正方形

void NormalSquare() {float vertices[] = {// ---- 位置 ----0.5f, 0.5f, 0.0f, // 右上0.5f, -0.5f, 0.0f, // 右下-0.5f, -0.5f, 0.0f, // 左下-0.5f, 0.5f, 0.0f, // 左上};//索引unsigned int indices[] = {0,1,3,1,2,3};//編譯著色器Shader ourShader("vertex_1.vs", "fragment_1.fs");ourShader.use();//glUseProgram(shaderProgram);unsigned int VAO;//頂點數組glGenVertexArrays(1, &VAO);glBindVertexArray(VAO);//綁定頂點數組緩存unsigned int VBO;glGenBuffers(1, &VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);//綁定索引緩存unsigned int EBO;glGenBuffers(1, &EBO);glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);// 位置屬性glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);while (!glfwWindowShouldClose(glWindow)){glClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);//drawglBindVertexArray(VAO);glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);glBindVertexArray(0);glfwPollEvents();glfwSwapBuffers(glWindow);}glDeleteVertexArrays(1, &VAO);glDeleteBuffers(1, &VBO);glDeleteBuffers(1, &EBO);glfwTerminate(); }

最終效果

畫一個彩色的正方形

和上一個筆記里畫彩色三角形的邏輯一樣,在頂點屬性后面加上顏色屬性,設置數據訪問指針的屬性,記得頂點著色器要加上顏色的輸入(步長和相位)

//彩色正方形 void ColourfulSquare() {float vertices[] = {// ---- 位置 ---- ---- 顏色 ---- 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, // 右上0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, // 右下-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, // 左下-0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, // 左上};//索引unsigned int indices[] = {0,1,3,1,2,3};//編譯著色器Shader ourShader("vertex_4.vs", "fragment_4.fs");ourShader.use();//glUseProgram(shaderProgram);unsigned int VAO;//頂點數組glGenVertexArrays(1, &VAO);glBindVertexArray(VAO);//綁定頂點數組緩存unsigned int VBO;glGenBuffers(1, &VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);//綁定索引緩存unsigned int EBO;glGenBuffers(1, &EBO);glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);// 位置屬性glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);// 顏色屬性glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)(3 * sizeof(float))); //最后一個參數是數據的起點glEnableVertexAttribArray(1);while (!glfwWindowShouldClose(glWindow)){glClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);//drawglBindVertexArray(VAO);glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);glBindVertexArray(0);glfwPollEvents();glfwSwapBuffers(glWindow);}glDeleteVertexArrays(1, &VAO);glDeleteBuffers(1, &VBO);glDeleteBuffers(1, &EBO);glfwTerminate(); }

最終效果

可以試試線框模式,在while之前加上
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
效果圖

轉載于:https://www.cnblogs.com/NightFrost/p/10792605.html

總結

以上是生活随笔為你收集整理的OpenGL学习笔记(2) 画一个正方形的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 免费看的黄色小视频 | 夜夜操网 | 日本午夜一区 | 国产中文字字幕乱码无限 | 天天色棕合合合合合合合 | 嫩草影院一区二区三区 | 亚洲欧美色图片 | 色男人av| 成人激情小视频 | 亚洲国产毛片aaaaa无费看 | 狠狠撸视频| 噼里啪啦国语高清 | 三级影片在线播放 | 日本少妇全体裸体洗澡 | a毛片视频 | 亚洲免费成人 | 久久艹艹 | 国模一区二区 | 欧美激情校园春色 | 天天色综网 | 久久久久无码国产精品一区李宗瑞 | 国产传媒视频在线 | 欧美性猛交xx乱大交 | 欧美乱轮视频 | 国产精品视频一区二区在线观看 | 久操福利 | 日日夜夜爽爽 | www.久久爱 | 一区二区三区四区免费视频 | www.爱色av.com | 日本一区免费看 | 国产精品永久在线 | 久久bb | 丁香婷婷网 | 欧日韩在线观看 | 国产一区二区免费视频 | 性生活网址 | 国产白丝袜美女久久久久 | 在线观看免费视频一区 | 国产a级片 | 少妇学院在线观看 | 欧美日韩国产中文字幕 | 国产精品一区二区久久国产 | 天天插日日插 | 国产亚洲色婷婷久久 | av资源站最新av | 久久不卡免费视频 | 国产成人免费av | 清冷学长被爆c躁到高潮失禁 | 少妇高潮一区二区三区四区 | 波多野吉衣视频在线观看 | 国产成人超碰人人澡人人澡 | 中文字幕777 | 久久久久久久亚洲av无码 | 亚洲天天操 | 婷婷爱五月 | 日日日操操操 | 激情欧美一区 | 九九精品视频在线 | 亚洲伊人天堂 | 久久久久久久一 | 国产精品老熟女一区二区 | 欧美激情黑人 | 久久久久久久9999 | 黄色av一区 | 成熟妇人a片免费看网站 | 奇米影视久久 | 日本在线资源 | 51精品国产人成在线观看 | 欧美欧美欧美欧美 | 黄色录像片子 | 毛茸茸成熟亚洲人 | 亚洲精品欧洲精品 | 久久精品日韩无码 | 真实的国产乱xxxx在线91 | 成人精品久久 | 欧美成年人 | 天堂在线免费观看视频 | 波多野结衣电影免费观看 | 日本黄区免费视频观看 | 成年人看片网站 | 亚洲7777| 午夜视频大全 | 日韩视频网| 亚洲午夜av在线 | 午夜剧场免费观看 | 午夜天堂精品 | 中文字幕永久在线视频 | 成人国产综合 | 久久免费视频99 | 色婷婷丁香 | 天天躁日日躁aaaa视频 | 少妇精品一区二区 | 日日摸日日添日日碰9学生露脸 | 手机在线看片 | 韩国日本欧美一区 | 国产成人三级在线 | 高h捆绑拘束调教小说 | 91无限观看 |