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

掌网站开发的基本流程旅游网站建设ppt

掌网站开发的基本流程,旅游网站建设ppt,山东网站制作公司排名,现代农业建设 乡网站1.使用glm数学库进行矩阵和向量的计算 2.位置坐标可以看做一个向量 3.向量的移动#xff0c;缩放#xff0c;旋转#xff0c;都是可以通过和矩阵的计算得出 4.向量的缩放乘一个44的矩阵 5.注意事项#xff08;有些版本的glm::mat4 不是默认构建一个单位44的矩阵#xff09…1.使用glm数学库进行矩阵和向量的计算 2.位置坐标可以看做一个向量 3.向量的移动缩放旋转都是可以通过和矩阵的计算得出 4.向量的缩放乘一个44的矩阵 5.注意事项有些版本的glm::mat4 不是默认构建一个单位44的矩阵这个时候需要手动赋值glm::mat4 matval glm::mat4(1.0f); #include GL/glew.h #include glfw3.h #include SOIL2.h //glfw :graphics library framework 图形库框架 // 作用1.用于创建和管理跨平台的窗口 2. 处理输入鼠标键盘等 ; 3.用于创建和管理opengl上下文//glewopengl extension Wrangler 用于管理opengl 扩展的开源库 // 作用 1.用于加载扩展函数2.查询扩展支持 #include glm/glm.hpp #include glm/gtc/matrix_transform.hpp #include glm/gtc/type_ptr.hpp#include stdio.h #include iostream//顶点着色器源码 glsl const GLchar* vertexSource #version 330 core \n \layout(location0) in vec3 position;\layout(location1) in vec3 color;\layout(location2) in vec2 texcoodr;\out vec4 outcolor;\out vec2 outtexcoodr;\uniform mat4 transformkk;\ void main()\ {\ gl_Positiontransformkk*vec4(position, 1.0f); outcolorvec4(color,1.0f); outtexcoodrtexcoodr;\ };//GLSL 语言 mix, texture, sampler2D 采样器变量 const GLchar* fragmentSource #version 330 core \n \in vec4 outcolor;\in vec2 outtexcoodr;\out vec4 color;\uniform sampler2D ourtexture;\uniform sampler2D ourtexture2;\uniform float mixval;\void main(){\vec2 coord vec2(outtexcoodr.x , 1.0f - outtexcoodr.y);\color mix(texture(ourtexture,outtexcoodr),texture(ourtexture2,coord),mixval);\};GLfloat mixval 0.2f; void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) {if (key GLFW_KEY_UP action GLFW_PRESS){mixval 0.1f;if (mixval 1.0f){mixval 1.0f;}}else if (key GLFW_KEY_DOWN action GLFW_PRESS){mixval - 0.1f;if (mixval 0.0f){mixval 0.0f;}} } int main() {//初始化使用到的 glfw库glfwInit();//创建窗口GLFWwindow* window glfwCreateWindow(600, 500, opengl texture exercise, nullptr, nullptr);//指定当前上下文glfwMakeContextCurrent(window);//初始化opengl 扩展库glewInit();//创建目标着色器以及管线管理程序GLuint vertexShader, fragmentShader, program;GLint succeed;GLchar buff[512];//顶点着色器vertexShader glCreateShader(GL_VERTEX_SHADER);//加载顶点着色器源码glShaderSource(vertexShader, 1, vertexSource, (GLint*)0);//第三个参数是指向一个整数数组数组每个字符串的长度glCompileShader(vertexShader);//编译着色器源码glGetShaderiv(vertexShader, GL_COMPILE_STATUS, succeed);if (!succeed){glGetShaderInfoLog(vertexShader, 512, NULL, buff);//第三个参数返回日志的实际长度null表示不用返回}//片段着色器fragmentShader glCreateShader(GL_FRAGMENT_SHADER);glShaderSource(fragmentShader, 1, fragmentSource, (GLint*)0);glCompileShader(fragmentShader);glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, succeed);if (!succeed){glGetShaderInfoLog(fragmentShader, 512, NULL, buff);}//创建着色器程序program glCreateProgram();glAttachShader(program, vertexShader);glAttachShader(program, fragmentShader);glLinkProgram(program);glDeleteShader(vertexShader);glDeleteShader(fragmentShader);//定义数据数组 ,矩形 两个三角形组成, 四个点每个点对于的颜色值和纹理坐标位置//GLfloat vertexArray[] {// /* 点位置 颜色 纹理坐标*/// 0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 1.0f, 2.0f, 2.0f,// 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 2.0f, 0.0f,// -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,// -0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 2.0f,//};GLfloat vertexArray[] {// Positions // Colors // Texture Coords0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // Top Right0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // Bottom Right-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // Bottom Left-0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f // Top Left };//GLfloat vertexArray[] {// 0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 1.0f, 0.51f, 0.51f,// 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.51f, 0.49f,// -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.49f, 0.49f,// -0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.49f, 0.51f,//};//元素数组三角形的点的数组索引GLuint eArray[] {0, 1, 3,1, 2, 3};//创建顶点数组对象 VAO 顶点缓存对象 VBO, 元素缓存对象EBOGLuint VAO, VBO, EBO;//创建顶点数组对象,用于管理和封装顶点缓存数组以及数据解析方式。 一个顶点数组对象可以管理好几个数据缓存对象的配置信息//顶点属性指针顶点缓存保存glGenVertexArrays(1, VAO);glBindVertexArray(VAO);//创建vboglGenBuffers(1, VBO);//绑定顶点缓存对象glBindBuffer(GL_ARRAY_BUFFER, VBO);//在GPU创建缓和初始化 VBO 的数据存储glBufferData(GL_ARRAY_BUFFER, sizeof(vertexArray), vertexArray, GL_STATIC_DRAW);//创建EBOglGenBuffers(1, EBO);//绑定元素缓存对象glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);//加载数据到CPU缓存glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(eArray), eArray, GL_STATIC_DRAW);//配置顶点属性指针:如何解析数据输入到顶点着色器里面类似顶点着色器输入参数的一种数据格式// 顶点属性数组的索引 个数 类型 是否标准化 步长stride, 偏移量glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(GLfloat), (GLvoid*)0);//使能顶点属性数组索引值glEnableVertexAttribArray(0);glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(GLfloat), (GLvoid*)(3 * sizeof(GLfloat)));glEnableVertexAttribArray(1);glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(GLfloat), (GLvoid*)(6 * sizeof(GLfloat)));glEnableVertexAttribArray(2);//解绑 顶点数组对象glBindBuffer(GL_ARRAY_BUFFER, 0);//纹理//1.0 创建纹理对象GLuint texture1, texture2;glGenTextures(1, texture1);//2.0 绑定纹理对象glBindTexture(GL_TEXTURE_2D, texture1);//3.0 设置纹理配置参数值glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);//超出纹理坐标的纹理如何处理纹理环绕方式x 轴 s 轴glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);//超出纹理坐标的纹理如何处理纹理环绕方式Y 轴 T 轴glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); //纹理过滤方式 最近glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);//线性//4.0 根据图片生成纹理图形int width, height;unsigned char *image SOIL_load_image(container.jpg, width, height, 0, SOIL_LOAD_RGB);glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);//设置2d纹理图像数据glGenerateMipmap(GL_TEXTURE_2D);//生成纹理的所有级别的缩放图像SOIL_free_image_data(image);glBindTexture(GL_TEXTURE_2D, 0); //相当于保存该纹理配置不会弄乱/*GL_REPEAT 对纹理的默认行为。重复纹理图像。GL_MIRRORED_REPEAT 和GL_REPEAT一样但每次重复图片是镜像放置的。GL_CLAMP_TO_EDGE 纹理坐标会被约束在0到1之间超出的部分会重复纹理坐标的边缘产生一种边缘被拉伸的效果。GL_CLAMP_TO_BORDER 超出的坐标为用户指定的边缘颜色。*/glGenTextures(1, texture2);glBindTexture(GL_TEXTURE_2D, texture2);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);unsigned char* image2 SOIL_load_image(awesomeface.png, width, height, 0, SOIL_LOAD_RGB);glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image2);glGenerateMipmap(GL_TEXTURE_2D);//设置纹理缩放图像SOIL_free_image_data(image2);glBindTexture(GL_TEXTURE_2D, 0);//设置鼠标事件回调glfwSetKeyCallback(window, key_callback);while (!glfwWindowShouldClose(window)){glm::vec4 vect(1.0f, 1.0f, 0.0f, 1.0f);glm::mat4 transformkk glm::mat4(1.0f); // ({ 1.0f, 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f, 1.0f });glfwPollEvents();glClearColor(0.5f, 0.5f, 0.2f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);//清除缓存区 颜色缓存区glActiveTexture(GL_TEXTURE0);glBindTexture(GL_TEXTURE_2D, texture1);glUniform1i(glGetUniformLocation(program, ourtexture), 0);glActiveTexture(GL_TEXTURE1);glBindTexture(GL_TEXTURE_2D, texture2);glUniform1i(glGetUniformLocation(program, ourtexture2), 1);transformkk glm::rotate(transformkk, (GLfloat)glfwGetTime()*5.0f, glm::vec3(0.0, 0.0, 1.0));transformkk glm::translate(transformkk, glm::vec3(0.5, 0.5, 0.5));glUniformMatrix4fv(glGetUniformLocation(program, transformkk), 1, GL_FALSE, glm::value_ptr(transformkk));glUniform1f(glGetUniformLocation(program, mixval), mixval);//使能着色器程序glUseProgram(program);glBindBuffer(GL_ARRAY_BUFFER, VAO);glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);glm::mat4 transformdd glm::mat4(1.0f);transformdd glm::translate(transformdd, glm::vec3(-0.5, 0.5, 0.0));transformdd glm::scale(transformdd, glm::vec3(sin((GLfloat)glfwGetTime()), sin((GLfloat)glfwGetTime()), 1.0));glUniformMatrix4fv(glGetUniformLocation(program, transformkk), 1, GL_FALSE, glm::value_ptr(transformdd));glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);glBindBuffer(GL_ARRAY_BUFFER, 0);glfwSwapBuffers(window);}glDeleteVertexArrays(1, VAO);glDeleteBuffers(1, VBO);glDeleteBuffers(1, EBO);glfwTerminate();return 0; };
http://www.hkea.cn/news/14319042/

相关文章:

  • 网页与网站设计实验报告遵义在线论坛
  • 著名网站建设公司资阳网站建设
  • 网站后台怎么修改代码wordpress 群
  • 网站哪里做达州网站建设yufanse
  • 吕梁网站制作吕梁安全网站360全景图怎么做
  • 深圳网站优讳化做网站的用什么电脑好
  • 电商网站开发模块跨境电商资讯网
  • 哪家专门做特卖的网站网站设计就业
  • pc wap 装修公司网站源码ps做网站心得
  • 网站开发实战上海网站建设百度推广公司
  • 摄影网站建设的意义flash个人网站欣赏
  • 苏州行业网站建设旅游网站html5代码模板
  • 网站运营学习网站规划书包括哪些方面
  • 宁波网站关键词优化代码网站建设承揽合同
  • ftp上传网站全教程凡科做的网站为什么打不开
  • 阅读网站怎样做千博医院网站模板
  • 宁波网站制作出售wordpress更改主站点
  • 北京网站优化软件公司网站套餐网页
  • 网站信息化建设方案wordpress add post meta
  • 外贸出口建站做网站的商家怎么后去流量费
  • php语言 电商网站建设网页设计与制作ppt课件
  • 外贸石材网站wordpress 图像主题
  • 华为商城网站设计分析wordpress自带的邮件系统
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码免费建站哪个网站最好
  • 衡水网站建设找谁店铺设计理念怎么写
  • 网站首页被降权的原因好的模板网站建设
  • 建网站需要多少钱和什么条件有关wordpress migrate.min.js是什么
  • 中国做爰网站个人小程序源码
  • 医院网站建设台账网站 网址 域名
  • 中国银行全球门户网站用织梦网站后台发布文章为什么还需要审核