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

可信网站是什么意思网络系统管理属于什么专业类别

可信网站是什么意思,网络系统管理属于什么专业类别,thinkphp手机网站模板,asp程序网站后台发布产品的时候前台怎么不显示产品名称目录 前言 在 WebGL 或 OpenGL 中#xff0c;“varying” 是一种用于在顶点着色器和片元着色器之间传递数据的特殊类型的变量。它允许在顶点着色器对数据进行处理后#xff0c;在片元着色器中使用该处理后的数据进行进一步计算。 彩色三个点 ​编辑 彩色三个点示例代码…目录 前言 在 WebGL 或 OpenGL 中“varying” 是一种用于在顶点着色器和片元着色器之间传递数据的特殊类型的变量。它允许在顶点着色器对数据进行处理后在片元着色器中使用该处理后的数据进行进一步计算。  彩色三个点  ​编辑 彩色三个点示例代码 varying变量使用规范  彩色三角形 几何形状的装配和光栅化 红色三角形示例代码 顶点坐标 -- 图形装配 -- 光栅化 -- 执行片元着色器 图元装配过程 光栅化过程 顶点着色器和片元着色器之间图形装配和光栅化的过程详解 第1步执行顶点着色器缓冲区对象中的第1个坐标0.00.5被传递给attribute变量a_Position。一旦一个顶点的坐标被赋值给了gl_Position它就进入了图形装配区域并暂时储存在那里。你应该还记得我们仅仅显式地向a_Position赋了x分量和y分量所以向z分量和w分量赋的是默认值进入图形装配区域的坐标其实是0.00.50.01.0。 第2步再次执行顶点着色器类似地将第2个坐标-0.5-0.50.01.0传入并储存在装配区。 第3步第3次执行顶点着色器将第3个坐标0.5-0.50.01.0传入并储存在装配区。现在顶点着色器执行完毕三个顶点坐标都已经处在装配区了。 第4步开始装配图形。使用传入的点坐标根据gl.drawArrays的第一个参数信息gl.TRIANGLES来决定如何装配。本例使用三个顶点来装配出一个三角形。 第5步显示在屏幕上的三角形是由片元像素组成的所以还需要将图形转化为片元这个过程被称为光栅化rasterization。光栅化之后我们就得到了组成这个三角形的所有片元。在上图中的最后一步你可以看到光栅化后得到的组成三角形的片元。 调用片元着色器 做个试验根据片元的位置来确定片元颜色 gl.drawingBufferWidth / gl.drawingBufferHeight 显示效果 varying变量的作用和内插过程 varying变量的行为 ​编辑varying变量的内插​编辑 颜色值的内插 总结  前言 在 WebGL 或 OpenGL 中“varying” 是一种用于在顶点着色器和片元着色器之间传递数据的特殊类型的变量。它允许在顶点着色器对数据进行处理后在片元着色器中使用该处理后的数据进行进一步计算。  彩色三个点  彩色三个点示例代码 // 顶点着色器 var VSHADER_SOURCE attribute vec4 a_Position;\n attribute vec4 a_Color;\n varying vec4 v_Color;\n // varying 变量void main() {\n gl_Position a_Position;\n gl_PointSize 10.0;\n v_Color a_Color;\n // 将数据传给片元着色器}\n;// 片元着色器 var FSHADER_SOURCE precision mediump float;\n // 设置varing精度varying vec4 v_Color;\n // 从顶点着色器接受数据void main() {\n gl_FragColor v_Color;\n }\n;function main() {var canvas document.getElementById(webgl);var gl getWebGLContext(canvas);// 设置顶点的坐标和颜色var n initVertexBuffers(gl);gl.clearColor(0.0, 0.0, 0.0, 1.0);gl.clear(gl.COLOR_BUFFER_BIT);gl.drawArrays(gl.POINTS, 0, n); }function initVertexBuffers(gl) {var verticesColors new Float32Array([// 顶点坐标和颜色0.0, 0.5, 1.0, 0.0, 0.0, -0.5, -0.5, 0.0, 1.0, 0.0, 0.5, -0.5, 0.0, 0.0, 1.0, ]);var n 3; // 顶点数量// 创建缓冲区对象var vertexColorBuffer gl.createBuffer(); if (!vertexColorBuffer) {console.log(Failed to create the buffer object);return false;}// 将顶点坐标和颜色写入缓冲区对象gl.bindBuffer(gl.ARRAY_BUFFER, vertexColorBuffer);gl.bufferData(gl.ARRAY_BUFFER, verticesColors, gl.STATIC_DRAW);var FSIZE verticesColors.BYTES_PER_ELEMENT;// 获取a_Position的存储位置分配缓冲区并开启var a_Position gl.getAttribLocation(gl.program, a_Position);gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, FSIZE * 5, 0);gl.enableVertexAttribArray(a_Position); // 开启变量// 获取a_Color的存储位置分配缓冲区并开启var a_Color gl.getAttribLocation(gl.program, a_Color);gl.vertexAttribPointer(a_Color, 3, gl.FLOAT, false, FSIZE * 5, FSIZE * 2);gl.enableVertexAttribArray(a_Color); // 开启缓冲区分配return n; }varying变量使用规范  在顶点着色器中我们声明了attribute变量a_Color用以接收颜色数据第4行然后声明了新的varying变量v_Color该变量负责将颜色值将被传给片元着色器第5行。注意varying变量只能是float以及相关的vec2vec3vec4mat2mat3和mat4类型的。 我们将a_Color变量的值直接赋给之前声明的v_Color变量第9行。  那么片元着色器该如何接收这个变量呢答案很简单只需要在片元着色器中也声明一个与顶点着色器中的那个varying 变量同名varying变量就可以了 在WebGL中如果顶点着色器与片元着色器中有类型和命名都相同的varying变量那么顶点着色器赋给该变量的值就会被自动地传入片元着色器如下图所示。  所以顶点着色器赋给v_Color变量的值第9行被传递给了片元着色器中的v_Color变量然后片元着色器将v_Color赋值给gl_FragColor这样每个顶点的颜色将被修改第17行。  数组verticesColor中有两种不同类型的数据坐标和颜色。现在的颜色有3个分量值所以每个顶点所占字节数是FSIZE5需要修改相应的gl.vertexAttribPointer函数的stride参数和offset参数第53和58行。 最后执行绘图命令第27行在浏览器中绘制了红、蓝、绿三个点。 彩色三角形 让我们来看看将gl.drawArrays函数的第一个参数改成gl.TRIANGLES后会怎样第27行 程序的结果如下图所示程序绘制了一个颜色平滑过渡的、三个角各是红、绿、蓝颜色的三角形。 我们只改变了一个参数程序的运行结果却从三个不同颜色的孤立的点变成了一个颜色平滑过渡的三角形。到底发生了什么 几何形状的装配和光栅化 为了简单起见这里拿一个红色三角形的代码来解释 红色三角形示例代码 我们在initVertexBuffers函数中将顶点坐标写入了缓冲区对象第50行和第52行然后将缓冲区对象分配给a_Position变量第74行。最后调用gl.drawArrays执行顶点着色器第46行。当顶点着色器执行时缓冲区中的三个顶点坐标依次传给了a_Position变量第4行再赋值给gl_Position第6行这样WebGL系统就可以根据顶点坐标进行绘制。在片元着色器中我们将红色的RGBA值1.00.00.01.0赋给gl_FragColor这样就画出了一个红色的三角形。 可是直到现在你还是不明白这究竟是如何做到的在你向gl_Position给出了三角形的三个顶点的坐标时片元着色器又怎样才能进行所谓的逐片元操作呢 如下图显示了问题所在程序向gl_Position给出了三个顶点的坐标谁来确定这三个点就是三角形的三个顶点最终为了填充三角形内部谁来确定哪些像素需要被着色谁来负责调用片元着色器片元着色器又是怎样处理每个片元的 顶点坐标 -- 图形装配 -- 光栅化 -- 执行片元着色器 在顶点着色器和片元着色器有这样两个步骤 图元装配过程 这一步的任务是将孤立的顶点坐标装配成几何图形。几何图形的类别由gl.drawArrays函数的第一个参数决定。 光栅化过程 这一步的任务是将装配好的几何图形转换为片元。 上图所示gl_Position实际上是几何图形装配geometric shape assembly阶段的输入数据。注意几何图形装配过程又被称为图元装配过程primitive assembly process因为被装配出的基本图形点、线、面又被称为图元primitives。  顶点着色器和片元着色器之间图形装配和光栅化的过程详解 第1步执行顶点着色器缓冲区对象中的第1个坐标0.00.5被传递给attribute变量a_Position。一旦一个顶点的坐标被赋值给了gl_Position它就进入了图形装配区域并暂时储存在那里。你应该还记得我们仅仅显式地向a_Position赋了x分量和y分量所以向z分量和w分量赋的是默认值进入图形装配区域的坐标其实是0.00.50.01.0。 第2步再次执行顶点着色器类似地将第2个坐标-0.5-0.50.01.0传入并储存在装配区。 第3步第3次执行顶点着色器将第3个坐标0.5-0.50.01.0传入并储存在装配区。现在顶点着色器执行完毕三个顶点坐标都已经处在装配区了。 第4步开始装配图形。使用传入的点坐标根据gl.drawArrays的第一个参数信息gl.TRIANGLES来决定如何装配。本例使用三个顶点来装配出一个三角形。 第5步显示在屏幕上的三角形是由片元像素组成的所以还需要将图形转化为片元这个过程被称为光栅化rasterization。光栅化之后我们就得到了组成这个三角形的所有片元。在上图中的最后一步你可以看到光栅化后得到的组成三角形的片元。 上图为了示意只显示了10个片元。实际上片元数目就是这个三角形最终在屏幕上所覆盖的像素数。如果修改了gl.drawArrays的第1个参数那么第4步的图形装配、第5步的片元数目和位置就会相应地变化。比如说如果这个参数是gl.LINE程序就会使用前两个点装配出一条线段舍弃第3个点如果是gl.LINE_LOOP程序就会将三个点装配成为首尾相接的折线段并光栅化出一个空心的的三角形不产生中间的像素。 调用片元着色器 一旦光栅化过程结束后程序就开始逐片元调用片元着色器。在下图中片元着色器被调用了10次每调用一次就处理一个片元为了整洁下图省略了中间步骤。对于每个片元片元着色器计算出该片元的颜色并写入颜色缓冲区。直到第15步最后一个片元被处理完成浏览器就会显示出最终的结果。 红色三角形代码中的片元着色器将每个片元的颜色都指定为红色如下所示。因此浏览器就绘制出了一个红色的三角形。 做个试验根据片元的位置来确定片元颜色 这样可以证明片元着色器对每个片元都执行了一次。光栅化过程生成的片元都是带有坐标信息的调用片元着色器时这些坐标信息也随着片元传了进去我们可以通过片元着色器中的内置变量来访问片元的坐标如下表。  为了证明片元着色器是逐片元执行的我们修改了原红色三角形程序的第12行gl_FragColor vec4(1.0, 0.0, 0.0, 1.0)如下所示 从片元着色器的程序代码中可见三角形中每个片元的颜色其红色分量和蓝色分量都是根据片元的位置计算得到的。注意canvas中的Y轴方向和WebGL系统中的Y轴方向是相反的而且WebGL中的颜色分量值区间为0.0到1.0所以你需要将Y轴坐标除以canvas元素的高度400像素以将其压缩到0.0到1.0之间。我们将gl.drawingBufferWidth颜色缓冲区的宽度和gl.drawingBufferHeight颜色缓冲区的高度的值传给uniform变量u_Width和u_Height。下面彩色三角形显示了程序的运行结果一个三角形像素颜色由像素的位置决定从左上方到右下方呈现一个渐变效果。  gl.drawingBufferWidth / gl.drawingBufferHeight gl.uniform1f(u_Width, gl.drawingBufferWidth); // 颜色缓冲区的宽度下面同理 高度gl.uniform1f(u_Height, gl.drawingBufferHeight);显示效果 由于片元颜色取决于它的坐标位置所以很自然地片元颜色会随着片元位置逐渐变化三角形呈现平滑的颜色渐变效果。 varying变量的作用和内插过程 现在我们已经了解了顶点着色器与片元着色器之间的几何图形装配和光栅化过程明白了WebGL系统是怎样逐片元执行片元着色器的了。 回到上面彩色三角形程序这个程序也可以用刚学到的知识来解释为什么在顶点着色器中只是指定了每个顶点的颜色最后得到了一个具有渐变色彩效果的三角形呢事实上我们把顶点的颜色赋值给了顶点着色器中的varying变量v_Color它的值被传给片元着色器中的同名、同类型变量即片元着色器中的varying变量v_Color如下图所示。但是更准确地说顶点着色器中的v_Color变量在传入片元着色器之前经过了内插过程。所以片元着色器中的v_Color变量和顶点着色器中的v_Color变量实际上并不是一回事这也正是我们将这种变量称为“varying”变化的变量的原因。 varying变量的行为 varying变量的内插 更准确地说在红色三角形中我们在varying变量中为三角形的3个不同顶点指定了3种不同颜色而三角形表面上这些片元的颜色值都是WebGL系统用这3个顶点的颜色内插出来的。 例如考虑一条两个端点的颜色不同的线段。一个端点的颜色为红色1.00.00.0而另一个端点的颜色为蓝色0.00.01.0。我们在顶点着色器中向varying变量v_Color赋上这两个颜色红色和蓝色那么WebGL就会自动地计算出线段上的所有点片元的颜色并赋值给片元着色器中的varying变量v_Color如下图所示。 颜色值的内插 在这个例子中RGBA中的R值从1.0降低为0.0而B值则从0.0上升至1.0线段上的所有片元的颜色值都会被恰当地计算出来——这个过程就被称为内插过程interpolation process。一旦两点之间每个片元的新颜色都通过这种方式被计算出来后它们就会被传给片元着色器中的v_Color变量。  再来看红色三角形的程序代码。在顶点着色器中我们将三角形的3个顶点的颜色赋给了varying变量v_Color第9行然后片元着色器中的varying变量 v_Color就接收到了内插之后的片元颜色。在片元着色器中我们把片元的颜色赋值给gl_FragColor变量第19行这样就绘制出了一个彩色的三角形同理每一个varying变量都会经过这样的内插过程。 总结  顶点着色器和片元着色器之间的过程非常重要。光栅化也是三维图形学的关键技术之一它负责将矢量的几何图形转变为栅格化的片元像素。图形被转化为片元之后我们就可以在片元着色器内做更多的事情如为每个片元指定不同的颜色。颜色可以内插出来也可以直接编程指定。 
文章转载自:
http://www.morning.zmyzt.cn.gov.cn.zmyzt.cn
http://www.morning.rbcw.cn.gov.cn.rbcw.cn
http://www.morning.bsxws.cn.gov.cn.bsxws.cn
http://www.morning.pqppj.cn.gov.cn.pqppj.cn
http://www.morning.mgmyt.cn.gov.cn.mgmyt.cn
http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn
http://www.morning.yltyz.cn.gov.cn.yltyz.cn
http://www.morning.bwnd.cn.gov.cn.bwnd.cn
http://www.morning.wwkft.cn.gov.cn.wwkft.cn
http://www.morning.csjps.cn.gov.cn.csjps.cn
http://www.morning.yunease.com.gov.cn.yunease.com
http://www.morning.csjps.cn.gov.cn.csjps.cn
http://www.morning.dmzqd.cn.gov.cn.dmzqd.cn
http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn
http://www.morning.thbnt.cn.gov.cn.thbnt.cn
http://www.morning.yrngx.cn.gov.cn.yrngx.cn
http://www.morning.yfphk.cn.gov.cn.yfphk.cn
http://www.morning.grxyx.cn.gov.cn.grxyx.cn
http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn
http://www.morning.nlqgb.cn.gov.cn.nlqgb.cn
http://www.morning.tdscl.cn.gov.cn.tdscl.cn
http://www.morning.yqsq.cn.gov.cn.yqsq.cn
http://www.morning.tongweishi.cn.gov.cn.tongweishi.cn
http://www.morning.jpkk.cn.gov.cn.jpkk.cn
http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn
http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn
http://www.morning.pxjp.cn.gov.cn.pxjp.cn
http://www.morning.lzttq.cn.gov.cn.lzttq.cn
http://www.morning.rynqh.cn.gov.cn.rynqh.cn
http://www.morning.qcnk.cn.gov.cn.qcnk.cn
http://www.morning.rqxtb.cn.gov.cn.rqxtb.cn
http://www.morning.poapal.com.gov.cn.poapal.com
http://www.morning.c7625.cn.gov.cn.c7625.cn
http://www.morning.lxjxl.cn.gov.cn.lxjxl.cn
http://www.morning.wmglg.cn.gov.cn.wmglg.cn
http://www.morning.ghgck.cn.gov.cn.ghgck.cn
http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn
http://www.morning.bxfy.cn.gov.cn.bxfy.cn
http://www.morning.fnwny.cn.gov.cn.fnwny.cn
http://www.morning.xkppj.cn.gov.cn.xkppj.cn
http://www.morning.pnljy.cn.gov.cn.pnljy.cn
http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn
http://www.morning.cffwm.cn.gov.cn.cffwm.cn
http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn
http://www.morning.xdlwm.cn.gov.cn.xdlwm.cn
http://www.morning.fnywn.cn.gov.cn.fnywn.cn
http://www.morning.thzwj.cn.gov.cn.thzwj.cn
http://www.morning.zxfr.cn.gov.cn.zxfr.cn
http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn
http://www.morning.qjxxc.cn.gov.cn.qjxxc.cn
http://www.morning.fqqlq.cn.gov.cn.fqqlq.cn
http://www.morning.gjmbk.cn.gov.cn.gjmbk.cn
http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn
http://www.morning.hlzpb.cn.gov.cn.hlzpb.cn
http://www.morning.zlgbx.cn.gov.cn.zlgbx.cn
http://www.morning.bqnhh.cn.gov.cn.bqnhh.cn
http://www.morning.lksgz.cn.gov.cn.lksgz.cn
http://www.morning.dbrpl.cn.gov.cn.dbrpl.cn
http://www.morning.kndyz.cn.gov.cn.kndyz.cn
http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn
http://www.morning.bpmtz.cn.gov.cn.bpmtz.cn
http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn
http://www.morning.madamli.com.gov.cn.madamli.com
http://www.morning.mflhr.cn.gov.cn.mflhr.cn
http://www.morning.lftpl.cn.gov.cn.lftpl.cn
http://www.morning.dbjyb.cn.gov.cn.dbjyb.cn
http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn
http://www.morning.xsqbx.cn.gov.cn.xsqbx.cn
http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn
http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn
http://www.morning.jcfqg.cn.gov.cn.jcfqg.cn
http://www.morning.nhdw.cn.gov.cn.nhdw.cn
http://www.morning.llgpk.cn.gov.cn.llgpk.cn
http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn
http://www.morning.xmnlc.cn.gov.cn.xmnlc.cn
http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn
http://www.morning.csnch.cn.gov.cn.csnch.cn
http://www.morning.geledi.com.gov.cn.geledi.com
http://www.morning.kljhr.cn.gov.cn.kljhr.cn
http://www.morning.ydxx123.cn.gov.cn.ydxx123.cn
http://www.tj-hxxt.cn/news/250190.html

相关文章:

  • 个人微信公众号怎么做微网站网站备案号注销查询系统
  • 北京有哪些网站公司西安哪家网络公司做网站
  • 网站建设与运营答案一键搭建网站
  • 网站底部友情链接怎么做的网站建设2017国内排行
  • 黄埔免费网站建设网站屏蔽搜索引擎
  • 邯郸形象网站建设网站开发通用流程
  • 即刻搜索收录网站织梦模板大气网站建设类网站模板
  • 遵义公司做网站天津南开做网站
  • 网站前端建设需要学会什么意思做网站软件dw
  • 潍坊网站建设怎样线下推广公司
  • 高端建站服务商手机app制作公司郑州
  • 手机网站淘宝客怎么做做网站的外包公司上班好不好
  • m开头的手机网站怎么做小程序代理加盟条仿
  • 网站备案 公司注销做长页网站
  • wordpress突然很慢云南放心seo整站优化
  • 哪些网站是用asp.net开发的发网站视频做啥格式最好
  • 学校网站建设情况介绍下载源代码建网站
  • 网站开发工期安排群晖 搭建两个wordpress
  • 用小米路由器做网站河池市民政局门户网站建设
  • dedecms做自适应网站整站排名
  • 做网站建设需要什么资质自己怎么优化网站
  • 建网站 温州网站建设网站建设
  • 网站设计报价单网站建设价格与哪些
  • 北京一家专门做会所的网站wordpress积分推广插件
  • 网站如何做链接比较开放的浏览器网址
  • 网站做seo需要哪些准备做儿童成长相册模版网站
  • 分享网站制作如何免费制作网站
  • 大连模板网站制作价格ipsw 是谁做的网站
  • 岳阳网站优化discuz和wordpress哪个好
  • 如何网站推广宣传品牌设计公司简介