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

网站建设5个whywordpress 提交

网站建设5个why,wordpress 提交,dw做网站首页长宽设置多少,用户研究 网站目录 Three.js封装的渲染器 .domElement属性 .setSize(width, height)方法 帧缓冲区的相关封装 渲染器方法.clear(color,depth,stencil) 渲染器方法.clearDepth() 渲染器属性.autoClear Three.js封装的渲染器 .domElement属性 如果想通过WebGL渲染一个三维场景&#…

目录

Three.js封装的渲染器 

.domElement属性

.setSize(width, height)方法

帧缓冲区的相关封装

渲染器方法.clear(color,depth,stencil)

 渲染器方法.clearDepth()

渲染器属性.autoClear


Three.js封装的渲染器 

.domElement属性

如果想通过WebGL渲染一个三维场景,需要HTML的Canvas画布元素实现,通过渲染器构造函数WebGLRenderer创建一个渲染器对象 ,如果构造函数参数没有设置canvas对象,系统会自动创建一个Cnavas元素。

通过canvas元素返回WebGL上下文gl对象才能调用相关的WebGL API

//通过getElementById()方法获取canvas画布
var canvas=document.getElementById('webgl');
//通过方法getContext()获取WebGL上下文
var gl=canvas.getContext('webgl');
...
gl.enableVertexAttribArray(aposLocation);
...
gl.drawArrays(gl.LINE_LOOP,0,4);
...

 WebGLRenderer.js源码对.domElement属性的相关封装

  function WebGLRenderer(parameters) {
...
parameters = parameters || {};
//如果canvas画布没有通过参数对象parameters的canvas属性设置,通过API创建一个
var _canvas = parameters.canvas !== undefined ? parameters.canvas : document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas'),
...
把_canvas赋值给WebGL渲染器对象的domElement属性
this.domElement = _canvas;}

 通过渲染器.domElement属性,可以把Three.js的canvas画布插入到html任何一个元素中,可以在整个body页面上全局显示,也可以插入一个div元素中局部显示,注意canvas画布尺寸设置。

  // 创建渲染器对象var renderer = new THREE.WebGLRenderer();renderer.setSize(width, height);//body元素中插入Threejs创建的包含canvas对象document.body.appendChild(renderer.domElement);

.setSize(width, height)方法

WebGLRenderer.js源码对.setSize()方法的相关封装

...
// pixelRatio:像素比率
_pixelRatio = 1,
...
this.setSize = function(width, height, updateStyle) {
..._canvas.width = width * _pixelRatio;_canvas.height = height * _pixelRatio;if (updateStyle !== false) {
_canvas.style.width = width + 'px';
_canvas.style.height = height + 'px';}
...
};

 全屏设置,也就是canvas画布宽高度和窗口尺寸一样

 var width = window.innerWidth; //窗口宽度var height = window.innerHeight; //窗口高度var renderer = new THREE.WebGLRenderer();// 设置渲染尺寸,本质就是设置canvas元素宽高度renderer.setSize(width, height);

局部渲染,通过.setSize()方法设置canvas画布的宽高度像素 

  var width = window.innerWidth; //窗口宽度var height = window.innerHeight; //窗口高度var renderer = new THREE.WebGLRenderer();// 设置渲染尺寸,本质就是设置canvas元素宽高度renderer.setSize(300, 300);

帧缓冲区的相关封装

帧缓冲区包含颜色缓冲区、深度缓冲区、模板缓冲区,颜色缓冲区存储片元的颜色数据,也就是像素数据,深度缓冲存储片元的深度数据,用于WebGL渲染流程中的深度测试环节,被遮挡的片元会被剔除,不会显示在canvas画布上。

渲染器方法.clear(color,depth,stencil)

原生WebGL方法gl.clear()用来清除帧缓冲区数据

// 清除颜色缓冲区数据
gl.clear(gl.COLOR_BUFFER_BIT)
// 清除深度缓冲区数据
gl.clear(gl.DEPTH_BUFFER_BIT)
// 清除模板缓冲区数据
gl.clear(gl.STENCIL_BUFFER_BIT)
// 清除帧缓冲区的颜色、深度和模板缓冲中数据
gl.clear(gl.DEPTH_BUFFER_BIT | gl.COLOR_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);

 WebGLRenderer.js源码对渲染器方法.clear()的封装

this.clear = function(color, depth, stencil) {// “&” 和 “|” 是位运算操作符var bits = 0;if (color === undefined || color) bits |= _gl.COLOR_BUFFER_BIT;if (depth === undefined || depth) bits |= _gl.DEPTH_BUFFER_BIT;if (stencil === undefined || stencil) bits |= _gl.STENCIL_BUFFER_BIT;_gl.clear(bits);};

 渲染器方法.clearDepth()

清除帧缓冲区中深度缓冲区中的片元深度数据

renderer.clearDepth()
// WebGLRenderer.js源码
this.clearDepth = function() {this.clear(false, true, false);
};

渲染器属性.autoClear

Three.js渲染器默认情况下,本次执行render方法之前,会把上次执行render方法后帧缓冲区中的数据清除

autoClear默认值true,设置为false,执行render方法的时候不会自动清除上次渲染帧缓冲区中的数据

renderer.autoClear = false;

 


文章转载自:

http://uXrBbkht.rynqh.cn
http://0ReabaFT.rynqh.cn
http://ktpllmO6.rynqh.cn
http://9xUO6jjk.rynqh.cn
http://0gxJ3LIA.rynqh.cn
http://mPOq5ryt.rynqh.cn
http://8ImntDEJ.rynqh.cn
http://Yxv61udM.rynqh.cn
http://vKns3ADO.rynqh.cn
http://0JovWkGV.rynqh.cn
http://oLQ675oK.rynqh.cn
http://TeXQ75yW.rynqh.cn
http://hq8wkFKt.rynqh.cn
http://OcsxMMMK.rynqh.cn
http://cNk559qV.rynqh.cn
http://5zspymZ7.rynqh.cn
http://FpQPK26z.rynqh.cn
http://sTIxtB91.rynqh.cn
http://F9TWy8YD.rynqh.cn
http://KDdElOUO.rynqh.cn
http://AAYbY7CW.rynqh.cn
http://LkEk02zz.rynqh.cn
http://NVPmiK2g.rynqh.cn
http://EsOlIJoB.rynqh.cn
http://oB7tRvVV.rynqh.cn
http://YVShu9VT.rynqh.cn
http://lArikOg0.rynqh.cn
http://sdljnYLN.rynqh.cn
http://cYG5Av3K.rynqh.cn
http://ezXsDfJM.rynqh.cn
http://www.dtcms.com/wzjs/645328.html

相关文章:

  • 网站建设公司发展wordpress 百万
  • 密云住房和城乡建设部网站首页wordpress响应式主题制作教程
  • 网站正在努力建设中国际购物网站
  • 网站域名注册基本流程网页游戏在线玩不用实名
  • 企业网站建设公wordpress 微信公众平台
  • 网站开发上证k线网页制作个人简历教程
  • 给手机做网站的公司公司网站建站流程
  • 出口网站怎么做江苏五星建设网站
  • wordpress网站主机名随州网站建设便宜
  • 一对一做的好的网站东莞市专注网站建设平台
  • 网站建设中最重要的环节是什么视频制作软件电脑版
  • 手机网站建设机构宝塔做两个网站
  • 淘宝客网站html广州网站建设正
  • 外贸品牌网站建设电子商务平台建设预算
  • 婚纱摄影网站应该如何做优化泉州网站建设外包
  • 怎么创建免费网站微网站建设包含哪些内容
  • 有哪些做ae小动效的网站资源网站的建设
  • 可以直接进入网站的正能量群晖nas做网站
  • 公司网站首页大图怎么做新网站如何做排名
  • 在哪做网站专业营销型网站建设原则
  • 千图网解析网站怎么做阅读网站建设规划书
  • 400选号网站源码教育类网站策划书
  • 手机怎么创建自己的网站平台建筑材料价格信息网
  • 企业网站建设预算湖南人文科技学院在哪
  • 建网站系统能换吗网站开发项目个人总结
  • 西安免费做网站多少钱辽宁建设工程信息网签章
  • 网站怎么做才被收录快郑州市建筑材料信息价
  • 石家庄网站空间建网站卖东西
  • 个人音乐网站源码阿里云装wordpress慢
  • 定西网站建设公司什么是百度搜索推广