_Mesh

用于mesh相关的操作,包括创建、修改和渲染等。可以为mesh添加骨骼和动画。 全部展开

只读属性展开

  • +

    hasDiffuse : bool

    mesh是否有漫反射顶点色。

    示例

       print( mesh.hasDiffuse )
  • +

    hasNormal : bool

    mesh是否有法线。

    示例

       print( mesh.hasNormal )
  • +

    hasSpecular : bool

    mesh是否有高光顶点色。

    示例

       print( mesh.hasSpecular )

属性展开

  • + blender : _Blender

    绑定到mesh的_Blender,只影响当前mesh。

    示例

        mesh.blender:gray()
  • + dissolveBlender : _Blender

    溶解效果。

    示例

        b1 = _Blender.new()
    mesh.dissolveBlender = b1
  • + graData : _GraphicsData

    mesh的图形相关数据。包括marker,摄像机,光,雾和轨迹。

    示例

        meshdata = mesh.graData
  • + isAdditive : bool

    渲染类型是否为additive。

    示例

        print(mesh.isAdditive)
  • + isAlpha : bool

    渲染类型是否为alpha。

    示例

        print(mesh.isAlpha)
  • + isBillboard : bool

    渲染类型是否为billboard。

    示例

        print(mesh.isBillboard)
  • + isClampTexture : bool

    渲染类型是否为ClampTexture。

    示例

        mesh.isClampTexture = true
  • + isColorKey : bool

    渲染类型是否为color key。

    示例

        print(mesh.isColorKey)
  • + isCommon : bool

    渲染类型是否为Common。

    示例

        print(mesh.isCommon)
  • + isDecal : bool

    渲染类型是否为decal。

    示例

        print(mesh.isDecal)
  • + isDetail : bool

    渲染类型是否为detail。

    示例

        print(mesh.isDetail)
  • + isHdr : bool

    渲染类型是否为HDR。

    示例

        mesh.isHdr = true
  • + isInvisible : bool

    渲染类型是否为invisible。

    示例

        print(mesh.isInvisible)
  • + isNoFog : bool

    渲染类型是否为不受雾。

    示例

        mesh.isNoFog = true
  • + isNoLight : bool

    渲染类型是否为不受光。

    示例

        mesh.isNoLight = true
  • + isPaint : bool

    渲染类型是否为Paint。

    示例

        mesh.isPaint = true
  • + isStatic : bool

    渲染类型是否为Static。

    示例

        mesh.isStatic = true
  • + isSubtractive : bool

    渲染类型是否为subtractive。

    示例

        print(mesh.isSubtractive)
  • + lodMesh : _Mesh

    多细节层次模型。

    示例

        mesh.lodMesh = _mf:createCube()
  • + material : _Material

    模型自身的材质,当isMaterial 属性为true时可用。

    示例

        mesh.material  = _Material.new( )
  • + name : string

    mesh的逻辑名称。

    示例

        mesh.name = 'skin'
  • + node : _SceneNode

    mesh的node,修改成一个新的node时会同时把node的mesh指向自己。

    示例

        mesh.node = node
  • + pfxPlayer : _ParticlePlayer

    mesh的_ParticlePlayer

    示例

        mesh.pfxPlayer:play('a.pfx')
  • + resname : string

    生成mesh的资源文件名。更改这个属性,mesh会使用新资源名重新加载。

    示例

        mesh.resname = 'face.skn'
  • + rolename : string

    mesh的rolename。

    示例

        mesh.rolename = 'abc'
  • + skeleton : _Skeleton

    mesh的骨骼。

    示例

        mesh.skeleton:drawSkeleton()
  • + transform : _Matrix3D

    mesh的变换矩阵。

    示例

        mesh.transform:setTranslation(0, 0, -10)
  • +

    isMaterial : bool

    mesh是否有材质。

    示例

       print( mesh.isMaterial )

构造方法展开

  • + function _Mesh(resname : string) : _Mesh
    • 参数
    • resname : mesh资源文件名,若resname为nil,则创建一个空的_Mesh
      • 示例
    •  msh = _Mesh.new('sword.msh')

公共方法展开

  • + function addAnima(anima : _Animation) : _Animation
    function addAnima(resname : string) : _Animation

    为mesh添加动画。

    • 参数
    • _Animation对象或者man资源文件名。若此_Animation对象的loop属性为true,则在播放动画时,若没有其它动画播放时,会自动循环播放此动画。否则会先播放其它动画直到播放完毕。_Mesh对于其所有loop属性为true的动画,只会播放最近一个开始播放的,其它的自动停止。
    • 返回
    • 添加的此_Animation对象。
      • 示例
    •  i = _Animation.new('idle.san')
      msh:addAnima(i)
      msh:addAnima('skill.san')
  • + function addSubMesh(mesh : _Mesh) : _Mesh
    function addSubMesh(resname : string) : _Mesh

    为mesh添加子Mesh。

    • 参数
    • _Mesh对象或者mesh资源文件名。
    • 返回
    • 添加的此_Mesh对象。
      • 示例
    •  role:addSubMesh(msh)
      role:addSubMesh('arm.skn')
  • + function attachSkeleton(skl, bone, trans) : _Skeleton

    将mesh的trans绑定到skl的bone上。

    • 参数
    • skl: _Skeleton / String : 要绑定的骨骼对象/文件。
    • bone : 要绑定的骨头id或名字。
    • trans : _Matrix3D mesh的绑定点。
    • 返回
    • 绑定的骨骼。
      • 示例
    •  msh:attachSkeleton(skl, 'rw', dum)
  • + function clearAnimas()

    清空mesh的所有动画。

    示例

        msh:clearAnimas()
  • + function clearSubMeshs()

    清除所有的子mesh。

    示例

        msh:clearSubMeshs()
  • + function delAnima(index : uint)
    function delAnima(name : string)

    为mesh删除动画。

    • 参数
    • 索引值index或者动画的逻辑名name。
      • 示例
    •  msh:delAnima(1)
      msh:delAnima('skill')
  • + function delSubMesh(index : uint)
    function delSubMesh(name : string)

    为mesh删除子mesh。

    • 参数
    • 索引值index或者子mesh的逻辑名name。
      • 示例
    •  role:delSubMesh(1)
      role:delSubMesh('HAND')
  • + function draw2D(v : _Vector3, ox : number, oy : number)
    function draw2D(tx : number, ty : number, tz : number, ox : number, oy : number)

    进行2D渲染。

    • 参数
    • v : _Vector3对象, 设置模型朝向。
    • ox : 模型在2D渲染区域的X坐标。
    • oy : 模型在2D渲染区域的Y坐标。

    示例

        v = _Vector3.new(0,1,0)
    mesh:draw2D(v, 200, 200)
  • + function drawBoundBox()

    在渲染设备上渲染包围盒。

    示例

        msh:drawBoundBox()
  • + function drawMesh()

    在渲染设备上渲染mesh。

    示例

        msh:drawMesh()
  • + function enumMesh(match : string, recursive : bool, onEnum : function)

    枚举mesh。

    • 参数
    • match : 模型匹配规则,可以为 @开头的正则表达式,如 '@.*alpah.*'。
    • recursive : 表示是否同时枚举submesh。
    • onEnum : 枚举的回调函数,类型为function( mesh : _Mesh, name : string ),其中参数mesh为枚举到的mesh, name为枚举到的mesh逻辑名。
      • 示例
    •  msh:enumMesh('@.*alpha.*', true, function(mesh, name)
       print(mesh, name)
      end)
  • + function enumTexture(match : string, recursive : bool, layer : uint, onEnum : function)

    枚举贴图。

    • 参数
    • match : 模型匹配规则,可以为 @开头的正则表达式,如 '@.*alpah.*'。
    • recursive : 表示是否同时枚举submesh。
    • layer : 表示纹理层数,取值范围为[0, 3],默认值为0。
    • onEnum : 枚举的回调函数,类型为function( tex : _Image, name : string ),其中参数tex为贴图,name为贴图名。
      • 示例
    •  msh:enumTexture( "@.*_cc.*", true, 0, function ( image )
       ...
      end)
  • + function extendSkeleton(skl, bone, trans) : _Skeleton

    用mesh的Marker对skl的bone进行扩展。偏移方式是将bone与trans对齐。

    • 参数
    • skl:_Skeleton 骨骼对象。
    • bone: 骨骼id或名字。
    • trans: mesh的偏移。
      • 示例
    •  msh:extendSkeleton(skl, 'rw', dum)
  • + function getAnima(index : uint) : _Animation
    function getAnima(name : string) : _Animation

    返回mesh中的动画。

    • 参数
    • 索引值index或者动画的逻辑名name。
    • 返回
    • _Animation对象。
      • 示例
    •  anima1 = msh:getAnima(1)
      anima2 = msh:getAnima('skill.san')
  • + function getAnimas() : array

    返回所有动画。

    • 返回
    • _Animation对象的数组。
      • 示例
    •  animaArray = msh:getAnimas()
  • + function getBindTransform() : _Matrix3D

    获取绑定骨骼的_Matrix3D,若无则返回nil。

    示例

        mat = msh:getBindTransform()
  • + function getBoundBox() : {x1, y1, z1, x2, y2, z2}

    返回mesh的包围盒。

    • 返回
    • 一个对象。此对象的x1, y1, z1, x2, y2, z2属性来表示包围盒。
      • 示例
    •  boundBox = msh:getBoundBox()
  • + function getBumpMap() : _Image

    获取模型的凹凸贴图。

    示例

        img = msh:getBumpMap()
  • + function getEmissiveMap() : _Image

    获取模型的自发光贴图。

    示例

        img = msh:getEmissiveMap()
  • + function getEnvironmentMap() : _Image

    获取模型的环境贴图。

    示例

        img = msh:getEnvironmentMap()
  • + function getFaceCount() : int

    返回面数。

    示例

        msh:getFaceCount()
  • + function getMeshTransform([parent : _Matrix3D]) : _Matrix3D

    构造一个_Matrix3D,随机在Mesh以及其子Mesh的模型上取点,发射粒子用。

    • 参数
    • 可选参数,parent为构造的_Matrix3D对象的parent属性。
    • 返回
    • 构造的_Matrix3D对象。对该返回值的操作会被下一次函数调用重置。
      • 示例
    •  mat = _Matrix3D.new()
      mat = msh:getMeshTransform()
  • + function getPlayingAnimas() : array

    返回所有正在播放的动画。

    • 返回
    • _Animation对象的数组。
      • 示例
    •  animaArray = msh:getPlayingAnimas()
  • + function getSpecularMap() : _Image

    获取模型的高光贴图。

    示例

        img = msh:getSpecularMap()
  • + function getSubMesh(index : uint) : _Mesh
    function getSubMesh(name : string) : _Mesh

    返回mesh中的子mesh。

    • 参数
    • 索引值index或者子mesh的逻辑名name。
    • 返回
    • 此子Mesh对象。
      • 示例
    •  msh1 = msh:getSubMesh(1)
      msh2 = msh:getSubMesh("HAND")
  • + function getSubMeshCount() : int

    返回子mesh的个数。

    示例

        msh:getSubMeshCount()
  • + function getSubMeshs() : array

    返回submesh的数组。数组中的每个元素是一个_Mesh对象。

    示例

        mshArray = msh:getSubMeshs()
  • + function getTexture(layer : uint) : _Image

    返回贴图。

    • 参数
    • layer : 纹理层数,取值范围为[0, 3],默认值为0
    • 返回
    • _Image
    • 示例

       texture = msh:getTexture(1)
  • + function getVertexCount() : int

    返回顶点数。

    示例

        msh:getVertexCount()
  • + function lockCamera(v: _Vector3)
    function lockCamera(x, y, z)

    锁定摄像机。

    • 参数
    • 参数是相对于摄像机的eye点的坐标。
  • + function lockX(v: _Vector3)
    function lockX(x, y, z)

    锁定X轴。

    • 参数
    • 参数是相对于摄像机的eye点的坐标。
  • + function lockY(v: _Vector3)
    function lockY(x, y, z)

    锁定Y轴。

    • 参数
    • 参数是相对于摄像机的eye点的坐标。
  • + function lockZ(v: _Vector3)
    function lockZ(x, y, z)

    锁定Z轴。

    • 参数
    • 参数是相对于摄像机的eye点的坐标。
  • + function onDrawMesh(onDraw : function)

    mesh渲染时的回调。

    示例

        mesh:onDrawMesh(function()
     print('onDrawMesh')
    end)
  • + function setBumpMap(bumpmap : _Image, recursive : bool)

    设置凹凸贴图。

    • 参数
    • bumpmap : _Image对象。
    • recursive : 表示是否同时设置submesh。
      • 示例
    •  msh:setBumpMap(_Image.new('stone_normal.jpg'))
  • + function setEmissiveMap(EmissiveMap : _Image, recursive : bool)

    设置自发光贴图。

    • 参数
    • bumpmap : _Image对象。
    • recursive : 表示是否同时设置submesh。
      • 示例
    •  msh:setEmissiveMap(_Image.new('stone_normal.jpg'))
  • + function setEnvironmentMap(environmentmap : _Image, recursive : bool, layer : int)

    设置流光贴图。

    • 参数
    • environmentmap : _Image对象。
    • recursive : 表示是否同时设置submesh。

    示例

        msh:setEnvironmentMap(_Image.new('env.jpg'), true, 1)
  • + function setSpecularMap(img : _Image, [recursive : bool])

    设置模型上的高光贴图。

    • 参数
    • img : 高光贴图的_Image对象
    • 可选参数recursive 为布尔值,表示是否同时枚举submesh。
      • 示例
    •  msh:setSpecularMap(_Image.new('stone_specular.jpg'))
  • + function setTexture(tex : _Image, recursive : bool[, layer : uint])

    设置贴图。

    • 参数
    • 可选参数,tex为_Image对象。
    • recursive : 表示是否同时设置submesh。
    • layer : 纹理层数,取值范围为[0, 3],默认值为0。
      • 示例
    •  msh:setTexture(_Image.new('stone_color.jpg'))
  • + function stopAnimas()

    停止所有动画。

    示例

        msh:stopAnimas()
  • + function unextendSkeleton()

    取消该Mesh对骨骼的所有扩充。

    示例

        msh:unextendSkeleton()
问题反馈(登录才可以发表哦!)