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

深圳市做网站有哪些公司中标公示查询官网

深圳市做网站有哪些公司,中标公示查询官网,网站怎么做脚注,在线做图模板在WebGL编程中,attribute变量是一种特殊类型的变量,用于从客户端传递数据到顶点着色器。这些数据通常包括顶点的位置、颜色、纹理坐标等,它们是与每个顶点直接相关的信息。attribute变量在顶点着色器中声明,并且对于每个顶点来说都…

在WebGL编程中,attribute变量是一种特殊类型的变量,用于从客户端传递数据到顶点着色器。这些数据通常包括顶点的位置、颜色、纹理坐标等,它们是与每个顶点直接相关的信息。attribute变量在顶点着色器中声明,并且对于每个顶点来说都是独立的。

一、创建和使用attribute变量流程

  1. 在顶点着色器中声明attribute变量:attribute vec4 aPosition;

        // 顶点着色器源码const vertexShaderSource = `// attribute使用位置,只传递顶点着色器,不能在片元着色器中使用attribute vec4 aPosition;void main() {gl_Position = aPosition; gl_PointSize = 30.0;}`
  2. 获取attribute变量的存储地址:gl.getAttribLocation(program, 'aPosition');

    const program = initShader(gl, vertexShaderSource, fragmentShaderSource)// 获取attribute变量,必须在initShader之后使用,因为会用到program这个程序对象
    // gl.getAttribLocation(program, name); 
    // 1.program:程序对象 
    // 2.name:指定想要获取存储地址的attribute变量的名称
    // 返回变量的存储地址const aPosition = gl.getAttribLocation(program, 'aPosition');
  3. 设置顶点属性的值:gl.vertexAttrib4f(location, v1, v2, v3,v4)  

    // gl.vertexAttrib4f(location, v1, v2, v3,v4)  
    // v1, v2, v3,v4 分别代表 X, y, Z, W
    // location:变量
    // v1:第一个分量的值
    // v2:第二个分量的值
    // v3:第三个分量的值
    // v4:第四个分量的值gl.vertexAttrib4f(aPosition, 0.5, 0.5, 0.0, 1.0)
    // gl.vertexAttrib3f(aPosition, 0.5, 0.5, 0.0)
    // gl.vertexAttrib2f(aPosition, 0.5, 0.5)
    // gl.vertexAttrib1f(aPosition, 0.5)
  4. 绘制一个水平移动的点

    // 绘制一个水平移动的点
    let x = 0;
    setInterval(() => {x += 0.1if (x > 1.0) {x = 0;}// 设置顶点的值gl.vertexAttrib1f(aPosition, x)// 绘制点gl.drawArrays(gl.POINTS, 0, 1);
    }, 200)

二、完整代码 

 1. html页面代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>* {margin: 0;padding: 0;}</style><title>webgl三维坐标系</title>
</head><body><canvas id="canvas" width="400" height="400">此浏览器不支持canvas</canvas><script src="./js/index.js"></script><script>const ctx = document.getElementById('canvas')const gl = ctx.getContext('webgl')// 顶点着色器源码const vertexShaderSource = `// attribute使用位置,只传递顶点着色器,不能在片元着色器中使用attribute vec4 aPosition;void main() {gl_Position = aPosition; gl_PointSize = 30.0;}`// 片源着色器源码const fragmentShaderSource = `void main() {gl_FragColor = vec4(0.0,0.0,0.0,1.0); // r, g, b, a}`// 设置着色器封装后,直接使用const program = initShader(gl, vertexShaderSource, fragmentShaderSource)const aPosition = gl.getAttribLocation(program, 'aPosition');// 绘制一个水平移动的点let x = 0;setInterval(() => {x += 0.1if (x > 1.0) {x = 0;}gl.vertexAttrib1f(aPosition, x)// 绘制点gl.drawArrays(gl.POINTS, 0, 1);}, 200)</script>
</body></html>

2. index.js文件中的initShader方法代码如下:

function initShader() {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;
}

3. 效果如下:

http://www.yayakq.cn/news/973397/

相关文章:

  • 寻花问柳专注做一家男人爱的网站合肥网站开发网络公司
  • 网站页面维护云服务器可以放几个网站
  • 2019网站怎么做网站ftp根目录
  • 大学生网站开发目的联客易网站建设制作
  • 中职网站建设与管理专业网站备案和域名备案的区别
  • 织梦dede网站后台被挂黑链怎么办怎么申请信用卡收款网站接口
  • 佛山智能网站建设地址设计wordpress重命名
  • 企业网站建设代理公司企查查免费查询入口
  • 做网站网站需要多少钱知名的网站建设公司
  • 百度搜索 网站介绍建设工程施工合同名词解释
  • 门户网站分类全球搜怎么样
  • 如何选择网站建设平台标题设计网站
  • 济南网站建设cn unwordpress首页文章过滤
  • 怎样做网络推广营销方案模板网站优化
  • 网站建设系统下载wordpress 文章过滤
  • 钓鱼网站注册公司需要多少钱保证金
  • 做游戏平面设计好的素材网站有哪些上海制作公司
  • 随州网站推广稳定的网站服务器租用
  • 品牌营销全案策划佛山网站优化指导
  • 网站开发参考文献期刊网站建设环境搭建心得体会
  • 二手手机回收网站开发鄂尔多斯网站制作 建设推广
  • 肥西县建设发展局网站seo排名第一的企业
  • 网站建设开发全包网站建设工作情况汇报
  • 网站的设计步骤五屏网站建设多少钱
  • 河北省住房城乡建设厅网站首页长沙今天最新招聘信息
  • 济南网站定制策划连锁销售官网
  • 信息网站开发室内装修网站html源码 企业
  • ps制作个人网站南阳旅游网站建设现状
  • 手机怎样做网站图解zencart网站建设
  • 山东济南seo整站优化网站的html