当前位置: 首页 > news >正文

曲靖市网站建设_网站建设公司_React_seo优化

模板建站是什么,金华网站建设解决方案,大一python基础编程题,怎么在网站挂黑链接OpenGL简介 OpenGL#xff08;Open Graphics Library#xff09;是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像#xff08;二维的亦可#xff09;#xff0c;是一个功能强大#xff0c;调用方便的底层图形库。OpenGL是行业领域中…OpenGL简介 OpenGLOpen Graphics Library是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像二维的亦可是一个功能强大调用方便的底层图形库。OpenGL是行业领域中最为广泛接纳的 2D/3D 图形 API其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。 GLFW简介 GLFWGraphics Library Framework它是一个小型 C 库允许使用 OpenGL 上下文创建和管理窗口从而也可以使用多个监视器和视频模式。它同时提供对键盘、鼠标和操纵杆输入的访问。 GLAD简介 由于OpenGL驱动版本众多大多数函数的位置都无法在编译时确定下来需要在运行时进行查询使得开发过程较为繁琐。GLAD (Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs) 是一个开源的库可以提供一种更为简单的方法加载所有相关的OpenGL函数。 GLM简介 GLMOpenGL Mathematics是专门为OpenGL量身定做的数学库它是一个只有头文件的库可以快速实现矩阵变换等各种图形学中常用的几何计算。 三者的关系 OpenGL定义标准 → 显卡厂商编写驱动 → GLAD提供接口 → GLFW建立窗口 因为我喜欢也习惯了用clion写C所以还是决定配置clion的OpenGL环境 首先下载GLFW和glad这两个库 glad下载  glad.dav1d.de 选择最新的版本 再点这个 下载压缩包 GLFW下载 Download | GLFW 这个可能需要开一下然后下对应电脑适配版本我是Windows64下这个64位的 完事之后打开Clion创建一个新项目就叫OpenGL吧然后建立起三个目录includelibsrc 解压刚刚那两个文件夹把GLFW的include文件夹下的GLFW文件夹放到刚刚Clion项目的新目录include下然后把lib-mingw-w64文件夹下的glfw3.dll复制到新目录lib和目录cmake-build-debug下 把glad的include文件夹下的glad和KHR放到项目目录include下src文件夹下的glad.c放到项目目录src下 然后修改CMakeList.txt除了你的项目名称和cmake版本以及C版本可以不一样其他都需要修改成这个样子 cmake_minimum_required(VERSION 3.23) project(OpenGL)set(CMAKE_CXX_STANDARD 14)add_executable(OpenGL main.cpp src/glad.c) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) link_directories(${PROJECT_SOURCE_DIR}/lib) target_link_libraries(OpenGL ${PROJECT_SOURCE_DIR}/lib/glfw3.dll) 让gpt写个程序检验一下环境配置因为我还是啥也不会的才寄所以现在只能先让gpt来写一下 #include glad/glad.h #include GLFW/glfw3.h #include iostream// 顶点着色器源码 const char* vertexShaderSource R(#version 330 corelayout (location 0) in vec3 aPos;void main(){gl_Position vec4(aPos.x, aPos.y, aPos.z, 1.0);} );// 片段着色器源码 const char* fragmentShaderSource R(#version 330 coreout vec4 FragColor;void main(){FragColor vec4(1.0f, 0.5f, 0.2f, 1.0f);} );int main() {// 初始化GLFWglfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);// 创建一个窗口对象GLFWwindow* window glfwCreateWindow(800, 600, OpenGL, NULL, NULL);if (window NULL){std::cout Failed to create GLFW window std::endl;glfwTerminate();return -1;}glfwMakeContextCurrent(window);// 初始化GLADif (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){std::cout Failed to initialize GLAD std::endl;return -1;}// 编译顶点着色器unsigned int vertexShader;vertexShader glCreateShader(GL_VERTEX_SHADER);glShaderSource(vertexShader, 1, vertexShaderSource, NULL);glCompileShader(vertexShader);// 编译片段着色器unsigned int fragmentShader;fragmentShader glCreateShader(GL_FRAGMENT_SHADER);glShaderSource(fragmentShader, 1, fragmentShaderSource, NULL);glCompileShader(fragmentShader);// 链接着色器程序unsigned int shaderProgram;shaderProgram glCreateProgram();glAttachShader(shaderProgram, vertexShader);glAttachShader(shaderProgram, fragmentShader);glLinkProgram(shaderProgram);// 删除着色器glDeleteShader(vertexShader);glDeleteShader(fragmentShader);// 设置顶点数据这里我们只绘制一个三角形float vertices[] {0.5f, 0.5f, 0.0f, // 右上角0.5f, -0.5f, 0.0f, // 右下角-0.5f, -0.5f, 0.0f, // 左下角};unsigned int VBO, VAO;glGenVertexArrays(1, VAO);glGenBuffers(1, VBO);glBindVertexArray(VAO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);// 渲染循环while (!glfwWindowShouldClose(window)){glClear(GL_COLOR_BUFFER_BIT);glUseProgram(shaderProgram);glBindVertexArray(VAO);glDrawArrays(GL_TRIANGLES, 0, 3);glfwSwapBuffers(window);glfwPollEvents();}// 清理资源glDeleteVertexArrays(1, VAO);glDeleteBuffers(1, VBO);glDeleteProgram(shaderProgram);// 终止GLFWglfwTerminate();return 0; }居然可以跑证明我们的clion配置成功了  如果需要的话还可以下载glm Release GLM 0.9.8.0 · g-truc/glm (github.com) 下载后解压把里面的glm文件夹注意是下面这个放到项目的include目录下 再让gpt先生给我们写一个用glad、glm和glfw画画的程序 #include glad/glad.h #include GLFW/glfw3.h #include glm/glm.hpp #include glm/gtc/matrix_transform.hpp #include iostream #include glm/gtc/type_ptr.hpp// 顶点着色器源码 const char* vertexShaderSource R(#version 330 corelayout (location 0) in vec3 aPos;layout (location 1) in vec3 aColor;uniform mat4 model;uniform mat4 view;uniform mat4 projection;out vec3 color;void main(){gl_Position projection * view * model * vec4(aPos, 1.0);color aColor;} );// 片段着色器源码 const char* fragmentShaderSource R(#version 330 corein vec3 color;out vec4 FragColor;void main(){FragColor vec4(color, 1.0);} );int main() {// 初始化GLFWglfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);// 创建一个窗口对象GLFWwindow* window glfwCreateWindow(800, 600, OpenGL, NULL, NULL);if (window NULL){std::cout Failed to create GLFW window std::endl;glfwTerminate();return -1;}glfwMakeContextCurrent(window);// 初始化GLADif (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){std::cout Failed to initialize GLAD std::endl;return -1;}// 编译顶点着色器unsigned int vertexShader;vertexShader glCreateShader(GL_VERTEX_SHADER);glShaderSource(vertexShader, 1, vertexShaderSource, NULL);glCompileShader(vertexShader);// 编译片段着色器unsigned int fragmentShader;fragmentShader glCreateShader(GL_FRAGMENT_SHADER);glShaderSource(fragmentShader, 1, fragmentShaderSource, NULL);glCompileShader(fragmentShader);// 链接着色器程序unsigned int shaderProgram;shaderProgram glCreateProgram();glAttachShader(shaderProgram, vertexShader);glAttachShader(shaderProgram, fragmentShader);glLinkProgram(shaderProgram);// 删除着色器glDeleteShader(vertexShader);glDeleteShader(fragmentShader);// 设置顶点数据这里我们只绘制一个彩色的三角形float vertices[] {0.0f, 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 // 右下角顶点蓝色};unsigned int VBO, VAO;glGenVertexArrays(1, VAO);glGenBuffers(1, VBO);glBindVertexArray(VAO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, 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);// 设置投影矩阵glm::mat4 projection glm::perspective(glm::radians(45.0f), 800.0f / 600.0f, 0.1f, 100.0f);// 渲染循环while (!glfwWindowShouldClose(window)){glClear(GL_COLOR_BUFFER_BIT);glUseProgram(shaderProgram);// 设置视图矩阵glm::mat4 view glm::lookAt(glm::vec3(0.0f, 0.0f, 3.0f), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f));// 设置模型矩阵glm::mat4 model glm::mat4(1.0f);model glm::rotate(model, (float)glfwGetTime(), glm::vec3(0.0f, 1.0f, 0.0f));// 设置着色器uniform变量unsigned int modelLoc glGetUniformLocation(shaderProgram, model);unsigned int viewLoc glGetUniformLocation(shaderProgram, view);unsigned int projectionLoc glGetUniformLocation(shaderProgram, projection);glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model));glUniformMatrix4fv(viewLoc, 1, GL_FALSE, glm::value_ptr(view));glUniformMatrix4fv(projectionLoc, 1, GL_FALSE, glm::value_ptr(projection));glBindVertexArray(VAO);glDrawArrays(GL_TRIANGLES, 0, 3);glBindVertexArray(0);glfwSwapBuffers(window);glfwPollEvents();}// 清理资源glDeleteVertexArrays(1, VAO);glDeleteBuffers(1, VBO);glDeleteProgram(shaderProgram);// 终止GLFWglfwTerminate();return 0; }多么好看还会转
http://www.ihoyoo.com/news/33434.html

相关文章:

  • 如何查网站空间网页在线制作网站源码
  • 北京建设部安全员证书查询网站建设银行手机银行官方网站下载安装
  • 上海住房建设部官方网站如何做实体店的网站
  • 仿土巴兔网站建设wordpress 采集器
  • 自适应h5网站模板wordpress 菜单结构
  • 温州专业建站网站建设后期维护
  • 可以做申论的网站租房网58同城网租房
  • 网站做任务包括什么天津建设信息网站
  • 关于网站建设培训mysql数据做彩票网站
  • 怎么才能建立一个网站卖东西自己服务器做网站如何备案
  • 网站做关键词首页做招聘网站价格
  • 网站建设规划书3000字聊天app开发源码
  • 灵犀科技 高端网站建设首页全国住房和城乡建设厅证书查询网
  • 网站制作小图标东莞建设网站培训
  • 商洛网站建设公司公司网站维护流程
  • 协会网站建设的优势北京专业网站建设公司排名
  • 建设校园门户网站理由如何推销自己的产品
  • 网站建设的运作原理网络营销专业课程
  • 中国网站制作企业排行榜成都建站培训
  • 厦门市建设工程交易中心网站wordpress chmod
  • 某些网站字号设置样式linux建站和wordpress建站
  • 深圳建站服务公司陕西省国家示范校建设专题网站
  • 小企业公司网站怎么建百度网站 收录
  • 做网站非法吗阿里巴巴网站推广方法
  • 做网站制作利润有多少景点网站怎么做
  • 网站设计网站设计网站设计专业制作门牌
  • 建设网站流程图重庆做网站微信的公司
  • dw制作asp网站模板下载做家装的网站有什么
  • 遵义网站建设哪家好?软件商城app下载安卓版
  • 网站建设三网合一是什么网站视频下载软件