【开发总结】—— BABYLON 3D开发常见问题及解决方法

时间:2022-09-18 09:34:11

前言:组内同事们根据长时间的Babylon.js开发实践,一起将项目开发中遇到的问题及解决方法做了一个梳理。


【开发总结】—— BABYLON 3D开发常见问题及解决方法

  1. ios 【最好】 关闭离线缓存—— 解决添加了反射的mesh 丢失的问题
  2. 不要使用 position:fixed; —— 微信里面是不会认的
  3. 天空盒的贴图尽可能调小,防止闪退,纯色的可以设为 1*1
  4. 模型上的文字、 小图标之类,最好前端贴透明贴图,避免模型贴上不去的模糊不清
  5. 透明贴图贴不上去的情况下,可以使用GUI的img控件来贴png
  6. 当UScale和vScale等于1时,切换UV通道没有反应,可以先改变uScale,再过100毫秒切换通道,再切换回原来的uScale;
  7. 多相机layerMask的情况下,使用actionManager是没有反应的,可以使用scene.pick(x,y,pre,camera)
  8. camera.targetScreenOffset动画要stopAnimation两次才能取消
  9. input和button点击时的蓝色外边框和灰色半透明背景处理:a,button,input,optgroup,select,textarea{- webkit-tap-highlight-color:rgba(0,0,0,0);}
  10. 移动端点透问题:1)尽量使用touch事件替换click事件。 2)用preventDefault阻止a标签的click
  11. 设置小于12px的字体,可用transform:scale(0.8),进行缩放设置
  12. audio元素和video元素在ios和andriod中无法自动播放应对方案:触屏即播
    $('html').one('touchstart',function(){ audio.play() })
  13. active兼容处理即伪类:active 失效。 body添加ontouchstart
  14. GUI显示在ios 和android 显示有差异, 可以用dom来显示
  15. 贴图UV通道Material.贴图类型.coordinatesIndex=number;
  16. 翻转贴图法线mesh.flipFaces()
  17. 把mainTextureRatio略微调大点可以解决辉光闪烁的问题
    new BABYLON.HighlightLayer("dianchi", scene,{mainTextureRatio:1.5});
  18. 第一人称相机或物体开启重力在不移动的情况下回停止掉落camera._needMoveForGravity = true;
  19. 手动设置mesh层级mesh.renderingGroupId=1
  20. 视频材质的一些属性不能直接设置,需要视频加载完成后才可以,设置如下。
    var videoTexture = new BABYLON.VideoTexture("video", ["video/video3.mp4","textures/babylonjs.webm"], scene, false, false); videoTexture.video.loop=true; //无效scene.registerBeforeRender(function(){ if(videoTexture.isReady()==true){
    videoTexture.video.loop=true //有效
    }
    })
  21. 移动端锯齿严重问题engine.setHardwareScalingLevel(0.4)
  22. 动态阴影不精确可以调下面的参数设置灯光阴影的范围和平接头
    light = new BABYLON.DirectionalLight("Dir0", new BABYLON.Vector3(10, -3, -10), scene); light.intensity = 2;
    light.position=new BABYLON.Vector3(-26.053449678125286, 4.620522808003314, 43.64921550154328)
    light.autoUpdateExtends=false; light.shadowFrustumSize=110
    shadowGenerator = new BABYLON.ShadowGenerator(4800, light); shadowGenerator.bias = 0.001; shadowGenerator.useBlurCloseExponentialShadowMap = true;
    // shadowGenerator.forceBackFacesOnly= true; shadowGenerator.depthScale=100
    //shadowGenerator.blurScale=0.6
    // shadowGenerator.frustumEdgeFalloff = 10.0; light.shadowMinZ=0
    light.shadowMaxZ=100 scene.meshes.forEach(function(mesh){ shadowGenerator.getShadowMap().renderList.push(mesh); mesh.receiveShadows = true;
    })
  23. 骨骼动画导出错乱

注:本文整理只作学习,非本人允许不得转载 

【开发总结】—— BABYLON 3D开发常见问题及解决方法的更多相关文章

  1. Android开发华为手机无法看log日志解决方法

    Android开发华为手机无法看log日志解决方法 上班的时候,由于开发工具由Eclipse改成Android Studio后,原本的华为手机突然无法查看崩溃日志了,大家都知道,若是无法查看日志要它毛 ...

  2. 记一次SpringBoot 开发中所遇到的坑和解决方法

    记一次SpringBoot 开发中所遇到的坑和解决方法 mybatis返回Integer为0,自动转型出现空指针异常 当我们使用Integer去接受数据库中表的数据,如果返回的数据中为0,那么Inte ...

  3. Android开发环境搭建时遇到问题的解决方法

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/linux_loajie/article/details/33823637 Android开发环境搭建 ...

  4. vue-router(hash模式)常见问题以及解决方法

    问题一:// 动态路由/detail/:id 问题:动态路由跳转的时候,页面是不刷新的,相信很多人都遇到了相同的问题解决方法:在全局的router-view组件上设置一个key值,此key值为一个时间 ...

  5. NHibernate常见问题及解决方法

    NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...

  6. C&num;用ado&period;net访问EXCEL的常见问题及解决方法

    C#用ado.net访问EXCEL的常见问题及解决方法,除了像sql server,access常见的数据库,其实Excel文件也可以做为数据库访问. ado.net访问excel的实例: OleDb ...

  7. Nacos 常见问题及解决方法

    Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈.在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方法,这篇文章后续 ...

  8. 浅谈Excel开发:九 Excel 开发中遇到的常见问题及解决方法

    Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可 ...

  9. Delphi XE8中开发DataSnap程序常见问题和解决方法 (二)想对DBExpress的TSQLDataSet写对数据库操作的SQL语句出错了!

    当我们搞定DataSnap后,我们进入客户端程序开发阶段了,我们建立了客户端模块后,打算按照刚才开发服务器的步骤开发客户端程序,随后加入了DBExpress的TSQLDataSet,设定数据库连接后, ...

随机推荐

  1. &period;NET string字符串的截取、移除、替换、插入

    在实际开发中经常要用到string的各种截取等操作,在这里总结自己认为经常出现的.NET 字符串的截取.移除.替换.插入操作,方面以后查阅. 前台代码: <%@ Page Language=&q ...

  2. cf201&period;div1 Number Transformation II 【贪心】

    1 题目描述: 被给一系列的正整数x1,x2,x3...xn和两个非负整数a和b,通过下面两步操作将a转化为b: 1.对当前的a减1. 2.对当前a减去a % xi (i=1,2...n). 计算a转 ...

  3. linux下使用远程图形界面

    1. 用xrdp的方式(客户端就是windows下的远程桌面程序) http://jingyan.baidu.com/article/d3b74d64bdab5d1f76e60951.html 2. ...

  4. &lbrack;ActionScript 3&period;0&rsqb; AS3&period;0和AS2&period;0的相互通信

    AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...

  5. 34、Android中基于Socket的网络通信(一)

    Socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求. 在java中,Socket和ServerSocket类库位于java.net包中,ServerSocket用于服 ...

  6. http接口测试浏览器插件

    http接口测试浏览器插件: Chrome: https://chrome.google.com/webstore/detail/chrome-poster/cdjfedloinmbppobahmon ...

  7. cct信息安全

    基本信息 全国计算机等级考试三级教程——信息安全技术(2016年版) 作    者:教育部考试中心 编 出 版 社:高等教育出版社 出版时间:2015-12-1 ISBN:9787040443035 ...

  8. android MessageQueue入门

    接触安卓几年了.但是感觉一直不是很明白,东西太多了.反过来说就是自己太菜了.很多东西其实都是模凌两可,不熟悉,很多知识点都是知道一点,最多大家都这样用.没问题,事件长了也一直这样用的.但是有个问题,安 ...

  9. 福利来了,现&OpenCurlyDoubleQuote;免费”赠送Spring微服务实战书籍

    本书适合拥有构建分布式应用程序的经验.拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读. 本书籍赠送活动详情,请识别上图二维码☝☝☝☝☝ 书籍推荐 本书教读者如 ...

  10. Delphi Sysem&period;JSON 链式写法(转全能中间件)

    链式写法有很多优点:连贯.语意集中.简洁.一气呵成.可读性强.比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() ...