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

为什么做的网站别的浏览器打不开怎么办德惠网站

为什么做的网站别的浏览器打不开怎么办,德惠网站,有哪些企业可以做招聘的网站有哪些方面,内蒙古城乡和建设厅网站最近在做滤镜相关的渲染学习#xff0c;目前大部分 LUT 滤镜代码实现都是参考由 GPUImage 提供的 LookupFilter 的逻辑#xff0c;整个代码实现不多。参考网上的博文也有各种解释#xff0c;参考了大量博文之后终于理解了#xff0c;所以自己重新整理了一份#xff0c;方便…最近在做滤镜相关的渲染学习目前大部分 LUT 滤镜代码实现都是参考由 GPUImage 提供的 LookupFilter 的逻辑整个代码实现不多。参考网上的博文也有各种解释参考了大量博文之后终于理解了所以自己重新整理了一份方便以后阅读理解对整体代码的实现过程结合LUT的原理进行一个简单整理。 GPUImageLookupFilter shader 源码 varying highp vec2 textureCoordinate; varying highp vec2 textureCoordinate2;uniform sampler2D inputImageTexture; // 目标纹理对应原始资源uniform sampler2D inputImageTexture2; // 查找表纹理对应LUT图片uniform lowp float intensity;void main(){//获取原始图层颜色highp vec4 textureColor texture2D(inputImageTexture, textureCoordinate);//获取蓝色通道颜色textureColor.b 的范围为(0,1)blueColor 范围为(0,63) highp float blueColor textureColor.b * 63.0;//quad1为查找颜色所在左边位置的小正方形highp vec2 quad1;quad1.y floor(floor(blueColor) / 8.0);quad1.x floor(blueColor) - (quad1.y * 8.0);//quad2为查找颜色所在右边位置的小正方形highp vec2 quad2;quad2.y floor(ceil(blueColor) / 8.0);quad2.x ceil(blueColor) - (quad2.y * 8.0);//获取到左边小方形里面的颜色值highp vec2 texPos1;texPos1.x (quad1.x * 0.125) 0.5/512.0 ((0.125 - 1.0/512.0) * textureColor.r);texPos1.y (quad1.y * 0.125) 0.5/512.0 ((0.125 - 1.0/512.0) * textureColor.g);//获取到右边小方形里面的颜色值highp vec2 texPos2;texPos2.x (quad2.x * 0.125) 0.5/512.0 ((0.125 - 1.0/512.0) * textureColor.r);texPos2.y (quad2.y * 0.125) 0.5/512.0 ((0.125 - 1.0/512.0) * textureColor.g);//获取对应位置纹理的颜色 RGBA 值lowp vec4 newColor1 texture2D(inputImageTexture2, texPos1);lowp vec4 newColor2 texture2D(inputImageTexture2, texPos2);//真正的颜色是 newColor1 和 newColor2 的混合lowp vec4 newColor mix(newColor1, newColor2, fract(blueColor));gl_FragColor mix(textureColor, vec4(newColor.rgb, textureColor.w), intensity);}整个源码的主要逻辑为查找颜色所在位置的小正方形、查找小正方形内的具体颜色、颜色混合。上面注释已将具体的实现过程描述清楚但与我们的 LUT 图片割裂接下来结合 LUT 的实现原理以及具体的数据来形象地描述整个实现流程。 假设我们输入的参数为 textureColor ver4(.0, .0, 0.5, 1.0) 查找颜色所在位置的小正方形 我们知道LUT有64个小正方形目标是为了找到对应小正方形里面的对应的颜色我们需要先确认是第几个小正方形正是通过 textureColor.b * 63 查找 带入blueColor - textureColor.b 0.5 对 textureColor.b * 63.0 31.5 也就是说我们需要第 [31.5] 位置小正方形但是索引(从0-63共64个)都是正数对于 31.5 索引 我们该怎么确定是 31 还是第 32 个呢GPUImage给出的一种插值方式就是两个都要然后进行一次混合从而使得值能够俊均匀的在两个小正方形色块中。 具体逻辑为 quad1.y floor(floor(blueColor) / 8.0) 3确定为小方块在纵坐标索引3也就是第4行。 quad1.x floor(blueColor) - (quad1.y * 8.0) 31 - 24 7 也就确定了小方块为(3,7) 也就是第4排第8个。 同理对于第2个小方块确定的位置为(4,0) 也就是第5排第1个。 quad2.y floor(ceil(blueColor) / 8.0) 4 quad2.x ceil(blueColor) - (quad2.y * 8.0) 0 查找小正方形内的具体颜色 已经获取到对应的方块了接下来需要确定方块内的像素的位置了。一般一个LUT的大小为 512x512由8x8小方块构成也就是每个方块的的像素为64x64如下图所示 计算x坐标的逻辑为 texPos1.x (quad1.x * 0.125) 0.5/512.0 ((0.125 - 1.0/512.0) * textureColor.r) 这一段是相对比较难理解的我们可以分几部分进行理解 第一部分(quad1.x * 0.125) 我们得到 quad1.x 7也就是第8列*0.125将坐标转化在(0,1)之间也就是得到在01坐标系内如图红线的位置。 第二部分((0.125 - 1.0/512.0) * textureColor.r) 我们可以把它当成 (63.0/512.0)* textureColor.r , 63.0/512.0代表着一个512x512中每个小方块的64份数据为什么是63别忘了0的存在textureColor.r 数据在 0-1之间这样就能确认在第一部分结果基础之上的偏移值。 第三部分0.5/512.0 这一部分主要是 0.5 做四舍五入运算为保证第512行取到的是511.5/512第1行取到的是 0.5/512.0。 同理计算y的坐标以及计算另一个小正方形内的位置是一样的。 最后在通过对从两个小正方形获取到的颜色进行 mix并返回给着色器GPU再对原始图像进行每一个像素点绘制从而实现滤镜的效果。 总结 LUT 对应的 Shader 执行过程主要为查找颜色所在位置的小正方形、查找小正方形内的具体颜色、颜色混合整个流程都比较好理解但代码相对而言比较难理解网上看了很多其他的大佬写的一些文章最开始自己看的时候也是很难理解的后面终于悟了所以想通过自己的理解尽力更形象地解释虽然可能也没有很形象如果还有什么疑问欢迎一起交流学习。
http://www.zqtcl.cn/news/124902/

相关文章:

  • 绵阳网站建设信赖辉煌wordpress多账号权限
  • 网站外链快速建设网站维护要学多久
  • 做网站都是用ps吗郑州网站设计培训
  • wordpress 多站点教程厦门做网站维护的公司
  • 婚纱网站建设需求分析wordpress js图片
  • seo网站怎么优化有哪些企业网站平台
  • 响应式中文网站欣赏wordpress 带分页的主题
  • 什么样的网站可以做站内站房地产的设计网站建设
  • 成都住房和城乡建设局 网站首页深圳西乡建网站
  • 商城类的网站一般怎么做开发app软件的步骤
  • 招聘网站做销售怎么样做网站后台学什么专业
  • 帮别人做彩票网站餐饮网站建设需求分析
  • 企业服务平台工程建设云深圳网站建设专业乐云seo
  • 怎么建立小公司网站抖音运营推广
  • 无锡地区做网站嵌入式软硬件开发
  • 网站建设框架怎么写企业网站本身应该就是企业( )的一部分
  • 如果做公司网站WordPress出现归档
  • 温州开发网站公司阿里云 拦截网站
  • 网站建设与管理实践实践报告南宁小程序建设
  • 网站后台功能技术要求网站建设 手机和pc
  • 嘉兴住房和城乡建设厅网站仿网站被封怎么办
  • 设计君seo查询怎么查
  • 购物网站ppt怎么做网站建设的申请理由
  • 美食网站要怎么做背景墙素材高清图片免费
  • 广东专业网站优化制作公司做编辑器的网站
  • 优惠券怎做网站自己注册网站
  • 网站建设中应该返回502还是301动画短视频制作教程
  • o2o网站设计公司韩都衣舍网站建设
  • 做网站用别人的源码可以吗在线视频制作
  • 响应式网站 有哪些弊端北京网站建设怎么样