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

潜江做网站哪家好长春建设厅网站首页

潜江做网站哪家好,长春建设厅网站首页,wordpress后台登录界面,在线图片编辑尺寸大小1. 说明 在OPenGL中#xff0c;需要使用GLSL语言来编写着色器的函数#xff0c;在顶点着色器和片段着色器之间需要参数值的传递#xff0c;且在CPU中的数据也需要传递到顶点着色器中进行使用。本文简单介绍几种参数传递的方式#xff1a; #xff08;本文内容仅个人理解需要使用GLSL语言来编写着色器的函数在顶点着色器和片段着色器之间需要参数值的传递且在CPU中的数据也需要传递到顶点着色器中进行使用。本文简单介绍几种参数传递的方式 本文内容仅个人理解有错请评论纠正… 函数解读 glVertexAttribPointer(参数一,参数二,参数三,参数四,参数五,参数六) 参数一标号和顶点着色器中layout(locationn)的location值对应这样找到的数据就会自动传输给layout(locationn)对应的变量 参数二连续寻找几个值一般是3个位置坐标/颜色rgb值 参数三数值的类型 参数四一般都是GL_FALSE 参数五寻找完需要的值的个数后下一次在寻找需要跨越多少步长 参数六起始寻找位置的指针偏移量寻址起始位置 下文用到的形式含义说明 glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,6*sizeof (float),(void*)0);//从第0个位置为起始位置开始找数据每次找3个查找结束后跨6个位置当起始位置继续找 glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,6*sizeof (float),(void*)(3*sizeof(float)));//从第3个位置为起始位置开始找数据每次找3个查找结束后跨6个位置当起始位置继续找 //上面的起始位置是最后一个参数决定的跨度是第五个参数决定的2. 方式一关键字 in / out 一般OPenGL的渲染流程是从CPU中拿到顶点数据然后传输到顶点着色器中经过顶点着色器的处理会传输到片段着色器中进行再次处理。那么顶点着色器和片段着色器之间的参数传递就可使用 in / out 关键字来传输。需要注意的是变量的名称要保证完全相同这样OPenGL在底层遇到 in / out修饰的变量后会自动将这两个同名变量连接到一起进行参数传输示例代码如下 顶点着色器代码 #version 330 core layout (location 0) in vec3 aPos; //in 修饰说明是从外界传输过来的 out vec4 vertexColor; //out修饰说明是需要传输到外部的 void main(){gl_Position vec4(aPos,1.0);vertexColor vec4(0.5,0.0,0.0,1.0); }片段着色器代码 #version 330 core out vec4 FragColor; //out修饰说明是需要传输到外部的 in vec4 vertexColor; //使用 in 修饰定义同名变量底层会将顶点着色器中的同名变量和这个变量进行连接实现着色器间参数传递 void main(){FragColor vertexColor; }3. 方式二使用 layout 定位 layout一般是用在顶点着色器中定义变量的比如当VAO通过定义的方式在VBO中拿到数据后那么拿到的数据怎样传输给顶点着色器中进行使用呢此时就可以使用 layout 这个关键字。如下 //加入有数据 vertices float vertices[] { //每一行数据的前三个是位置坐标后三个是颜色值0.5f,0.5f,0.5f,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,0.5f,0.5f,0.5f, } //下面代码的意思是定义一个变量这个变量的数据是从VAO中获取以 location 为标记来确定是哪一个VAO layout (location 0) in vec3 aPos;//在initializeGL()函数中我们需要使用VAO通过某种方式在VBO缓存中拿数据有可能是位置坐标数据也有可能是纹理数据所以可能会设置多个VAO来获取数据那么上面的变量 aPos 怎么确定自己要在哪一个VAO中接收数据呢就是通过上面 location 的值比如 //告诉VAO怎么在VBO中拿数据 glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,6*sizeof (float),(void*)0); //上行代码的第一个参数指定VAO在VBO中取数据时的起始位置同时也和顶点着色器中变量的 location 值对应两者相同则说明这个VAO后续查询获取的数据会传递到顶点着色器中并赋予对应变量比如上述查询到的数据会赋值给 aPos; //例2 //顶点着色器中定义变量 layout (location 1) in vec3 aColor; //在initializeGL()函数中 glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,6*sizeof (float),(void*)(3*sizeof(float))); //上一行代码注意第一个参数是1和顶点着色器中变量 aColor 的 location 1 是对应的 //例2中VAO查询到的数据会赋值给 aColor 变量4. 方式三使用 attributeLocation() 查询属性并定位 //比如我们在顶点着色器中定义变量 in vec3 aPos; //未用关键字修饰in仅表示此变量是外界输入进来的 //在initializeGL()函数中 //先初始化着色器并绑定 //添加着色器 shaderProgram.addShaderFromSourceFile(QOpenGLShader::Vertex,:/shaders/Shaders/shape.vert);//注意此处的路径最好用相对路径绝对路径可能会打不开文件 shaderProgram.addShaderFromSourceFile(QOpenGLShader::Fragment,:/shaders/Shaders/shape.frag); shaderProgram.link(); //将两个着色器文件连接到一起 //查询着色器中变量位置 GLint posLocation shaderProgram.attributeLocation(aPos);//里面的参数是需要查找的变量名称 //后面设置VAO时使用上面这个变量(即可将获取到的数据传递给指定位置的变量) glVertexAttribPointer(posLocation,3,GL_FLOAT,GL_FALSE,6*sizeof (float),(void*)(3*sizeof(float)));5. 方式四使用 bindAttributeLocation() 直接绑定属性位置 与方式三类似唯一不同的是此方式自己定义位置并绑定到指定属性上不需要去查找属性的位置。 //比如我们在顶点着色器中定义变量 in vec3 aPos; //未用关键字修饰in仅表示此变量是外界输入进来的 //在initializeGL()函数中 //先初始化着色器并绑定 //添加着色器 shaderProgram.addShaderFromSourceFile(QOpenGLShader::Vertex,:/shaders/Shaders/shape.vert);//注意此处的路径最好用相对路径绝对路径可能会打不开文件 shaderProgram.addShaderFromSourceFile(QOpenGLShader::Fragment,:/shaders/Shaders/shape.frag); shaderProgram.link(); //将两个着色器文件连接到一起 //查询着色器中变量位置 GLint posLocation 1; shaderProgram.bindAttributeLocation(aPos,posLocation);//直接随意设置个标志绑定到属性上 //后面设置VAO时使用上面这个变量(即可将获取到的数据传递给指定位置的变量) glVertexAttribPointer(posLocation,3,GL_FLOAT,GL_FALSE,6*sizeof (float),(void*)(3*sizeof(float)));6. 方式五使用 uniform 定义全局属性 上面的方式一到方式四一般是用在顶点着色器中而使用 uniform 修饰的变量可以定义在任意着色器中可以在任意着色器程序在任意阶段进行访问。 比如在片段着色器中定义一个变量 ourColor如下图所示 上面片段着色器中的变量 ourColor 是可以在外界传入的比如在 initializeGL() 函数中进行设置 shaderProgram.setUniformValue(ourColor,0.0f,0.5f,0.0f,1.0f);//注意变量名要写正确持续更新中请大家多多关注…
http://www.w-s-a.com/news/135931/

相关文章:

  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务
  • 课程网站模板贵州省城乡与建设厅网站
  • 网站模板及源码谁家网站用户体验做的好
  • 做网站的技术要求搜索栏在wordpress菜单上位置
  • 如何给网站弄ftpwordpress怎么添加关键词描述
  • 成都工程建设信息网站金科网站建设
  • 传媒公司 网站开发厦门网站建设门户
  • 宿城区建设局网站做网站的绿色背景图
  • 网站空间托管合同 .doc网站开发团队 组建
  • 网站建设书本信息it运维服务
  • 四核网站建设设计网站流程
  • ui设计网站设计与网页制作视频教程wordpress插件漏洞利用
  • 网站建设公司排名前十做网站的最终目的
  • 选择网站开发公司的标准中国网站建设市场规模
  • 衣服网站建设策划书广州住房和城乡建设部网站
  • 微商城科技淄博网站建设优化seo
  • 杭州 网站设计制作东圃手机网站开发
  • 网站文章页内链结构不好可以改吗微信平台如何开发
  • 炫酷业务网站课程网站如何建设方案
  • 网站建设服务器可以租吗wordpress微信打赏
  • 网站制作的重要流程图大连网站优化快速排名
  • 河南省住房建设厅官方网站注册公司邮箱需要什么
  • 美橙网站注册华为手机网站建设策划方案论文
  • 河南省和建设厅网站首页在线图片翻译
  • 关于备案空壳网站清理通知去别人网站挂黑链
  • 做网站待遇世界购物平台排行榜