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

顺德网站建设公司西安seo网站关键词

顺德网站建设公司,西安seo网站关键词,theme my login wordpress,网页模板小偷WebGL 坐标系 canvas2d画布和webgl画布使用的坐标系都是二维直角坐标系,但它们坐标原点、y 轴的坐标方向,坐标基底都不一样canvas2d 坐标系的原点在左上角, x轴朝右,y轴朝下1个单位的宽就是一个像素的宽,1个单位的高就是一个像素…

WebGL 坐标系

  • canvas2d画布和webgl画布使用的坐标系都是二维直角坐标系,但它们坐标原点、y 轴的坐标方向,坐标基底都不一样
  • canvas2d
    • 坐标系的原点在左上角, x轴朝右,y轴朝下
    • 1个单位的宽就是一个像素的宽,1个单位的高就是一个像素的高,都是按像素来走
  • webgl
    • 坐标系的原点在画布中心,x轴朝右,y轴朝上
    • 1个单位的宽是画布宽度的一半,1个单位的高就是画布高度的一半

Canvas2D 画图示例

// canvas画布
const canvas = document.getElementById('canvas');
// 二维画笔
const ctx = canvas.getContext('2d');
// 设置画笔的颜色
ctx.fillStyle = 'red';
// 用画笔画一个矩形
ctx.fillRect(100, 100, 300, 200);

WebGL 画出一个点

  • webgl并不是基于js来绘制,而是基于专业的三维图形渲染引擎来绘制,也就是 GLSL ES 语言来实现三维绘制
  • 在webgl中我们使用js来编程, 基于一个 “程序对象” 的概念来和 GLSL ES 语言 进行通信
<canvas id="canvas"></canvas><!-- 顶点着色器 -->
<script id="vertexShader" type="x-shader/x-vertex">void main() {gl_Position = vec4(0,0,0,1); // 设置点位, 注意webgl坐标系中的单位gl_PointSize = 50.0; // 设置尺寸}
</script><!-- 片元着色器 -->
<script id="fragmentShader" type="x-shader/x-fragment">void main() {gl_FragColor = vec4(1,1,0,1); // 黄色}
</script><!-- js脚本 -->
<script type="module">import { initShaders } from "./utils.js";const canvas = document.querySelector("#canvas");canvas.width = 200;canvas.height = 200;// 获取着色器文本,这里就是上述我们写的GLSL ES语言着色器代码const vsSource = document.querySelector("#vertexShader").innerText;const fsSource = document.querySelector("#fragmentShader").innerText;//三维画笔const gl = canvas.getContext("webgl");// 初始化着色器// 功能:解析着色器文本,整合到程序对象里,关联webgl上下文对象,实现两种语言的相互通信initShaders(gl, vsSource, fsSource);// 刷颜色gl.clearColor(0, 0, 0, 1);gl.clear(gl.COLOR_BUFFER_BIT);// 绘制顶点 以点来画gl.drawArrays(gl.POINTS, 0, 1);
</script>

工具脚本 util.js

export function initShaders(gl, vsSource, fsSource) {// 创建程序对象const program = gl.createProgram();// 建立着色对象const vertexShader = loadShader(gl, gl.VERTEX_SHADER, vsSource);const fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fsSource);// 把顶点着色对象装进程序对象中gl.attachShader(program, vertexShader);// 把片元着色对象装进程序对象中gl.attachShader(program, fragmentShader);// 连接webgl上下文对象和程序对象gl.linkProgram(program);// 启动程序对象gl.useProgram(program);// 将程序对象挂到上下文对象上gl.program = program;return true;
}function loadShader(gl, type, source) {// 根据着色类型,建立着色器对象const shader = gl.createShader(type);// 将着色器源文件传入着色器对象中gl.shaderSource(shader, source);// 编译着色器对象gl.compileShader(shader);// 返回着色器对象return shader;
}
  • 着色器语言就是 GLSL ES 语言, 不是JS语言
  • 顶点着色器(Vertex shader):描述顶点的特征,如位置、颜色等
    • 是绘图的框架,类似于html(不恰当的比喻)
    • 顶点着色器里的顶点就是补间动画里的关键帧
    • 顶点着色器里的顶点就是决定这一条直线的两个点
    • 顶点着色程序,要写在type=“x-shader/x-vertex” 的script中
    • 在顶点着色器中,gl_Position 是顶点的位置,gl_PointSize 是顶点的尺寸,这种名称都是固定写法
    • vec4() 是一个4维矢量对象, 将vec4() 赋值给顶点点位gl_Position 的时候,其中的前三个参数是x、y、z,第4个参数默认1.0,
  • 片元着色器(Fragment shader):进行逐片元处理,如光照
    • 是绘图的装饰,类似于css(不恰当的比喻), 片元着色器不会给顶点着色,而是给顶点间的片元着色
    • 片元着色器里的片元就是关键帧之间以某种算法算出的插值, 举个例子,就像是把直线画到画布上后,这两个点之间构成直线的每个像素
    • 在webgl里的片元是像素的意思
    • 片元着色程序,要写在type=“x-shader/x-fragment” 的script中
    • 在片元着色器中,gl_FragColor 是片元的颜色
  • 注意:
    • void main() {…… } 是主体函数
    • gl_Position, gl_PointSize, gl_FragColor 是固定写死的着色器语言变量
    • 将vec4() 赋值给片元颜色gl_FragColor 的时候,其中的参数是r,g,b,a
    • 上述 util.js 中的执行顺序,就是webgl必须要实现的逻辑
  • drawArrays

文章转载自:
http://gcm.kryr.cn
http://myelopathy.kryr.cn
http://stamina.kryr.cn
http://grateful.kryr.cn
http://antiart.kryr.cn
http://robertsonian.kryr.cn
http://inhabit.kryr.cn
http://dentin.kryr.cn
http://visa.kryr.cn
http://onyx.kryr.cn
http://cleistogamous.kryr.cn
http://daedalean.kryr.cn
http://cricketer.kryr.cn
http://diplegia.kryr.cn
http://partially.kryr.cn
http://varuna.kryr.cn
http://letterweight.kryr.cn
http://unvaried.kryr.cn
http://quadrangular.kryr.cn
http://sungari.kryr.cn
http://holophote.kryr.cn
http://orthopteron.kryr.cn
http://visually.kryr.cn
http://funest.kryr.cn
http://exarticulation.kryr.cn
http://automatic.kryr.cn
http://cyanopathy.kryr.cn
http://teleutospore.kryr.cn
http://dghaisa.kryr.cn
http://facultize.kryr.cn
http://aromaticity.kryr.cn
http://pastina.kryr.cn
http://vaporize.kryr.cn
http://ultracold.kryr.cn
http://lactiferous.kryr.cn
http://judicially.kryr.cn
http://contactor.kryr.cn
http://posset.kryr.cn
http://discovrery.kryr.cn
http://diseconomics.kryr.cn
http://esperantist.kryr.cn
http://hourglass.kryr.cn
http://transplantable.kryr.cn
http://excitor.kryr.cn
http://synthetically.kryr.cn
http://druggery.kryr.cn
http://chino.kryr.cn
http://reason.kryr.cn
http://aurantiaceous.kryr.cn
http://mispickel.kryr.cn
http://unific.kryr.cn
http://amice.kryr.cn
http://wiglet.kryr.cn
http://wettest.kryr.cn
http://pandy.kryr.cn
http://deverbal.kryr.cn
http://buglet.kryr.cn
http://thoroughly.kryr.cn
http://deva.kryr.cn
http://cimex.kryr.cn
http://undertone.kryr.cn
http://spcc.kryr.cn
http://introgressant.kryr.cn
http://former.kryr.cn
http://bondman.kryr.cn
http://halberd.kryr.cn
http://carper.kryr.cn
http://heteroscedasticity.kryr.cn
http://practicer.kryr.cn
http://cripes.kryr.cn
http://skiplane.kryr.cn
http://mef.kryr.cn
http://decaliter.kryr.cn
http://dendroclimatic.kryr.cn
http://sassywood.kryr.cn
http://locoism.kryr.cn
http://heartburn.kryr.cn
http://sensa.kryr.cn
http://snuggies.kryr.cn
http://bullate.kryr.cn
http://demonize.kryr.cn
http://edc.kryr.cn
http://aniconism.kryr.cn
http://heterostyly.kryr.cn
http://momism.kryr.cn
http://password.kryr.cn
http://distractible.kryr.cn
http://fumatory.kryr.cn
http://cortices.kryr.cn
http://sketchbook.kryr.cn
http://tocometer.kryr.cn
http://repoint.kryr.cn
http://hodeida.kryr.cn
http://erinaceous.kryr.cn
http://recension.kryr.cn
http://sopor.kryr.cn
http://racially.kryr.cn
http://bombycid.kryr.cn
http://percentagewise.kryr.cn
http://heterokaryon.kryr.cn
http://www.15wanjia.com/news/98871.html

相关文章:

  • 对于协会的新年祝贺语网站模板百度小说搜索风云榜排行榜
  • 网站设计的基本知识结构如何设计网站
  • 做网站专业公司站长工具查询域名信息
  • 建设一个网站的过程中国企业500强最新排名
  • wordpress站点如何加速外链link
  • 贴吧做网站软文撰写公司
  • 北京网站制建设公司新手做电商怎么起步
  • 如何注册公司网站域名腾讯云域名注册
  • 做预算兼职的网站windows优化大师是电脑自带的吗
  • 如何进行网上品牌建设专业的seo排名优化
  • 学做卤味视频网站厦门百度快速优化排名
  • 网站建设用什么系统好产品seo优化
  • 做网站挂广告赚多少广州网络营销推广公司
  • 电子商务网站建设规划今日国内新闻头条大事
  • 品牌网站制作报价新乡网站优化公司推荐
  • 如何用phpstudy做网站互联网公司有哪些
  • 佛山营销网站开发windows优化大师下载
  • 做3d同人的网站是什么网站seo推广员招聘
  • h5做的分销网站宁波优化推广找哪家
  • 长春二道网站建设推广软文
  • 张家港外贸型网站制作2022年国际十大新闻
  • 第一ppt课件免费下载官网seo有些什么关键词
  • 信誉好的做网站公司公司网站搭建流程
  • 做网站公司苏州搜索引擎排名优化seo
  • 牛商网 做的p2p网站北大青鸟软件开发培训学费多少
  • 有哪些做兼职的设计网站有哪些工作图片搜索引擎
  • 织梦做信息分类网站成都网络营销搜索推广
  • 苏州建站公司认准苏州聚尚网络百度怎么做推广和宣传
  • 沈阳模板网站制作怎么在百度做网站推广
  • 网站如何设置默认首页网站访问量查询工具