Packageaway3d.materials.methods
Classpublic class CompositeSpecularMethod
InheritanceCompositeSpecularMethod Inheritance BasicSpecularMethod Inheritance LightingMethodBase Inheritance ShadingMethodBase Inheritance flash.events.EventDispatcher
Subclasses CelSpecularMethod, FresnelSpecularMethod

CompositeSpecularMethod provides a base class for specular methods that wrap a specular method to alter the strength of its calculated strength.



Public Properties
 PropertyDefined By
  gloss : Number
[override] The sharpness of the specular highlight.
CompositeSpecularMethod
  passes : Vector.<MaterialPassBase>
[override] [read-only] Any passes required that render to a texture used by this method.
CompositeSpecularMethod
  shadingModel : String
[override] The model used by the specular shader
CompositeSpecularMethod
  specular : Number
[override] The overall strength of the specular highlights.
CompositeSpecularMethod
 InheritedspecularColor : uint
The colour of the specular reflection of the surface.
BasicSpecularMethod
  texture : Texture2DBase
[override] The bitmapData that encodes the specular highlight strength per texel in the red channel, and the sharpness in the green channel.
CompositeSpecularMethod
  viewDirVaryingReg : ShaderRegisterElement
[override]
CompositeSpecularMethod
Protected Properties
 PropertyDefined By
 Inherited_globalPosReg : ShaderRegisterElement
ShadingMethodBase
 Inherited_normalFragmentReg : ShaderRegisterElement
ShadingMethodBase
 Inherited_passes : Vector.<MaterialPassBase>
ShadingMethodBase
 Inherited_projectionReg : ShaderRegisterElement
ShadingMethodBase
 Inherited_secondaryUVFragmentReg : ShaderRegisterElement
ShadingMethodBase
 Inherited_specularDataRegister : ShaderRegisterElement
BasicSpecularMethod
 Inherited_specularTexData : ShaderRegisterElement
BasicSpecularMethod
 Inherited_specularTextureRegister : ShaderRegisterElement
BasicSpecularMethod
 Inherited_tangentVaryingReg : ShaderRegisterElement
ShadingMethodBase
 Inherited_totalLightColorReg : ShaderRegisterElement
BasicSpecularMethod
 Inherited_useTexture : Boolean
BasicSpecularMethod
 Inherited_uvFragmentReg : ShaderRegisterElement
ShadingMethodBase
 Inherited_viewDirFragmentReg : ShaderRegisterElement
ShadingMethodBase
 Inherited_viewDirVaryingReg : ShaderRegisterElement
ShadingMethodBase
Public Methods
 MethodDefined By
  
CompositeSpecularMethod(modulateMethod:Function, baseSpecularMethod:BasicSpecularMethod = null)
Creates a new WrapSpecularMethod object.
CompositeSpecularMethod
 Inherited
[override] Copies the state from a BasicSpecularMethod object into the current object.
BasicSpecularMethod
  
dispose():void
[override] Cleans up any resources used by the current object.
CompositeSpecularMethod
Protected Methods
 MethodDefined By
 Inherited
getTexSampleCode(vo:MethodVO, targetReg:ShaderRegisterElement, inputReg:ShaderRegisterElement, uvReg:ShaderRegisterElement = null, forceWrap:String = null):String
A helper method that generates standard code for sampling from a texture using the normal uv coordinates.
ShadingMethodBase
 Inherited
Marks the shader program as invalid, so it will be recompiled before the next render.
ShadingMethodBase
Property Detail
globalPosRegproperty
globalPosReg:ShaderRegisterElement[override]


Implementation
    arcane function get globalPosReg():ShaderRegisterElement
    arcane function set globalPosReg(value:ShaderRegisterElement):void
glossproperty 
gloss:Number[override]

The sharpness of the specular highlight.


Implementation
    public function get gloss():Number
    public function set gloss(value:Number):void
normalFragmentRegproperty 
normalFragmentReg:ShaderRegisterElement[override]


Implementation
    arcane function get normalFragmentReg():ShaderRegisterElement
    arcane function set normalFragmentReg(value:ShaderRegisterElement):void
passesproperty 
passes:Vector.<MaterialPassBase>  [read-only] [override]

Any passes required that render to a texture used by this method.


Implementation
    public function get passes():Vector.<MaterialPassBase>
projectionRegproperty 
projectionReg:ShaderRegisterElement[override]


Implementation
    arcane function get projectionReg():ShaderRegisterElement
    arcane function set projectionReg(value:ShaderRegisterElement):void
secondaryUVFragmentRegproperty 
secondaryUVFragmentReg:ShaderRegisterElement[override]


Implementation
    arcane function get secondaryUVFragmentReg():ShaderRegisterElement
    arcane function set secondaryUVFragmentReg(value:ShaderRegisterElement):void
shadingModelproperty 
shadingModel:String[override]

The model used by the specular shader


Implementation
    public function get shadingModel():String
    public function set shadingModel(value:String):void
shadowRegisterproperty 
shadowRegister:ShaderRegisterElement  [write-only] [override]


Implementation
    arcane function set shadowRegister(value:ShaderRegisterElement):void
specularproperty 
specular:Number[override]

The overall strength of the specular highlights.


Implementation
    public function get specular():Number
    public function set specular(value:Number):void
tangentVaryingRegproperty 
tangentVaryingReg:ShaderRegisterElement[override]


Implementation
    arcane function get tangentVaryingReg():ShaderRegisterElement
    arcane function set tangentVaryingReg(value:ShaderRegisterElement):void
textureproperty 
texture:Texture2DBase[override]

The bitmapData that encodes the specular highlight strength per texel in the red channel, and the sharpness in the green channel. You can use SpecularBitmapTexture if you want to easily set specular and gloss maps from greyscale images, but prepared images are preffered.


Implementation
    public function get texture():Texture2DBase
    public function set texture(value:Texture2DBase):void
UVFragmentRegproperty 
UVFragmentReg:ShaderRegisterElement[override]


Implementation
    arcane function get UVFragmentReg():ShaderRegisterElement
    arcane function set UVFragmentReg(value:ShaderRegisterElement):void
viewDirFragmentRegproperty 
viewDirFragmentReg:ShaderRegisterElement[override]


Implementation
    arcane function get viewDirFragmentReg():ShaderRegisterElement
    arcane function set viewDirFragmentReg(value:ShaderRegisterElement):void
viewDirVaryingRegproperty 
viewDirVaryingReg:ShaderRegisterElement[override]


Implementation
    public function get viewDirVaryingReg():ShaderRegisterElement
    public function set viewDirVaryingReg(value:ShaderRegisterElement):void
Constructor Detail
CompositeSpecularMethod()Constructor
public function CompositeSpecularMethod(modulateMethod:Function, baseSpecularMethod:BasicSpecularMethod = null)

Creates a new WrapSpecularMethod object.

Parameters
modulateMethod:Function — The method which will add the code to alter the base method's strength. It needs to have the signature modSpecular(t : ShaderRegisterElement, regCache : ShaderRegisterCache) : String, in which t.w will contain the specular strength and t.xyz will contain the half-vector or the reflection vector.
 
baseSpecularMethod:BasicSpecularMethod (default = null) — The base specular method on which this method's shading is based.
Method Detail
activate()method
override arcane function activate(vo:MethodVO, stage3DProxy:Stage3DProxy):void

Parameters

vo:MethodVO
 
stage3DProxy:Stage3DProxy

cleanCompilationData()method 
override arcane function cleanCompilationData():void

deactivate()method 
override arcane function deactivate(vo:MethodVO, stage3DProxy:Stage3DProxy):void

Parameters

vo:MethodVO
 
stage3DProxy:Stage3DProxy

dispose()method 
override public function dispose():void

Cleans up any resources used by the current object.

getFragmentCodePerLight()method 
override arcane function getFragmentCodePerLight(vo:MethodVO, lightIndex:int, lightDirReg:ShaderRegisterElement, lightColReg:ShaderRegisterElement, regCache:ShaderRegisterCache):String

Get the fragment shader code that will generate the code relevant to a single light.

Parameters

vo:MethodVO
 
lightIndex:int
 
lightDirReg:ShaderRegisterElement
 
lightColReg:ShaderRegisterElement
 
regCache:ShaderRegisterCache

Returns
String
getFragmentCodePerProbe()method 
override arcane function getFragmentCodePerProbe(vo:MethodVO, lightIndex:int, cubeMapReg:ShaderRegisterElement, weightRegister:String, regCache:ShaderRegisterCache):String

Get the fragment shader code that will generate the code relevant to a single light probe object.

Parameters

vo:MethodVO — The index of the light currently processed. This is a continuation of the lightIndex parameter of the getFragmentCodePerLight method.
 
lightIndex:int — The register containing the cube map for the current probe
 
cubeMapReg:ShaderRegisterElement — A string representation of the register + component containing the current weight
 
weightRegister:String — The register cache providing any necessary registers to the shader
 
regCache:ShaderRegisterCache

Returns
String
getFragmentPostLightingCode()method 
override arcane function getFragmentPostLightingCode(vo:MethodVO, regCache:ShaderRegisterCache, targetReg:ShaderRegisterElement):String

Parameters

vo:MethodVO
 
regCache:ShaderRegisterCache
 
targetReg:ShaderRegisterElement

Returns
String
getFragmentPreLightingCode()method 
override arcane function getFragmentPreLightingCode(vo:MethodVO, regCache:ShaderRegisterCache):String

Parameters

vo:MethodVO
 
regCache:ShaderRegisterCache

Returns
String
getVertexCode()method 
override arcane function getVertexCode(vo:MethodVO, regCache:ShaderRegisterCache):String

Parameters

vo:MethodVO
 
regCache:ShaderRegisterCache

Returns
String
initConstants()method 
override arcane function initConstants(vo:MethodVO):void

Parameters

vo:MethodVO

initVO()method 
override arcane function initVO(vo:MethodVO):void

Parameters

vo:MethodVO

reset()method 
override arcane function reset():void