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

河南省建设厅网站地址商务网站建设毕业设计模板下载

河南省建设厅网站地址,商务网站建设毕业设计模板下载,河南工程建设有哪些,国内品牌营销成功案例LearnOpenGL——混合、面剔除 混合 Blending一、丢弃片段 Alpha Test二、混合 Alpha Blending渲染顺序 面剔除一、环绕顺序二、面剔除 混合 Blending OpenGL中#xff0c;混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明的物体可以是完全透明的#xff0… LearnOpenGL——混合、面剔除 混合 Blending一、丢弃片段 Alpha Test二、混合 Alpha Blending渲染顺序 面剔除一、环绕顺序二、面剔除 混合 Blending OpenGL中混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明的物体可以是完全透明的让所有的颜色穿过或者是半透明的它让颜色通过同时也会显示自身的颜色。一个物体的透明度是通过它颜色的alpha值来决定的。Alpha颜色值是颜色向量的第四个分量范围为0.0-1.0 一、丢弃片段 Alpha Test 比如草图片草本身是不透明的其余部分是透明的在场景中我们不希望看到草的方形图片而只显示草部分并能看透图像其余部分想要丢弃(Discard)显示纹理中透明部分的片段不将这些片段存储到颜色缓冲中 加载透明纹理需要告诉OpenGL我们使用了透明度通道GL_RGBA之前是GL_RGB glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);在片元着色器中也要保证获取了四个颜色分量而不是将a值设为1.0 void main() {// FragColor vec4(vec3(texture(texture1, TexCoords)), 1.0);FragColor texture(texture1, TexCoords); }GLSL给了我们discard命令一旦被调用它就会保证片段不会被进一步处理所以就不会进入颜色缓冲。有了这个指令我们就能够在片段着色器中检测一个片段的alpha值是否低于某个阈值如果是的话则丢弃这个片段 #version 330 core out vec4 FragColor;in vec2 TexCoords;uniform sampler2D texture1;void main() { vec4 texColor texture(texture1, TexCoords);if(texColor.a 0.1)discard;FragColor texColor; }在纹理采样时因为我们设置了GL_REPEAT并使用了透明值纹理图像的顶部将会与底部边缘的纯色值进行插值会得到一个半透明的有色边框效果不好。解决办法是使用透明度纹理时将纹理环绕格式设置为GL_CLAMP_TO_EDGE glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, format GL_RGBA ? GL_CLAMP_TO_EDGE : GL_REPAEAT); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, format GL_RGBA ? GL_CLAMP_TO_EDGE : GL_REPAEAT);二、混合 Alpha Blending alpha test会直接丢弃面片但是不能制作半透明物体这个时候需要用到alpha blend使用Gl_BLEND来开启透明度混合 glEnable(GL_BLEND);开启之后我们需要告诉OpenGL该如何混合 Csource源颜色向量。这是源自纹理的颜色向量 —— 半透明物体Cdes目标颜色向量。这是当前存储在颜色缓冲中的颜色向量 —— 被覆盖的物体Fsource源因子值。指定了alpha值对源颜色的影响设置为想要的alpha值Fdes目标因子值。指定alpha值对目标颜色的影响两个alpha值相加为1 片元着色器执行完毕后所有测试都通过后混合方程才会应用到片元颜色输出与当前颜色缓冲中的值。glBlendFunc函数可以用来设置两个因子。 glBlendFunc(GLenum sfactor, GLenum dfactor)也可以使用glBlendFuncSeparate为RGB和alpha通道分别设置不同的选项。 glBlendEquation(GLenum mode) 允许我们设置运算符通常我们都可以省略调用glBlendEquation因为GL_FUNC_ADD对大部分的操作来说都是我们希望的混合方程提供了三个选项 GL_FUNC_ADD将两个分量相加CresultSrcDstGL_FUNC_SUBTRACT两个分量相减CresultSrc−DstGL_FUNC_REVERSE_SUBTRACT两个分量相减但顺序相反CresultDst−Src 渲染顺序 对于有不透明物体和透明物体的场景的时候 先绘制所有不透明物体将所有透明物体排序按从后往前的顺序绘制透明物体 对场景物体排序可以通过从观察者视角来获取物体的距离即计算物体到摄像机的距离。下面我们会用距离和它对应的位置向量存储到STL库的map数据结构中map会自动根据键值进行排序所以我们需要把距离作为键根据distance键值从低到高储存了每个窗户的位置 std::mapfloat, glm::vec3 sorted; for (unsigned int i 0; i windows.size(); i) {float distance glm::length(camera.Position - windows[i]);sorted[distance] windows[i]; }之后我们会逆向从远到近从map中取值绘制透明窗户。使用了map的一个反向迭代器(Reverse Iterator) for(std::mapfloat,glm::vec3::reverse_iterator it sorted.rbegin(); it ! sorted.rend(); it) {model glm::mat4();model glm::translate(model, it-second); shader.setMat4(model, model);glDrawArrays(GL_TRIANGLES, 0, 6); }对场景物体排序很困难且开销很大可以考虑更加高级的技术“次序无关透明度” 面剔除 对于看不见的面就不要绘制避免浪费能省下超过50%的片段着色器执行数 面剔除(Face Culling)OpenGL能够检查所有面向(Front Facing)观察者的面并渲染它们而丢弃那些背向(Back Facing)的面节省我们很多的片段着色器调用它们的开销很大但我们仍要告诉OpenGL哪些面是正向面(Front Face)哪些面是背向面(Back Face)可以通过分析顶点数据的环绕顺序来判断。 一、环绕顺序 默认情况下逆时针顶点所定义的三角形将会被处理为正向三角形。实际的环绕顺序是在光栅化阶段进行的也就是顶点着色器运行之后。 在顶点数据中我们将两个三角形都以逆时针顺序定义正面的三角形是1、2、3背面的三角形也是1、2、3如果我们从正面看这个三角形的话 二、面剔除 OpenGL的面剔除默认是禁用状态的设置GL_CULL_FACE glEnable(GL_CULL_FACE);但注意这只对像立方体这样的封闭形状有效对于透明度测试的草时我们还需要看到背面所以要禁用面剔除 OpenGL允许我们改变剔除的面的类型调用 glCullFace() 来定义这一行为初始值是GL_BACK GL_BACK只剔除背向面。GL_FRONT只剔除正向面。GL_FRONT_AND_BACK剔除正向面和背向面。 glCullFace(GL_FRONT);OpenGL也允许我们设置正向面的绘制顺序调用 glFrontFace() 可以改为顺时针默认是GL_CCW逆时针GL_CW是顺时针 glFrontFace(GL_CCW);
http://www.dnsts.com.cn/news/126666.html

相关文章:

  • 通辽市做网站公司网页制作专业个人职业生涯规划书
  • 个人网站域名申请名师工作室建设网站
  • 网站制作最便宜百度推广开户需要多少钱
  • 宜昌平台网站建设成都手机网站建设报价表
  • 网站如何做关健词收录天津网站大全
  • 怎么查找网站后台100件创意产品设计方案
  • 网站建设昆明网络公司广东网页制作二级考试题目
  • 长沙专业网站建设怎么做四川网站推广优化
  • php网站伪静态网页微信版登陆
  • jquery 的网站模板彩票网站的表格是如何做的
  • 网站的定位分析旅游网站建设项目报告论文
  • 衡阳建设公司网站qq怎么分享wordpress
  • 小型网站开发教程怎么用Visio studio做网站
  • DW建设网站过程中出现的问题网站推广宣传语
  • 石家庄网站设计制作八方建设集团有限公司网站
  • 营销公司网站模板网站建设伍首选金手指
  • 自己做网站生意怎么样小程序搭建流程有哪五步骤
  • 做app原型的网站基于5G的网站设计
  • 做一电影网站怎么赚钱wordpress 准迁
  • 如何设计出更好用户体验的网站扁平化购物网站模板
  • 工具型网站网站架构设计英文翻译
  • 自己做社交网站温州网站运营
  • 公司网站邮箱费用专业关键词排名软件
  • 营销型网站如何建设app界面设计开题报告
  • 宁波自助模板建站小学网站怎么做
  • 体育网站建设的分析wordpress输出
  • 国外用的网站网站建设有模板吗
  • 名作之壁吧网站建设城乡建设局官方网站
  • 广东圆心科技网站开发0基础网站建设教程视频教程
  • 建站教程的实现方式金蝶软件公司简介