初识laya3D

2019-11-20  本文已影响0人  沉麟

1.开发工具准备
(1)laya官网下载版本:目前2.1
(2)unity开发工具下载:目前5.x
(3)LayaAirUnity plug插件,laya官网下载,导入unity工程
2.创建一个laya3d的项目,一个unity项目
(1)创建两个工程,laya3d工程,unity工程
(2)在laya项目中配置屏幕信息,编辑模式下按f9,导入laya3d内库
3.laya3d坐标系,unity坐标系
laya3d x轴:水平向右,y轴:垂直向上,z轴:垂直屏幕向外,前方:z轴负方向
unity x轴:水平向右,y轴:垂直向上,z轴:垂直屏幕向内,前方:z轴正方向
4.一个3d世界需要的基本概念:
(1)需要3d场景对象---》Scene3D,new出来---》添加到舞台上Laya.stage,舞台是laya3d中放所有元素的地方
laya里面所有3d元素,都可以放入3d场景里面---》舞台里面
(2)摄像机:在3d场景中,找一个位置,一个朝向,以一定视角来看3d场景---》输出到屏幕
(3)光:影响成像的明暗程度,除非指定的绘制方式不受光的影响,光不是必须的,可移除
(4)3d物体:网格(Mesh,模型,骨骼,骨架)两种组成方式:一种是美术建模软件建模,一种软件自带,
纹理贴图---》皮肤包住网格,显示模型。绘制方式(绘制算法):shader(给显卡执行的程序,显卡会按照shader来绘制我们的物体);材质(material):配置数据,选好一个shader,给这个shader需要的参数,引擎会meshRender对象---》找到节点---》找到物体---》找到网格---》材质(绘制算法,绘制的数据)---》显卡---》绘制成像。
注意:unity材质必须用laya3d的shader,这样才能才laya里面显示出对应的效果
(5)laya场景里面显示3d物体的节点:MeshSprite3D/SkinnedMeshSprite3D
MeshSprite3D---》new (Mesh---》Cube 3D的Mesh)---》MeshSprite3D---》MeshRender对象负责绘制;
注意:2d/3d是分开的,2d---》编辑器---》素材---》altas;3d不能直接放到asset目录下面,3d资源放到bin/res/下面
(6)laya3d位置设置需要transfrom对象来完成
实例:

//搭建laya3d场景
        var secen3d = new Laya.Scene3D();//需要new一个场景

        //放置一个相机
        var camera3d = new Laya.Camera(0,0.3,100);//new一个相机并设置基本属性
        camera3d.fieldOfView = 60;
        camera3d.clearColor = new Laya.Vector4(0,0,0,1);//设置相机背景颜色为黑色(默认为蓝色)
        secen3d.addChild(camera3d);//将3d相机添加到场景中
        camera3d.transform.translate(new Laya.Vector3(0,1,0));//设置相机位置

        //场景添加3d物体
        //添加一个几何网格,laya的网格图元,正方体
        var cube = new Laya.MeshSprite3D(Laya.PrimitiveMesh.createBox(1,1,1));//laya自带的正方体
        secen3d.addChild(cube);//将3d物体添加到场景中
        cube.transform.translate(new Laya.Vector3(0,0,-10));//设置3d物体的位置

        //给3d物体添加材质 
        var m = new Laya.UnlitMaterial();//new 一个材质球
        //加载材质贴图
        Laya.Texture2D.load("res/layabox.png",Laya.Handler.create(this,function(tex){
            m.albedoTexture = tex;//把贴图添加到材质球上
        }));
        cube.meshRenderer.material = m;//将材质球附加到cube上,meshRenderer会将其绘制出来
        ```
上一篇 下一篇

猜你喜欢

热点阅读