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

网站费用福州网站建设流程

网站费用,福州网站建设流程,临川区建设局网站,南安网站开发在WebGL中#xff0c;uniform变量用于在顶点着色器和片元着色器之间传递全局状态信息#xff0c;这些信息在渲染过程中不会随着顶点的变化而变化。uniform变量可以用来设置变换矩阵、光照参数、材料属性等。由于它们在整个渲染过程中共享#xff0c;因此可以被所有使用该着色… 在WebGL中uniform变量用于在顶点着色器和片元着色器之间传递全局状态信息这些信息在渲染过程中不会随着顶点的变化而变化。uniform变量可以用来设置变换矩阵、光照参数、材料属性等。由于它们在整个渲染过程中共享因此可以被所有使用该着色器程序的顶点和片元访问。 1. 声明uniform变量 // 片源着色器源码 const fragmentShaderSource // 声明uniform变量,一定要加分号uniform vec4 uColor;void main() {gl_FragColor uColor; // r, g, b, a} 2. 获取 uniform 变量存储地址 // gl.getUniformLocation(program, name) // 此方法使用和入参与 gl.getAttribLocation 相同 // program: 包含顶点和片元着色器的程序对象 // name:uniform 变量的名称const ucolor gl.getUniformLocation(program, ucolor); 3. 给uniform变量赋值 // gl.uniform4f(location, vO, v1, v2, v3 ) v1, v2, v3,v4分别代表r, g, b, a // location:变量 // v1:第一个分量的值 // v2:第二个分量的值 // v3:第三个分量的值 // v4:第四个分量的值gl.uniform4f(uColor,1.0, 0.0, 0.0, 1.0); 赋值需要注意的点声明和赋值是对应的同时main()中的gl_FragColor也需要对应修改。 uniform float uColor 对应  gl.uniform1f(uColor,1.0, 0.0, 0.0, 1.0);uniform vec2 uColor 对应  gl.uniform2f(uColor,1.0, 0.0);uniform ve34 uColor 对应  gl.uniform3f(uColor,1.0, 0.0, 0.0);uniform vec4 uColor 对应  gl.uniform4f(uColor,1.0, 0.0, 0.0, 1.0); uniform float uColor; void main() {gl_FragColor vec(uColor, 0.0, 0.0, 1.0); }uniform vec2 uColor; void main() {gl_FragColor vec(uColor.r, uColor.g, 0.0, 1.0); }uniform vec3 uColor; void main() {gl_FragColor vec(uColor.r, uColor.g, uColor.b, 1.0); }uniform vec4 uColor; void main() {gl_FragColor uColor; } 4. 设置精度 // 高精度highp // 中精度mediump // 低精度lowp const fragmentShaderSource precision mediump float;// 设置精度uniform vec4 uColor;void main() {gl_FragColor uColor; // r, g, b, a} 5. 完整代码 !DOCTYPE html html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0style* {margin: 0;padding: 0;}canvas {margin: 50px auto;display: block;background: pink;}/styletitle修改点的颜色/title /headbodycanvas idcanvas width400 height400此浏览器不支持canvas/canvasscript src./js/index.js/scriptscriptconst ctx document.getElementById(canvas)const gl ctx.getContext(webgl)// 顶点着色器源码const vertexShaderSource attribute vec4 aPosition;void main() {gl_Position aPosition; gl_PointSize 5.0;}// 片源着色器源码const fragmentShaderSource // 4.设置精度precision mediump float;// 1.声明uniform变量,一定要加分号uniform vec4 uColor;void main() {gl_FragColor uColor; // r, g, b, a}const program initShader(gl, vertexShaderSource, fragmentShaderSource)const aPosition gl.getAttribLocation(program, aPosition);// 2.获取返回变量的存储地址const uColor gl.getUniformLocation(program, uColor);const points [];ctx.onclick function (e) {const x e.clientX;const y e.clientY;const domPosition e.target.getBoundingClientRect();const domx x - domPosition.left;const domy y - domPosition.top;const halfWidth ctx.offsetWidth / 2;const halfHeigth ctx.offsetHeight / 2;const clickX (domx - halfWidth) / halfWidth;const clickY (halfHeigth - domy) / halfHeigth;points.push({ clickX, clickY })points.forEach(element {gl.vertexAttrib2f(aPosition, element.clickX, element.clickY)// 3.给uniform变量赋值gl.uniform4f(uColor, element.clickX, element.clickY, 0.0, 1.0);gl.drawArrays(gl.POINTS, 0, 1);});}// 着色器 function initShader(gl, vertexShaderSource, fragmentShaderSource) {const vertexShader gl.createShader(gl.VERTEX_SHADER);const fragmentShader gl.createShader(gl.FRAGMENT_SHADER);gl.shaderSource(vertexShader, vertexShaderSource);gl.shaderSource(fragmentShader, fragmentShaderSource);gl.compileShader(vertexShader);gl.compileShader(fragmentShader);const program gl.createProgram();gl.attachShader(program, vertexShader);gl.attachShader(program, fragmentShader);gl.linkProgram(program);gl.useProgram(program);return program;}/script /body/html 6. 效果如下
http://www.dnsts.com.cn/news/67116.html

相关文章:

  • 南昌网站建设哪家强无法升级wordpress
  • 教学资源网站建设设计wordpress写了文章打不开
  • 广点通广告投放平台登录网络优化网站
  • 济南好的网站建设公司哪家好wordpress导出html代码
  • 安全生产规章制度建筑公司网站电子商务公司取什么名字好
  • 网页设置安全站点wordpress love
  • 网站开发技术文档wordpress有没有linux
  • 网站做编辑赚钱百度流量推广项目
  • 做网站选什么配置电脑乐陵森
  • 打开网站iis7在线探测网站开发语言
  • 做数据ppt模板下载网站广东互联网网络营销推广
  • 网站开发+兼职挣钱吗用手机可以建设一个手机网站吗
  • 如何建网站商城自助建子站
  • 开发网站怎样注册公司青海省建设厅网站执业
  • 北京网站开发招聘网站建设教程开源代码下载
  • 网站站长如何赚钱wordpress搬家后图片无法显示
  • 外汇做单在什么网站网站备案名称的影响吗
  • 网站建设工作情况总结企业网站的制作方式
  • 做网站用什么插件湘潭商城网站建设定制
  • 手机网站尺寸大小中国设计在线网站
  • 南宁物流公司网站建设哈尔滨悦创网络科技网站开发
  • 青岛建网站人企业做app好还是网站好
  • 怎么做网站加载动画网站平台有哪些
  • mvc 手机网站开发免费ppt资源网站
  • 如何让网站被百度快速收录攻击Wordpress网站
  • 找个网站怎么这么难wordpress滑动门
  • 有哪些做包装设计网站好些网上书店网站建设实训报告总结
  • 中国科协网站建设招标网站建设的现状和未来
  • 阿里云免费建站wordpress快
  • 禁止拿我们的网站做宣传网站建设需求有什么用