newparam

The newparam element allows you to create new effect parameters which can be shared by multipe profiles.

Element Information

Model

Attributes

QName Type Fixed Default Use Inheritable Annotation
sid sid_type required
The sid attribute is a text string value containing the sub-identifier of this element. 
This value must be unique within the scope of the parent element. Optional attribute.

Source

<xs:element name="newparam" type="fx_newparam_type" minOccurs="0" maxOccurs="unbounded">
  <xs:annotation>
    <xs:documentation>The newparam element allows you to create new effect parameters which can be shared by multipe profiles.</xs:documentation>
  </xs:annotation>
</xs:element>

Sample

< profile_GLSL xmlns = "http://www.collada.org/2008/03/COLLADASchema" >

< code sid = "Vertex_Program_E0_P0_VP" >

uniform vec3 fvLightPosition; uniform vec3 fvEyePosition; varying vec2 Texcoord; varying vec3 ViewDirection; varying vec3 LightDirection; attribute vec3 rm_Binormal; attribute vec3 rm_Tangent; void main( void ) { gl_Position = ftransform(); Texcoord = gl_MultiTexCoord0.xy; vec4 fvObjectPosition = gl_ModelViewMatrix * gl_Vertex; vec3 fvViewDirection = fvEyePosition - fvObjectPosition.xyz; vec3 fvLightDirection = fvLightPosition - fvObjectPosition.xyz; vec3 fvNormal = gl_NormalMatrix * gl_Normal; vec3 fvBinormal = gl_NormalMatrix * rm_Binormal; vec3 fvTangent = gl_NormalMatrix * rm_Tangent; ViewDirection.x = dot( fvTangent, fvViewDirection ); ViewDirection.y = dot( fvBinormal, fvViewDirection ); ViewDirection.z = dot( fvNormal, fvViewDirection ); LightDirection.x = dot( fvTangent, fvLightDirection.xyz ); LightDirection.y = dot( fvBinormal, fvLightDirection.xyz ); LightDirection.z = dot( fvNormal, fvLightDirection.xyz ); }

</ code>

< code sid = "Fragment_Program_E0_P0_FP" >

uniform vec4 fvAmbient; uniform vec4 fvSpecular; uniform vec4 fvDiffuse; uniform float fSpecularPower; uniform sampler2D baseMap; uniform sampler2D bumpMap; varying vec2 Texcoord; varying vec3 ViewDirection; varying vec3 LightDirection; void main( void ) { vec3 fvLightDirection = normalize( LightDirection ); vec3 fvNormal = normalize( ( texture2D( bumpMap, Texcoord ).xyz * 2.0 ) - 1.0 ); float fNDotL = dot( fvNormal, fvLightDirection ); vec3 fvReflection = normalize( ( ( 2.0 * fvNormal ) * fNDotL ) - fvLightDirection ); vec3 fvViewDirection = normalize( ViewDirection ); float fRDotV = max( 0.0, dot( fvReflection, fvViewDirection ) ); vec4 fvBaseColor = texture2D( baseMap, Texcoord ); vec4 fvTotalAmbient = fvAmbient * fvBaseColor; vec4 fvTotalDiffuse = fvDiffuse * fNDotL * fvBaseColor; vec4 fvTotalSpecular = fvSpecular * ( pow( fRDotV, fSpecularPower ) ); gl_FragColor = ( fvTotalAmbient + fvTotalDiffuse + fvTotalSpecular ); }

</ code>

< newparam sid = "fSpecularPower_E0_P0" >

< float>

25

</ float>

</ newparam>

< newparam sid = "fvAmbient_E0_P0" >

< float4>

0.368627 0.368421 0.368421 1

</ float4>

</ newparam>

< newparam sid = "fvDiffuse_E0_P0" >

< float4>

0.886275 0.885003 0.885003 1

</ float4>

</ newparam>

< newparam sid = "fvEyePosition_E0_P0" >

< float3>

0 0 100

</ float3>

</ newparam>