home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / demos / gpc / benchmarks / nurb / nurb.vrb < prev    next >
Encoding:
Text File  |  1991-02-13  |  7.7 KB  |  280 lines

  1. %                                                  %
  2. %   BIF Verb file                                  %
  3. %        Light sourced Bezier trimmed surfaces     %
  4. %        Data provided by Lockheed EDG program     %
  5. %                                                  %
  6.  
  7. CONFIGURATION SINGLE_BUFFER;
  8. SPECIFY_REPORT_FILE "nurb.brf" ;
  9.  
  10. %******************************************%
  11. % redefine the projection point, front and back clipping planes %
  12. VIEW_ORIENTATION3
  13. 41                      % view orientation matrix               %
  14. 0.0 0.0 0.0             % view reference point                  %
  15. 0.0 0.0 1.0             % view plane normal                     %
  16. 0.0 1.0 0.0 ;           % view up vector                        %
  17.  
  18. VIEW_MAPPING3 
  19. 42                              % view mapping matrix           %
  20. -5.0 5.0 -5.0 5.0               % x min x max   y min y max     %
  21. PERSPECTIVE
  22. 0.0 0.0 30.0                    % projection point(x*6.0)       %
  23. 7.0                             % front clipping plane          %
  24. -7.0                            % back clipping plane           %
  25. MATCH_VIEW_AREA
  26. {0.0 1.0
  27. 0.0 1.0
  28. GROW}
  29. ;
  30.  
  31. % Set up DEFINE view (view table entry 1)        %
  32. DEFINE_VIEW_SPECIFICATION
  33.         40              % id_view_spec                          %
  34.         41              % id_view_orientation                   %
  35.         42              % id_view_mapping                       %
  36.         XY_CLIP
  37.         FRONT_CLIP
  38.         BACK_CLIP
  39.         0.0 1.0         % X extrema of view area                %
  40.         0.0 1.0 ;       % Y extrema of view area                %
  41.  
  42. %******************************************%
  43. BACKGROUND_COLOR 0.1 0.3 0.1;
  44. ACTIVE_VIEW 40;
  45.  
  46. READ_GEOMETRY_FILE "nurb_extr.bif" ;
  47.  
  48. BEGIN_TEST 1 ;
  49. CHAR_HEIGHT 0.75;
  50. TEXT_ALIGN 2 0;
  51. CHAR_EXP 0.9;
  52. TEXT_PREC STROKE;
  53. TEXT_COLOR 1 1 0;
  54. TEXT 0 2.0 "Trimmed Bezier Surface Benchmark";
  55. TEXT_COLOR 1 1 1;
  56. TEXT 0 0.0 "Data Courtesy of";
  57. TEXT 0 -1.0 "Lockheed Corporation";
  58. END_TEST;
  59.  
  60. READ_GEOMETRY_FILE "nurb_comp.bif"   ;
  61.  
  62.  
  63. INTERIOR_COLOR 1.0 1.0 1.0;
  64. INTERIOR_STYLE SOLID;
  65. INTERIOR_SHADING 2;             % gouraud shading               %
  66. INTERIOR_LIGHTING 4;            % ambient + diffuse + specular  %
  67. HLHS_REMOVAL HLHS_ENABLE ;      % activate hidden surface removal%
  68. BACKFACE_PROCESSING 1 1 ;       % backface polygons culled      %
  69.  
  70. DEFINE_LIGHT 1
  71. .2 .2 .2
  72. AMBIENT_LIGHT ;
  73.  
  74. DEFINE_LIGHT 2
  75. 0.8 0.7 0.5
  76. DIRECTIONAL_LIGHT
  77. { -1.0 -1.0 -1.0 } ;
  78.  
  79. DEFINE_LIGHT 3
  80. 0.3 0.3 0.9
  81. DIRECTIONAL_LIGHT
  82. { 1.0 1.0 -1.0 } ;
  83.  
  84. LIGHT_STATE
  85. ACTIVATE_LIST { 1 2 3}
  86. DEACTIVATE_LIST { } ;
  87.  
  88.  
  89. SURFACE_PROPERTIES
  90.     0.6                         % ambient %
  91.     0.8                         % diffuse %
  92.     0.5                         % specular %
  93.     1.0 1.0 1.0                 % specular color %
  94.     5.0                         % specular power %
  95.     1                           % transparency %
  96. ;
  97.  
  98.  
  99. SURFACE_APPROXIMATION_CRITERIA 2 0.025 0.025;
  100.  
  101. ROTATE_XYZ3     1 0 0 90 REPLACE;
  102. SCALE3          1 .25 .25 .25 POSTCONCAT; 
  103. TRANSLATE3      1 3 -2 0 POSTCONCAT ;
  104.  
  105. ROTATE_XYZ3     2 0 0 90 REPLACE;
  106. SCALE3          2 .25 .25 .25 POSTCONCAT; 
  107. TRANSLATE3      2 3 -2 0 POSTCONCAT ;
  108. ROTATE_XYZ3     2 -60 0 0 POSTCONCAT;
  109. ROTATE_XYZ3     2 0 30 0 POSTCONCAT;
  110.  
  111. TRANSLATE3      3 -2.9409 -27.49 -4.0 REPLACE ;
  112. ROTATE_XYZ3     3 0 0 210 POSTCONCAT;
  113. ROTATE_XYZ3     3 -60 0 0 POSTCONCAT;
  114.  
  115. TRANSLATE3      4 -2.9409 -27.49 -4.0 REPLACE ;
  116. ROTATE_XYZ3     4 0 0 210 POSTCONCAT;
  117. ROTATE_XYZ3     4 -60 0 0 POSTCONCAT;
  118. SCALE3          4 2 2 2 POSTCONCAT; 
  119.  
  120. TRANSLATE3      5 -2.9409 -27.49 -4.0 REPLACE ;
  121. ROTATE_XYZ3     5 0 0 210 POSTCONCAT;
  122. ROTATE_XYZ3     5 -60 0 0 POSTCONCAT;
  123. SCALE3          5 4 4 4 POSTCONCAT; 
  124.  
  125. TRANSLATE3      6 -2.918 -21.5068 -2.4256 REPLACE ;
  126. ROTATE_XYZ3     6 -45 0 0 POSTCONCAT;
  127.  
  128. TRANSLATE3      7 -2.918 -21.5068 -2.4256 REPLACE ;
  129. ROTATE_XYZ3     7 -45 0 0 POSTCONCAT;
  130. SCALE3          7 2 2 2 POSTCONCAT; 
  131.  
  132. TRANSLATE3      8 -2.918 -21.5068 -2.4256 REPLACE ;
  133. ROTATE_XYZ3     8 -45 0 0 POSTCONCAT;
  134. SCALE3          8 4 4 4 POSTCONCAT; 
  135.  
  136. TRANSLATE3      9 -2.918 -21.5068 -2.4256 REPLACE ;
  137. ROTATE_XYZ3     9 -45 0 0 POSTCONCAT;
  138. SCALE3          9 4 4 4 POSTCONCAT; 
  139. ROTATE_XYZ3     9 -30 0 0 POSTCONCAT;
  140. ROTATE_XYZ3     9 0 15 0 POSTCONCAT;
  141.  
  142. SCALE3          10 1 1 1 REPLACE; 
  143.  
  144. SCALE3          11 2 2 2 REPLACE; 
  145.  
  146. ROTATE_XYZ3     12 -45 0 0 REPLACE;
  147.  
  148. ROTATE_XYZ3     13 -45 0 0 REPLACE;
  149. SCALE3          13 2 2 2 POSTCONCAT; 
  150.  
  151. ROTATE_XYZ3     14 -45 0 0 REPLACE;
  152. ROTATE_XYZ3     14 0 0 -45 POSTCONCAT;
  153.  
  154. ROTATE_XYZ3     15 -45 0 0 REPLACE;
  155. ROTATE_XYZ3     15 0 0 -45 POSTCONCAT;
  156. SCALE3          15 2 2 2 POSTCONCAT; 
  157.  
  158. TRANSLATE3      16 0.4198 0.473 -3.2291 REPLACE ;
  159. ROTATE_XYZ3     16 -60 0 0 POSTCONCAT;
  160.  
  161. TRANSLATE3      17 0.4198 0.473 -3.2291 REPLACE ;
  162. ROTATE_XYZ3     17 -60 0 0 POSTCONCAT;
  163. SCALE3          17 2 2 2 POSTCONCAT; 
  164.  
  165. TRANSLATE3      18 -0.2249 -2.3493 -3.65 REPLACE ;
  166. ROTATE_XYZ3     18 0 0 -175 POSTCONCAT;
  167. ROTATE_XYZ3     18 -75 0 0 POSTCONCAT;
  168.  
  169. TRANSLATE3      19 -0.2249 -2.3493 -3.65 REPLACE ;
  170. ROTATE_XYZ3     19 0 0 -175 POSTCONCAT;
  171. ROTATE_XYZ3     19 -75 0 0 POSTCONCAT;
  172. SCALE3          19 2 2 2 POSTCONCAT; 
  173.  
  174. TRANSLATE3      20 -4.1 -0.5433 -1.3724 REPLACE ;
  175. ROTATE_XYZ3     20 0 0 180 POSTCONCAT;
  176. ROTATE_XYZ3     20 -80 0 0 POSTCONCAT;
  177. SCALE3          20 0.5 0.5 0.5 POSTCONCAT; 
  178.  
  179. TRANSLATE3      21 -4.1 -0.5433 -1.3724 REPLACE ;
  180. ROTATE_XYZ3     21 0 0 180 POSTCONCAT;
  181. ROTATE_XYZ3     21 -80 0 0 POSTCONCAT;
  182.  
  183. TRANSLATE3      22 -4.1 -0.5433 -1.3724 REPLACE ;
  184. ROTATE_XYZ3     22 0 0 180 POSTCONCAT;
  185. ROTATE_XYZ3     22 -80 0 0 POSTCONCAT;
  186. SCALE3          22 2 2 2 POSTCONCAT; 
  187.  
  188. TRANSLATE3      23 -4.1 -0.5433 -1.3724 REPLACE ;
  189. ROTATE_XYZ3     23 0 0 180 POSTCONCAT;
  190. ROTATE_XYZ3     23 -80 0 0 POSTCONCAT;
  191. SCALE3          23 4 4 4 POSTCONCAT; 
  192.  
  193. TRANSLATE3      24 -4.1 -0.5433 -1.3724 REPLACE ;
  194. ROTATE_XYZ3     24 0 0 180 POSTCONCAT;
  195. ROTATE_XYZ3     24 -80 0 0 POSTCONCAT;
  196. SCALE3          24 6 6 6 POSTCONCAT; 
  197.  
  198. ROTATE_XYZ3     50 0 90 0 REPLACE;
  199. TRANSLATE3      50 90.0 -2.0 0.0 POSTCONCAT ;
  200. ROTATE_XYZ3     50 60 0 0 POSTCONCAT; 
  201. SCALE3          50 .06 .06 .06 POSTCONCAT; 
  202.  
  203. ROTATE_XYZ3     51 0 90 0 REPLACE;
  204. TRANSLATE3      51 106.0 -2.0 0.0 POSTCONCAT ;
  205. ROTATE_XYZ3     51 60 0 0 POSTCONCAT;
  206.  
  207. ROTATE_XYZ3     52 0 90 0 REPLACE;
  208. TRANSLATE3      52 106.0 -2.0 0.0 POSTCONCAT ;
  209. ROTATE_XYZ3     52 60 0 0 POSTCONCAT;
  210. ROTATE_XYZ3     52 0 60 0 POSTCONCAT;
  211.  
  212. ROTATE_XYZ3     53 0 90 0 REPLACE;
  213. ROTATE_XYZ3     53 30 0 0 POSTCONCAT;
  214.  
  215. ROTATE_XYZ3     54 0 90 0 REPLACE;
  216. ROTATE_XYZ3     54 30 0 0 POSTCONCAT;
  217. ROTATE_XYZ3     54 0 60 0 POSTCONCAT;
  218.  
  219. ROTATE_XYZ3     55 0 90 0 REPLACE;
  220. ROTATE_XYZ3     55 30 0 0 POSTCONCAT;
  221. ROTATE_XYZ3     55 0 60 0 POSTCONCAT;
  222. SCALE3          55 2 2 2 POSTCONCAT;
  223.  
  224. ROTATE_XYZ3     56 0 90 0 REPLACE;
  225. ROTATE_XYZ3     56 30 0 0 POSTCONCAT;
  226. ROTATE_XYZ3     56 0 60 0 POSTCONCAT;
  227. ROTATE_XYZ3     56 0 -120 0 POSTCONCAT;
  228. TRANSLATE3      56 2.0 -1.0 0.0 POSTCONCAT ;
  229.  
  230. ROTATE_XYZ3     57 0 90 0 REPLACE;
  231. ROTATE_XYZ3     57 30 0 0 POSTCONCAT;
  232. ROTATE_XYZ3     57 0 60 0 POSTCONCAT;
  233. ROTATE_XYZ3     57 0 -120 0 POSTCONCAT;
  234. TRANSLATE3      57 2.0 -1.0 0.0 POSTCONCAT ;
  235. SCALE3          57 2 2 2 POSTCONCAT;
  236.  
  237.  
  238. BEGIN_TEST 32 ;
  239. INVOKE_AT_FRAME
  240. % Complex Part %
  241.         100 CALL 1
  242.         101 CALL 2
  243.         102 CALL 3
  244.         103 CALL 4
  245.         104 CALL 5
  246.         105 CALL 6
  247.         106 CALL 7
  248.         107 CALL 8
  249.         108 CALL 9
  250.         109 CALL 10
  251.         110 CALL 11
  252.         111 CALL 12
  253.         112 CALL 13
  254.         113 CALL 14
  255.         114 CALL 15
  256.         115 CALL 16
  257.         116 CALL 17
  258.         117 CALL 18
  259.         118 CALL 19
  260.         119 CALL 20
  261.         120 CALL 21
  262.         121 CALL 22
  263.         122 CALL 23
  264.         123 CALL 24
  265. % Extrusion %
  266.         150 CALL 25
  267.         151 CALL 26
  268.         152 CALL 27
  269.         153 CALL 28
  270.         154 CALL 29
  271.         155 CALL 30
  272.         156 CALL 31
  273.         157 CALL 32
  274.         ;
  275.  
  276.  
  277. END_TEST ;
  278.  
  279. CLEAR_GEOMETRY ;
  280.