Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method. |
QName | Type | Fixed | Default | Use | Inheritable | Annotation | |
---|---|---|---|---|---|---|---|
id | xs:ID | optional |
|
||||
sid | sid_type | required |
|
<xs:element name="technique" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="asset" type="asset_type" minOccurs="0"> <xs:annotation> <xs:documentation>The technique element may contain an asset element.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="annotate" type="fx_annotate_type" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="pass" type="cg_pass_type" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>A static declaration of all the render states, shaders, and settings for one rendering pipeline.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="extra" type="extra_type" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:ID"> <xs:annotation> <xs:documentation>The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute.</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="sid" type="sid_type" use="required"> <xs:annotation> <xs:documentation>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.</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> |
< profile_GLSL xmlns = "http://www.collada.org/2008/03/COLLADASchema" > |
[...] |
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> |
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> |
< float> |
25 |
</ float> |
</ newparam> |
< float4> |
0.368627 0.368421 0.368421 1 |
</ float4> |
</ newparam> |
< float4> |
0.886275 0.885003 0.885003 1 |
</ float4> |
</ newparam> |
< float3> |
0 0 100 |
</ float3> |
</ newparam> |
< float3> |
-100 100 100 |
</ float3> |
</ newparam> |
< float4> |
0.490196 0.488722 0.488722 1 |
</ float4> |
</ newparam> |
< sampler2D> |
< minfilter> |
LINEAR |
</ minfilter> |
< magfilter> |
LINEAR |
</ magfilter> |
< mipfilter> |
LINEAR |
</ mipfilter> |
</ sampler2D> |
</ newparam> |
< sampler2D> |
< minfilter> |
LINEAR |
</ minfilter> |
< magfilter> |
LINEAR |
</ magfilter> |
< mipfilter> |
LINEAR |
</ mipfilter> |
</ sampler2D> |
</ newparam> |
< pass sid = "Pass_0" > |
< program> |
< sources> |
</ sources> |
</ shader> |
< sources> |
</ sources> |
</ shader> |
</ bind_uniform> |