Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: data/branches/Shader_HS18/materials/Example/Examples.program @ 12096

Last change on this file since 12096 was 12096, checked in by wiesep, 6 years ago

Working version

File size: 19.8 KB
Line 
1//---------------------------------------------------
2// This file includes a number of basic GPU programs
3// for use in many materials.
4//---------------------------------------------------
5
6
7// A really basic ambient pass program, support for one texture coordinate set
8vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureCg cg
9{
10    source Example_Basic.cg
11    entry_point ambientOneTexture_vp
12    profiles vs_1_1 arbvp1
13
14    default_params
15    {
16        param_named_auto worldViewProj worldviewproj_matrix
17        param_named_auto ambient ambient_light_colour
18    }
19
20}
21
22vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureCgSm4 cg
23{
24    source Example_Basic_sm4.cg
25    entry_point ambientOneTexture_vp
26    profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
27
28    default_params
29    {
30        param_named_auto worldViewProj worldviewproj_matrix
31        param_named_auto ambient ambient_light_colour
32    }
33
34}
35
36// A really basic ambient pass program, support for one texture coordinate set
37vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureHLSL hlsl
38{
39    source Example_Basic4.hlsl
40    entry_point ambientOneTexture_vp
41    target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
42
43    default_params
44    {
45        param_named_auto worldViewProj worldviewproj_matrix
46        param_named_auto ambient ambient_light_colour
47    }
48}
49
50// A really basic ambient pass program, support for one texture coordinate set
51vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureGLSL glsl
52{
53    source AmbientOneTexture.glsl
54
55    default_params
56    {
57        param_named_auto ambient ambient_light_colour
58        param_named_auto worldViewProj worldviewproj_matrix
59    }
60}
61
62// A really basic ambient pass program, support for one texture coordinate set
63vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureGLSLES glsles
64{
65    source AmbientOneTexture.glsles
66
67    default_params
68    {
69        param_named_auto worldViewProj worldviewproj_matrix
70        param_named_auto ambient ambient_light_colour
71    }
72}
73
74vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureWithUVGLSLES glsles
75{
76    source AmbientOneTextureWithUV.glsles
77
78    default_params
79    {
80        param_named_auto worldViewProj worldviewproj_matrix
81        param_named_auto ambient ambient_light_colour
82    }
83}
84
85vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureWithUVGLSL glsl
86{
87    source AmbientOneTextureWithUV.glsl
88
89    default_params
90    {
91        param_named_auto worldViewProj worldviewproj_matrix
92        param_named_auto ambient ambient_light_colour
93    }
94}
95
96vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureWithUV unified
97{
98    delegate Ogre/BasicVertexPrograms/AmbientOneTextureWithUVGLSL
99    delegate Ogre/BasicVertexPrograms/AmbientOneTextureWithUVGLSLES
100    delegate Ogre/BasicVertexPrograms/AmbientOneTextureHLSL
101    delegate Ogre/BasicVertexPrograms/AmbientOneTextureCg
102    delegate Ogre/BasicVertexPrograms/AmbientOneTextureCgSm4
103}
104
105vertex_program Ogre/BasicVertexPrograms/AmbientOneTextureUnified unified
106{
107    delegate Ogre/BasicVertexPrograms/AmbientOneTextureGLSL
108    delegate Ogre/BasicVertexPrograms/AmbientOneTextureGLSLES
109    delegate Ogre/BasicVertexPrograms/AmbientOneTextureHLSL
110    delegate Ogre/BasicVertexPrograms/AmbientOneTextureCg
111    delegate Ogre/BasicVertexPrograms/AmbientOneTextureCgSm4
112}
113
114fragment_program Ogre/BasicFragmentPrograms/DiffuseOneTextureCg cg
115{
116    source Example_Basic.cg
117    entry_point diffuseOneTexture_fp
118    profiles ps_2_0 arbfp1
119}
120
121fragment_program Ogre/BasicFragmentPrograms/DiffuseOneTextureHLSL hlsl
122{
123    source Example_Basic4.hlsl
124    entry_point diffuseOneTexture_fp
125    target ps_4_0 ps_4_0_level_9_1 ps_4_0_level_9_3
126}
127
128fragment_program Ogre/BasicFragmentPrograms/DiffuseOneTextureGLSLES glsles
129{
130    source DiffuseOneTexture.glsles
131    default_params
132    {
133        param_named texMap int 0
134    }
135}
136
137fragment_program Ogre/BasicFragmentPrograms/DiffuseOneTextureGLSL glsl
138{
139    source DiffuseOneTexture.glsl
140    default_params
141    {
142        param_named texMap int 0
143    }
144}
145
146fragment_program Ogre/BasicFragmentPrograms/DiffuseOneTexture unified
147{
148    delegate Ogre/BasicFragmentPrograms/DiffuseOneTextureGLSL
149    delegate Ogre/BasicFragmentPrograms/DiffuseOneTextureGLSLES
150        delegate Ogre/BasicFragmentPrograms/DiffuseOneTextureHLSL
151    delegate Ogre/BasicFragmentPrograms/DiffuseOneTextureCg
152}
153
154// A really basic ambient pass program, support for one texture coordinate set
155fragment_program Ogre/BasicFragmentPrograms/PassthroughFP unified
156{
157    delegate Ogre/BasicFragmentPrograms/PassthroughFpGLSL
158    delegate Ogre/BasicFragmentPrograms/PassthroughFpGLSLES
159        delegate Ogre/BasicFragmentPrograms/PassthroughFpHLSL
160    delegate Ogre/BasicFragmentPrograms/PassthroughFpCgSm4
161    delegate Ogre/BasicFragmentPrograms/PassthroughFpCg
162}
163
164// A really basic ambient pass program, support for one texture coordinate set
165fragment_program Ogre/BasicFragmentPrograms/PassthroughFpCgSm4 cg
166{
167    entry_point main
168    source PassthroughFP_sm4.cg
169    profiles ps_4_0 ps_4_0_level_9_1 ps_4_0_level_9_3
170}
171
172// A really basic ambient pass program, support for one texture coordinate set
173fragment_program Ogre/BasicFragmentPrograms/PassthroughFpHLSL hlsl
174{
175    entry_point main
176    source PassthroughFP_sm4.hlsl
177    target ps_4_0 ps_4_0_level_9_1 ps_4_0_level_9_3
178}
179
180
181fragment_program Ogre/BasicFragmentPrograms/PassthroughFpCg cg
182{
183    entry_point mainCg
184    source PassthroughFP.cg
185    profiles ps_2_0 arbfp1
186}
187
188// A really basic ambient pass program, support for one texture coordinate set
189fragment_program Ogre/BasicFragmentPrograms/PassthroughFpCgSm4ForAmbientOneTexture cg
190{
191    entry_point mainForAmbientOneTexture
192    source PassthroughFP_sm4.cg
193    profiles ps_4_0 ps_4_0_level_9_1 ps_4_0_level_9_3
194}
195
196
197// A really basic ambient pass program, support for one texture coordinate set
198fragment_program Ogre/BasicFragmentPrograms/PassthroughFpGLSLES glsles
199{
200    source PassthroughFP.glsles
201}
202
203fragment_program Ogre/BasicFragmentPrograms/PassthroughFpGLSL glsl
204{
205    source PassthroughFP.glsl
206}
207
208// Same as below, but for use when rendering texture shadows
209vertex_program Ogre/HardwareSkinningOneWeightShadowCaster cg
210{
211    source Example_Basic.cg
212    entry_point hardwareSkinningOneWeightCaster_vp
213    profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
214    includes_skeletal_animation true
215}
216// Basic hardware skinning using one indexed weight per vertex
217vertex_program Ogre/HardwareSkinningOneWeight cg
218{
219   source Example_Basic.cg
220   entry_point hardwareSkinningOneWeight_vp
221   profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
222   includes_skeletal_animation true
223}
224// Same as below, but for use when rendering texture shadows
225vertex_program Ogre/HardwareSkinningTwoWeightsShadowCasterCg cg
226{
227    source Example_Basic.cg
228    entry_point hardwareSkinningTwoWeightsCaster_vp
229    profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
230    includes_skeletal_animation true
231}
232
233// Same as below, but for use when rendering texture shadows
234vertex_program Ogre/HardwareSkinningTwoWeightsShadowCasterHLSL hlsl
235{
236    source Example_Basic4.hlsl
237    entry_point hardwareSkinningTwoWeightsCaster_vp
238    target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
239    includes_skeletal_animation true
240    column_major_matrices false
241}
242
243vertex_program Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL glsl
244{
245    source skinningTwoWeightsShadowCasterVp.glsl
246    includes_skeletal_animation true
247}
248
249vertex_program Ogre/HardwareSkinningTwoWeightsShadowCasterGLSLES glsles
250{
251    source skinningTwoWeightsShadowCasterVp.glsles
252    includes_skeletal_animation true
253    use_optimiser false
254}
255
256vertex_program Ogre/HardwareSkinningTwoWeightsShadowCaster unified
257{
258    delegate Ogre/HardwareSkinningTwoWeightsShadowCasterGLSLES
259    delegate Ogre/HardwareSkinningTwoWeightsShadowCasterHLSL
260    delegate Ogre/HardwareSkinningTwoWeightsShadowCasterGLSL
261    delegate Ogre/HardwareSkinningTwoWeightsShadowCasterCg
262}
263
264// Basic hardware skinning using two indexed weights per vertex
265vertex_program Ogre/HardwareSkinningTwoWeightsHLSL hlsl
266{
267    source Example_Basic4.hlsl
268    entry_point hardwareSkinningTwoWeights_vp
269    target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
270    includes_skeletal_animation true
271    column_major_matrices false
272}
273
274vertex_program Ogre/HardwareSkinningTwoWeightsGLSL glsl
275{
276    source skinningTwoWeightsVp.glsl
277    includes_skeletal_animation true
278}
279
280vertex_program Ogre/HardwareSkinningTwoWeightsGLSLES glsles
281{
282    source skinningTwoWeightsVp.glsles
283    includes_skeletal_animation true
284    use_optimiser false
285}
286
287vertex_program Ogre/HardwareSkinningTwoWeightsCg cg
288{
289   source Example_Basic.cg
290   entry_point hardwareSkinningTwoWeights_vp
291   profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
292   includes_skeletal_animation true
293}
294
295vertex_program Ogre/HardwareSkinningTwoWeights unified
296{
297    delegate Ogre/HardwareSkinningTwoWeightsGLSL
298    delegate Ogre/HardwareSkinningTwoWeightsGLSLES
299    delegate Ogre/HardwareSkinningTwoWeightsHLSL
300    delegate Ogre/HardwareSkinningTwoWeightsCg
301
302    default_params
303    {
304        param_named_auto worldMatrix3x4Array world_matrix_array_3x4
305        param_named_auto viewProjectionMatrix viewproj_matrix
306        param_named_auto lightPos[0] light_position 0
307        param_named_auto lightPos[1] light_position 1
308        param_named_auto lightDiffuseColour[0] light_diffuse_colour 0
309        param_named_auto lightDiffuseColour[1] light_diffuse_colour 1
310        param_named_auto ambient ambient_light_colour
311        param_named_auto diffuse surface_diffuse_colour
312    }
313}
314
315// Basic hardware skinning using four indexed weights per vertex
316vertex_program Ogre/HardwareSkinningFourWeightsCg cg
317{
318   source Example_Basic.cg
319   entry_point hardwareSkinningFourWeights_vp
320   profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
321   includes_skeletal_animation true
322
323   default_params
324   {
325        param_named_auto worldMatrix3x4Array world_matrix_array_3x4
326        param_named_auto viewProjectionMatrix viewproj_matrix
327        param_named_auto lightPos[0] light_position 0
328        param_named_auto lightPos[1] light_position 1
329        param_named_auto lightDiffuseColour[0] light_diffuse_colour 0
330        param_named_auto lightDiffuseColour[1] light_diffuse_colour 1
331        param_named_auto ambient ambient_light_colour
332   }
333}
334
335// Basic hardware morph animation (no normals)
336vertex_program Ogre/HardwareMorphAnimationCg cg
337{
338    source Example_Basic.cg
339    entry_point hardwareMorphAnimation
340    profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
341
342    includes_morph_animation true
343    default_params
344    {
345        param_named_auto worldViewProj worldviewproj_matrix
346        param_named_auto anim_t animation_parametric
347    }
348}
349
350vertex_program Ogre/HardwareSkinningFourWeightsHLSL hlsl
351{
352   source Example_Basic4.hlsl
353   entry_point hardwareSkinningFourWeights_vp
354   target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
355   includes_skeletal_animation true
356
357   default_params
358   {
359        param_named_auto worldMatrix3x4Array world_matrix_array_3x4
360        param_named_auto viewProjectionMatrix viewproj_matrix
361        param_named_auto lightPos[0] light_position 0
362        param_named_auto lightPos[1] light_position 1
363        param_named_auto lightDiffuseColour[0] light_diffuse_colour 0
364        param_named_auto lightDiffuseColour[1] light_diffuse_colour 1
365        param_named_auto ambient ambient_light_colour
366   }
367}
368
369// Basic hardware morph animation (no normals)
370vertex_program Ogre/HardwareMorphAnimationHLSL hlsl
371{
372    source Example_Basic4.hlsl
373    entry_point hardwareMorphAnimation
374    target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
375
376    includes_morph_animation true
377    default_params
378    {
379        param_named_auto worldViewProj worldviewproj_matrix
380        param_named_auto anim_t animation_parametric
381    }
382}
383
384// Basic hardware morph animation (no normals)
385vertex_program Ogre/HardwareMorphAnimationGLSLES glsles
386{
387    source HardwareMorphAnimationVp.glsles
388
389    includes_morph_animation true
390    default_params
391    {
392        param_named_auto worldViewProj worldviewproj_matrix
393        param_named_auto anim_t animation_parametric
394    }
395}
396
397// Basic hardware morph animation (no normals)
398vertex_program Ogre/HardwareMorphAnimationGLSL glsl
399{
400    source HardwareMorphAnimationVp.glsl
401    syntax glsl150
402
403    includes_morph_animation true
404    default_params
405    {
406        param_named_auto worldViewProj worldviewproj_matrix
407        param_named_auto anim_t animation_parametric
408    }
409}
410
411vertex_program Ogre/HardwareSkinningFourWeights unified
412{
413        delegate Ogre/HardwareSkinningFourWeightsHLSL
414        delegate Ogre/HardwareSkinningFourWeightsCg
415}
416
417vertex_program Ogre/HardwareMorphAnimation unified
418{
419         delegate Ogre/HardwareMorphAnimationHLSL
420    delegate Ogre/HardwareMorphAnimationCg
421    delegate Ogre/HardwareMorphAnimationGLSL
422    delegate Ogre/HardwareMorphAnimationGLSLES
423}
424
425// Basic hardware pose animation supporting 2 active poses (no normals)
426vertex_program Ogre/HardwarePoseAnimationCg cg
427{
428    source Example_Basic.cg
429    entry_point hardwarePoseAnimation
430    profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
431
432    includes_pose_animation 2
433    default_params
434    {
435        param_named_auto worldViewProj worldviewproj_matrix
436        param_named_auto anim_t animation_parametric
437    }
438}
439
440// Basic hardware pose animation supporting 2 active poses (no normals)
441vertex_program Ogre/HardwarePoseAnimationHLSL hlsl
442{
443    source Example_Basic4.hlsl
444    entry_point hardwarePoseAnimation
445    target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
446
447    includes_pose_animation 2
448    default_params
449    {
450        param_named_auto worldViewProj worldviewproj_matrix
451        param_named_auto anim_t animation_parametric
452    }
453}
454
455// Basic hardware pose animation supporting 2 active poses (no normals)
456vertex_program Ogre/HardwarePoseAnimationGLSLES glsles
457{
458    source HardwarePoseAnimationVp.glsles
459
460    includes_pose_animation 2
461    default_params
462    {
463        param_named_auto worldViewProj worldviewproj_matrix
464        param_named_auto anim_t animation_parametric
465    }
466}
467
468// Basic hardware pose animation supporting 2 active poses (no normals)
469vertex_program Ogre/HardwarePoseAnimationGLSL glsl
470{
471    source HardwarePoseAnimationVp.glsl
472    syntax glsl150
473
474    includes_pose_animation 2
475    default_params
476    {
477        param_named_auto worldViewProj worldviewproj_matrix
478        param_named_auto anim_t animation_parametric
479    }
480}
481vertex_program Ogre/HardwarePoseAnimation unified
482{
483        delegate Ogre/HardwarePoseAnimationHLSL
484    delegate Ogre/HardwarePoseAnimationCg
485    delegate Ogre/HardwarePoseAnimationGLSL
486    delegate Ogre/HardwarePoseAnimationGLSLES
487}
488
489// Basic hardware morph animation (with normals)
490vertex_program Ogre/HardwareMorphAnimationWithNormalsCg cg
491{
492    source Example_Basic.cg
493    entry_point hardwareMorphAnimationWithNormals
494    profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
495
496    includes_morph_animation true
497    default_params
498    {
499        param_named_auto worldViewProj worldviewproj_matrix
500        param_named_auto anim_t animation_parametric
501        param_named_auto objSpaceLightPos light_position_object_space 0
502        param_named_auto ambient ambient_light_colour
503    }
504}
505
506// Basic hardware morph animation (with normals)
507vertex_program Ogre/HardwareMorphAnimationWithNormalsHLSL hlsl
508{
509    source Example_Basic4.hlsl
510    entry_point hardwareMorphAnimationWithNormals
511    target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
512
513    includes_morph_animation true
514    default_params
515    {
516        param_named_auto worldViewProj worldviewproj_matrix
517        param_named_auto anim_t animation_parametric
518        param_named_auto objSpaceLightPos light_position_object_space 0
519        param_named_auto ambient ambient_light_colour
520    }
521}
522
523// Basic hardware morph animation (with normals)
524vertex_program Ogre/HardwareMorphAnimationWithNormalsGLSLES glsles
525{
526    source HardwareMorphAnimationWithNormalsVp.glsles
527
528    includes_morph_animation true
529    default_params
530    {
531        param_named_auto worldViewProj worldviewproj_matrix
532        param_named_auto anim_t animation_parametric
533        param_named_auto objSpaceLightPos light_position_object_space 0
534        param_named_auto ambient ambient_light_colour
535    }
536}
537// Basic hardware morph animation (with normals)
538vertex_program Ogre/HardwareMorphAnimationWithNormalsGLSL glsl
539{
540    source HardwareMorphAnimationWithNormalsVp.glsl
541    syntax glsl150
542
543    includes_morph_animation true
544    default_params
545    {
546        param_named_auto worldViewProj worldviewproj_matrix
547        param_named_auto anim_t animation_parametric
548        param_named_auto objSpaceLightPos light_position_object_space 0
549        param_named_auto ambient ambient_light_colour
550    }
551}
552
553vertex_program Ogre/HardwareMorphAnimationWithNormals unified
554{
555        delegate Ogre/HardwareMorphAnimationWithNormalsHLSL
556    delegate Ogre/HardwareMorphAnimationWithNormalsCg
557    delegate Ogre/HardwareMorphAnimationWithNormalsGLSL
558    delegate Ogre/HardwareMorphAnimationWithNormalsGLSLES
559}
560
561// Basic hardware pose animation supporting 2 active poses (with normals)
562vertex_program Ogre/HardwarePoseAnimationWithNormalsHLSL hlsl
563{
564    source Example_Basic4.hlsl
565    entry_point hardwarePoseAnimationWithNormals
566    target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3
567
568    includes_pose_animation 2
569    default_params
570    {
571        param_named_auto worldViewProj worldviewproj_matrix
572        param_named_auto anim_t animation_parametric
573        param_named_auto objSpaceLightPos light_position_object_space 0
574        param_named_auto ambient ambient_light_colour
575    }
576}
577
578// Basic hardware pose animation supporting 2 active poses (with normals)
579vertex_program Ogre/HardwarePoseAnimationWithNormalsCg cg
580{
581    source Example_Basic.cg
582    entry_point hardwarePoseAnimationWithNormals
583    profiles vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_1_1 arbvp1
584
585    includes_pose_animation 2
586    default_params
587    {
588        param_named_auto worldViewProj worldviewproj_matrix
589        param_named_auto anim_t animation_parametric
590        param_named_auto objSpaceLightPos light_position_object_space 0
591        param_named_auto ambient ambient_light_colour
592    }
593}
594
595// Basic hardware pose animation supporting 2 active poses (with normals)
596vertex_program Ogre/HardwarePoseAnimationWithNormalsGLSLES glsles
597{
598    source HardwarePoseAnimationWithNormalsVp.glsles
599
600    includes_pose_animation 2
601    default_params
602    {
603        param_named_auto worldViewProj worldviewproj_matrix
604        param_named_auto anim_t animation_parametric
605        param_named_auto objSpaceLightPos light_position_object_space 0
606        param_named_auto ambient ambient_light_colour
607    }
608}
609
610// Basic hardware pose animation supporting 2 active poses (with normals)
611vertex_program Ogre/HardwarePoseAnimationWithNormalsGLSL glsl
612{
613    source HardwarePoseAnimationWithNormalsVp.glsl
614    syntax glsl150
615
616    includes_pose_animation 2
617    default_params
618    {
619        param_named_auto worldViewProj worldviewproj_matrix
620        param_named_auto anim_t animation_parametric
621        param_named_auto objSpaceLightPos light_position_object_space 0
622        param_named_auto ambient ambient_light_colour
623    }
624}
625
626vertex_program Ogre/HardwarePoseAnimationWithNormals unified
627{
628        delegate Ogre/HardwarePoseAnimationWithNormalsHLSL
629    delegate Ogre/HardwarePoseAnimationWithNormalsCg
630    delegate Ogre/HardwarePoseAnimationWithNormalsGLSL
631    delegate Ogre/HardwarePoseAnimationWithNormalsGLSLES
632}
633
634material Examples/Flare
635{
636        technique
637        {
638                pass
639                {
640                        lighting off
641                        scene_blend add
642                        depth_write off
643
644                        texture_unit
645                        {
646                                texture flare.png
647                        }
648                }
649        }
650
651        technique
652        {
653                scheme glow
654                pass
655                {
656                        lighting off
657                        scene_blend add
658                        depth_write off
659
660                        texture_unit
661                        {
662                                texture flare.png
663                        }
664                }
665        }
666}
Note: See TracBrowser for help on using the repository browser.