_Material

材质类。 全部展开

属性展开

  • + ambient : uint

    环境光。

    • 示例

       mat.ambient = _Color.Red
  • + ambientLight : uint

    设置这个属性后,角色不受其他环境光影响,只受这个环境光影响(这个值单独使用,设置材质的其他方法和属性不能和这个值一起使用)。

    • 示例

       mat.ambientLight = _Color.Red
  • + diffuse : uint

    漫反射光。

    • 示例

       mat.diffuse = _Color.Red
  • + diffuseMap : _Image

    漫反射贴图。

    • 示例

       mat.diffuseMap = _Image.new('test.jpg')
  • + diffuseToneCoeff : number

    漫反射颜色系数。

    • 示例

       mat.diffuseToneCoeff = mat.diffuseToneCoeff-0.1
  • + diffuseToneExp : number

    漫反射颜色指数。

    • 示例

       mat.diffuseToneExp = mat.diffuseToneExp-0.1
  • + diffuseToneOffset : number

    漫反射颜色步进。

    • 示例

       mat.diffuseToneOffset = mat.diffuseToneOffset-0.1
  • + emissive : uint

    自发光。

    • 示例

       mat.emissive = _Color.Red
  • + emissiveMap : _Image

    自发光贴图。

    • 示例

       mat.emissiveMap = _Image.new('test.jpg')
  • + envBright1 : uint

    流光起始亮度。

    • 示例

       mat.envBright1 = 0.5
  • + envBright2 : uint

    流光结束亮度。

    • 示例

       mat.envBright2 = 1.5
  • + environmentMap : _Image

    流光贴图。

    • 示例

       mat.environmentMap = _Image.new('test.jpg')
  • + envLockCamera : bool

    流光锁定摄像机。

    • 示例

       mat.envLockCamera = true
  • + envPaint : bool

    流光叠加渲染。

    • 示例

       mat.envPaint = true
  • + envSpeed : _Vector2

    流光速度。

    • 示例

       mat.envSpeed = _Vector2.new(1, 0)
  • + envUSpeed : int

    流光U方向速度。

    • 示例

       mat.envUSpeed = 10
  • + envVSpeed : int

    流光V方向速度。

    • 示例

       mat.envVSpeed = 0.8
  • + isAdditive : bool

    是否启用Additive。

    • 示例

       mat.isAdditive = true
  • + isAlpha : bool

    是否启用透明贴图。

    • 示例

       mat.isAlpha = true
  • + isBillboard : bool

    是否启用Billboard。

    • 示例

       mat.isBillboard = true
  • + isBorderTexture : bool

    是否启用边框颜色纹理。

    • 示例

       mat.isBorderTexture = true
  • + isClampTexture : bool

    是否启用夹取纹理。

    • 示例

       mat.isClampTexture = true
  • + isColorKey : bool

    是否启用ColorKey。

    • 示例

       mat.isColorKey = true
  • + isDecal : bool

    是否启用贴花效果。

    • 示例

       mat.isDecal = true
  • + isDetail : bool

    是否启用Detail。

    • 示例

       mat.isDetail = true
  • + isHdr : bool

    是否启用HDR。

    • 示例

       mat.isHdr = true
  • + isMaterial : bool

    是否启用材质。

    • 示例

       mat.isMaterial = true
  • + isNoFog : bool

    是否启用不受雾。

    • 示例

       mat.isNoFog = true
  • + isNoLight : bool

    是否启用不受光。

    • 示例

       mat.isNoLight = true
  • + isPaint : bool

    加色渲染。

    • 示例

       mat.isPaint = true
  • + isSubtractive : bool

    是否启用Subtractive。

    • 示例

       mat.isSubtractive = true
  • + layerTexture : _Image

    分层纹理贴图。

    • 示例

       mat.layerTexture = _Image.new('test.jpg')
  • + name : string

    逻辑名。

    • 示例

       mat.name = "face"
  • + noiseMap : _Image

    扰动贴图。

    • 示例

       mat.noiseMap = _Image.new('test.jpg')
  • + noisePower : number

    扰动强度。

    • 示例

       mat.noisePower = 2
  • + normalMap : _Image

    法线贴图。

    • 示例

       mat.normalMap = _Image.new('test.jpg')
  • + power : number

    自发光强度。

    • 示例

       mat.power = 10.5
  • + resname : string

    资源名。

    • 示例

       mat.resname = "face.mtl"
  • + shine : number

    镜面光强度。

    • 示例

       mat.shine = 5.0
  • + specular : uint

    高光。

    • 示例

       mat.specular = _Color.Red
  • + specularMap : _Image

    高光贴图。

    • 示例

       mat.specularMap = _Image.new('test.jpg')
  • + specularPower : uint

    高光光强。

    • 示例

       specularPower = 0.5
  • + UVAngle : number

    UV旋转角度。

    • 示例

       mat.UVAngle = math.pi / 180
  • + UVAngleSpeed : number

    UV旋转速度。

    • 示例

       mat.UVAngleSpeed = math.pi / 180
  • + UVOffset : _Vector2

    UV偏移。

    • 示例

       vec = _Vector2.new(source.UVOffset)
      mat.UVOffset = vec
  • + UVOffsetSpeed : _Vector2

    UV偏移速度。

    • 示例

       mat.UVOffsetSpeed.x = mat.UVOffsetSpeed.x + 0.1
  • + UVScale : _Vector2

    UV缩放。

    • 示例

       vec = _Vector2.new(source.UVScale)
      mat.UVScale = vec
  • + UVScaleSpeed : _Vector2

    UV缩放速度。

    • 示例

       mat.UVScaleSpeed.x = mat.UVScaleSpeed.x + 0.1

构造方法展开

  • + function _Material() : _Material

公共方法展开

  • + function addSubMaterial(mtl : _Material)

    添加子材质。

    • 示例

       m = _Material.new()
      m:addSubMaterial('test.mtl')
  • + function clearSubMaterials()

    清除所有的子材质。

    • 示例

        m:clearSubMaterials()
  • + function clone() : _Material

    克隆。

  • + function delSubMaterial(index : number)

    删除指定的子材质。

    • 参数

      index : 子材质的编号

    • 示例

       m:delSubMaterial(1)
  • + function getSubMaterial(index : number) : _Material

    返回指定的子材质。

    • 示例

        mat = m:getSubMaterial(1)
  • + function getSubMaterials() : array

    返回所有的子材质。

    • 示例

        table = m:getSubMaterials()
  • + function replaceSubMaterial(index : number, mtl : _Material)

    用mtl交换指定index处的子材质。

    • 示例

        m:replaceSubMaterial(1, mat)
  • + function save(mtl : _Material)

    保存。

    • 示例

       m = _Material.new()
      m:save('test.mtl')
  • + function setAmbient(r : number, g : number, b : number, a : number)

    通过设置r, g, b, a来设置环境光。

    • 示例

       _sys:addPath('res')
      teapot = _mf:createTeapot()
      _rd:useLight(_AmbientLight.new())
      _rd:useLight(_SkyLight.new())
      _rd.camera.eye = _Vector3.new(10, 10, 10)
      m = _Material.new()
      local acolor = 0xffffff

      function newcolor(color)
      r = math.ceil(color / 0x10000)
      g = math.ceil(color % 0x10000 / 0x100)
      b = math.ceil(color % 0x1000 % 0x100)
      return r, g, b
      end
      local r, g, b = newcolor(acolor)
      m:setAmbient(r, g, b, 0)

      _app:onIdle(function(e)
      _rd:useMaterial(m)
      teapot:drawMesh()
      _rd:popMaterial()
      end)
  • + function setDiffuse(r : number, g : number, b : number, a : number)

    通过设置r, g, b, a来设置漫反射光。

    • 示例

       _sys:addPath('res')
      teapot = _mf:createTeapot()
      _rd:useLight(_AmbientLight.new())
      _rd:useLight(_SkyLight.new())
      _rd.camera.eye = _Vector3.new(10, 10, 10)
      m = _Material.new()
      local dcolor = 0xffffff

      function newcolor(color)
      r = math.ceil(color / 0x10000)
      g = math.ceil(color % 0x10000 / 0x100)
      b = math.ceil(color % 0x1000 % 0x100)
      return r, g, b
      end
      local r, g, b = newcolor(dcolor)
      m:setDiffuse(r, g, b, 0)

      _app:onIdle(function(e)
      _rd:useMaterial(m)
      teapot:drawMesh()
      _rd:popMaterial()
      end)
  • + function setEmissive(r : number, g : number, b : number, a : number)

    通过设置r, g, b, a来设置自发光。

    • 示例

       _sys:addPath('res')
      teapot = _mf:createTeapot()
      _rd:useLight(_AmbientLight.new())
      _rd:useLight(_SkyLight.new())
      _rd.camera.eye = _Vector3.new(10, 10, 10)
      m = _Material.new()
      local ecolor = 0xffffff

      function newcolor(color)
      r = math.ceil(color / 0x10000)
      g = math.ceil(color % 0x10000 / 0x100)
      b = math.ceil(color % 0x1000 % 0x100)
      return r, g, b
      end
      local r, g, b = newcolor(ecolor)
      m:setEmissive(r, g, b, 0)

      _app:onIdle(function(e)
      _rd:useMaterial(m)
      teapot:drawMesh()
      _rd:popMaterial()
      end)
  • + function setSpecular(r : number, g : number, b : number, a : number)

    通过设置r, g, b, a来设置高光。

    • 示例

       _sys:addPath('res')
      teapot = _mf:createTeapot()
      _rd:useLight(_AmbientLight.new())
      _rd:useLight(_SkyLight.new())
      _rd.camera.eye = _Vector3.new(10, 10, 10)
      m = _Material.new()
      local scolor = 0xffffff

      function newcolor(color)
      r = math.ceil(color / 0x10000)
      g = math.ceil(color % 0x10000 / 0x100)
      b = math.ceil(color % 0x1000 % 0x100)
      return r, g, b
      end
      local r, g, b = newcolor(scolor)
      m:setSpecular(r, g, b, 0)

      _app:onIdle(function(e)
      _rd:useMaterial(m)
      teapot:drawMesh()
      _rd:popMaterial()
      end)
问题反馈(登录才可以发表哦!)