• three的初步探索之表象篇


    首先three.js是啥?用来干啥的?首先在谈这个之前,先说下canvas,canvas是h5新生的一个功能,可以用来画图,表达许多更绚丽的特效,然后canvas目前有个软当,就是只能2d,不支持三维世界的,那么如果我们要在canvas做出3d效果咋办,这时候需要一个东西,叫WebGL,这玩意是啥?百度定义:WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。如果不理解,那就认为他是个让js做出3D效果的标准,那么three.js是什么,他是WebGL的一个框架,可以理解为jquery之于js;好了这里three.js是啥,用来干啥的都理解七八层了;然后看下,它里面有什么东西?

    three.js它主要有三个对象,场景,相机,渲染器,把相机和场景通过渲染器渲染,从而实现页面的3d效果;场景里包含模型,和灯光

    直接demo,来先初步理解下

    首先,我们需要个场景,于是代码如下

    var scene = new THREE.Scene()

    这时候我们一个场景就有了,但是这是空的,里面什么都没有,连光都没有,好于是,我先给这个场景补光,加光源代码如下

        var light= new THREE.PointLight('white')//这里光色为白色,这里是个点光源,点光源一共三个参数,颜色,强度,距离,如果距离为0,则点光源与距离无关
        light.position.set(300,400,200),这里是光源的位置,注意这里三个数值分别对应x,y,z轴的位置,三个值为0就看不见了,具体对应变化,自己调试
        scene.add(light),把光添加到场景中
    

    光有了,没东西啊,我们加东西,代码如下,以最基础的网格模型为例

        var gel= new THREE.BoxGeometry(100,100,100),注意这里是这个模型的几何大小形状
        var metail = new THREE.MeshLambertMaterial({color:'red'})//这里是它的颜色
        var mash = new THREE.Mesh(gel,metail);
        scene.add(mash);
    

    物质有了光有了,场景出现了,但是没相机,拍不下来,所以添加相机

        var carmea=new THREE.PerspectiveCamera(40,800/600,1,1000)//这里第一个参数是视角,第二个是是场景的长宽比,第三个是近距离,第四个是远离了,如果近距离太大会看不见
        carmea.position.set(200,200,200)设置相机位置
        carmea.lookAt(scene.position)//相机对着场景中心点,默认原点
    

    好了拍好了,要咋才能看到呢,要冲洗,所以需要渲染了,代码如下

        var render=new THREE.WebGLRenderer()
        render.render(scene,carmea)
        document.body.appendChild(render.domElement)
    

      ok这时候运行,一个three的案例就生成了

      

  • 相关阅读:
    前端优化技巧
    AngularJS 细节
    Xamarin.ios 目录结构
    Java编程中“为了性能”需做的26件事
    Java中的反射Reflection
    在MyEclipse中导入Datebase方法以及在MyEclipse项目工程里加载jar驱动的方法
    Solr 使用 Log4j
    solr学习笔记linux下配置solr
    Java程序员应该了解的10个面向对象设计原则
    Java堆内存的10个要点
  • 原文地址:https://www.cnblogs.com/lyz1991/p/5595446.html
Copyright © 2020-2023  润新知