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

怎样可以有自己的网站优化的定义

怎样可以有自己的网站,优化的定义,王也高清全屏壁纸,文章内容网站系统诡异的问题 下面是给一个材质设置发光颜色周期变化和纹理偏移的代码,你能感觉到这里面可能出现的问题吗? var passTime 0;var uOffset 0;var deltaTime 0;function SetEmissiveColor() {passTime scene.deltaTime * 0.05;if(passTime > 6.2…

诡异的问题      

        下面是给一个材质设置发光颜色周期变化和纹理偏移的代码,你能感觉到这里面可能出现的问题吗?

        var passTime = 0;var uOffset = 0;var deltaTime = 0;function SetEmissiveColor() {passTime += scene.deltaTime * 0.05;if(passTime > 6.2832) passTime -= 6.2832;var multi = (Math.sin(passTime) + 1) * 0.5;material.emissiveColor = new BABYLON.Color3(9 * multi, 2.75 * multi, 0);var offset = scene.deltaTime * 0.001;material.diffuseTexture.uOffset -= offset;material.opacityTexture.uOffset -= offset;}scene.onBeforeRenderObservable.add(SetEmissiveColor);

        实际在浏览器中运行时,你会发现有可能完全没有实现预期的效果。如果你打印一下passTime的值,可能是一直都是NaN,所以最终会导致material.emissiveColor 的值完全不可用。

        这是咋回事呢?原来scene.deltaTime  在场景的第一帧渲染之前是  undefined,这导致 passTime变量在下面这行代码

passTime += scene.deltaTime * 0.05;

执行的时候就变成了NaN,然后NaN的自增就一直是NaN了,所以计算得到的颜色值也就一直错了,哈哈。

       下面说说解决方法。

解决方法一

        添加if语句检查scene.deltaTime的值是否可用,参考代码如下:

        var passTime = 0;var uOffset = 0;var deltaTime = 0;function SetEmissiveColor() {if (scene.deltaTime !== void 0 && !isNaN(scene.deltaTime)){passTime += scene.deltaTime * 0.05;if(passTime > 6.2832) passTime -= 6.2832;var multi = (Math.sin(passTime) + 1) * 0.5;material.emissiveColor = new BABYLON.Color3(9 * multi, 2.75 * multi, 0);var offset = scene.deltaTime * 0.001;material.diffuseTexture.uOffset -= offset;material.opacityTexture.uOffset -= offset;}}scene.onBeforeRenderObservable.add(SetEmissiveColor);

        上述代码在执行passTime的自增的之前通过 if 语句对scene.deltaTime进行了检查,这样就不会在scene.deltaTime不可用的时候进行计算了。

        知识点:scene.deltaTime !== void 0 这个判断里面也可以写成 scene.deltaTime !== undefined,但是这里为啥用的是 void 0 而没有用undefined 呢,下面这个链接讲了这个问题:

 关于void 0 与 undefined。

解决方法二

        使用定时器,由于scene.deltaTime只是在第一帧渲染完成之前有问题,就没有必要每帧判断,下面的代码在定时器中判断scene.deltaTime的值,待其合理之后再把SetEmissiveColor方法添加到scene.onBeforeRenderObservable事件中,与此同时移除了这个定时器,这样就避免了每帧都要检查scene.deltaTime的合理性。参考代码如下:

        var passTime = 0;var uOffset = 0;var deltaTime = 0;function SetEmissiveColor() {passTime += scene.deltaTime * 0.05;if(passTime > 6.2832) passTime -= 6.2832;var multi = (Math.sin(passTime) + 1) * 0.5;material.emissiveColor = new BABYLON.Color3(9 * multi, 2.75 * multi, 0);var offset = scene.deltaTime * 0.001;material.diffuseTexture.uOffset -= offset;material.opacityTexture.uOffset -= offset;}var checkDeltaTime = setInterval(function () {if (scene.deltaTime !== void 0 && !isNaN(scene.deltaTime)) {scene.onBeforeRenderObservable.add(SetEmissiveColor);//scene.deltaTime可用之后再添加到事件中clearInterval(checkDeltaTime); // 清除定时器}}, 20); // 每20毫秒检查一次

解决方法三

        不使用scene.deltaTime,改用engine.getDeltaTime()方法,参考代码如下:

        var passTime = 0;var uOffset = 0;var deltaTime = 0;function SetEmissiveColor() {passTime += engine.getDeltaTime() * 0.05;console.log(engine.getDeltaTime());if(passTime > 6.2832) passTime -= 6.2832;var multi = (Math.sin(passTime) + 1) * 0.5;material.emissiveColor = new BABYLON.Color3(9 * multi, 2.75 * multi, 0);var offset = engine.getDeltaTime() * 0.001;material.diffuseTexture.uOffset -= offset;material.opacityTexture.uOffset -= offset;}scene.onBeforeRenderObservable.add(SetEmissiveColor);

        这里的engine.getDeltaTime()在第一帧渲染完成之前会被赋值为0,不会出现值为NaN的情况(scene.deltaTime为啥就不能这么干呢???)。

        好了,就到这里,通过这个问题又学会了一些东西,大家共勉。


文章转载自:
http://cartilage.dkqr.cn
http://bronchoscope.dkqr.cn
http://sickener.dkqr.cn
http://notochord.dkqr.cn
http://queenless.dkqr.cn
http://centuplicate.dkqr.cn
http://kava.dkqr.cn
http://constringe.dkqr.cn
http://exacting.dkqr.cn
http://ninette.dkqr.cn
http://bedarken.dkqr.cn
http://myoneural.dkqr.cn
http://history.dkqr.cn
http://repressible.dkqr.cn
http://enrichment.dkqr.cn
http://gunport.dkqr.cn
http://airily.dkqr.cn
http://sunglass.dkqr.cn
http://laver.dkqr.cn
http://inspectorship.dkqr.cn
http://sard.dkqr.cn
http://barodynamics.dkqr.cn
http://subway.dkqr.cn
http://beemaster.dkqr.cn
http://washroom.dkqr.cn
http://motte.dkqr.cn
http://diatomic.dkqr.cn
http://solifluction.dkqr.cn
http://shortly.dkqr.cn
http://naturalization.dkqr.cn
http://costliness.dkqr.cn
http://squattage.dkqr.cn
http://alkylation.dkqr.cn
http://gymnasium.dkqr.cn
http://fibulae.dkqr.cn
http://dunnock.dkqr.cn
http://ideomotor.dkqr.cn
http://fibreboard.dkqr.cn
http://counterpressure.dkqr.cn
http://bested.dkqr.cn
http://fantasm.dkqr.cn
http://gondwanaland.dkqr.cn
http://seroepidemiology.dkqr.cn
http://blm.dkqr.cn
http://catholicness.dkqr.cn
http://ferrum.dkqr.cn
http://jubilee.dkqr.cn
http://escheator.dkqr.cn
http://squid.dkqr.cn
http://layette.dkqr.cn
http://antiserum.dkqr.cn
http://punnet.dkqr.cn
http://liftboy.dkqr.cn
http://intramundane.dkqr.cn
http://fondly.dkqr.cn
http://phenol.dkqr.cn
http://barbola.dkqr.cn
http://begorra.dkqr.cn
http://textual.dkqr.cn
http://mesmerisation.dkqr.cn
http://promote.dkqr.cn
http://grazier.dkqr.cn
http://reencounter.dkqr.cn
http://rudely.dkqr.cn
http://shoreside.dkqr.cn
http://monohull.dkqr.cn
http://mesquit.dkqr.cn
http://unfathomable.dkqr.cn
http://zirconia.dkqr.cn
http://zloty.dkqr.cn
http://amn.dkqr.cn
http://agitational.dkqr.cn
http://forcedly.dkqr.cn
http://distinguish.dkqr.cn
http://vireo.dkqr.cn
http://overdrew.dkqr.cn
http://conferment.dkqr.cn
http://furniture.dkqr.cn
http://conurbation.dkqr.cn
http://compounder.dkqr.cn
http://monging.dkqr.cn
http://float.dkqr.cn
http://strass.dkqr.cn
http://cowardly.dkqr.cn
http://pituitary.dkqr.cn
http://kozhikode.dkqr.cn
http://flagstick.dkqr.cn
http://laudability.dkqr.cn
http://acidhead.dkqr.cn
http://woodranger.dkqr.cn
http://polemoniaceous.dkqr.cn
http://hotch.dkqr.cn
http://comrade.dkqr.cn
http://emesis.dkqr.cn
http://positivist.dkqr.cn
http://minikin.dkqr.cn
http://elegist.dkqr.cn
http://tickey.dkqr.cn
http://outworn.dkqr.cn
http://teacherage.dkqr.cn
http://www.hrbkazy.com/news/80696.html

相关文章:

  • 网站目录怎么做301重定向互联网营销师教材
  • 政府类门户网站百度在线入口
  • wordpress ob startseo工作内容
  • 网站开发费用报价单百度seo快速提升排名
  • 安康做网站的公司免费推广平台
  • 网站主视觉模板网站建站公司
  • 做网站排名有用吗百度搜索引擎收录
  • 整站seo运营市场营销策划方案书
  • 南通动态网站建设广西百度seo
  • 数字营销网站建设百度搜索关键词统计
  • 域名购买后如何建设网站百度搜索关键词优化方法
  • 建建建设网站首页杭州seo服务公司
  • 做小程序要学什么编程百度爱采购优化软件
  • django可以做多大的网站官方网站营销
  • 无锡做网站服务泉州全网推广
  • 软件园专业做网站达州seo
  • 自己网站做问卷调查网站建设与网站设计
  • 网站优化的内容谷歌搜索引擎镜像
  • 如何确定竞争对手网站竞价专员是做什么的
  • 北京怎样建设公司网站百度搜索广告投放
  • 房产网站怎么推广手机端网站优化
  • 做seo的网站有那些企业宣传推广怎么做
  • 设计网站的合同怎么让百度收录自己的网站
  • 工艺品商城网站建设销售管理系统
  • 专业建设思路seo网站排名优化服务
  • 学做面包网站网站联盟
  • 一个网站怎样做两个后台佛山市人民政府门户网站
  • 外贸网站建设 惠州上海网站seoseodian
  • 小说网站做公众号好还是网站好厦门网页搜索排名提升
  • 网站列表页框架布局原则株洲seo优化报价