Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/ogre/Tools/XSIExport/OGREXSI_Readme.html @ 11

Last change on this file since 11 was 6, checked in by anonymous, 17 years ago

=…

File size: 17.0 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<head>
4
5
6
7 
8 
9 
10 
11 
12 
13  <title>OGRE XSI Exporter Readme</title>
14  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
15
16
17
18 
19 
20 
21  <style type="text/css">body {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; color: black; background-color: white}
22a:link {  color: #003300; text-decoration: underline}
23a:hover {  color: #F5BC52; text-decoration: underline}
24a:visited {  color: #004400; text-decoration: underline}
25li {  color: #003300; list-style-type: diamond; position: relative; left: -15px; clip:    rect(   )}
26td {  font-size: 10pt}
27th {  font-size: 10pt}
28
29.header { font-weight: bold; font-size: 12pt; }
30.MainHeader {  font-weight: bold; color: white; background-color: #6b7d6b; font-size: 10pt}
31.BorderHeader {  background-color: #999900; font-size: 8pt; font-weight: bold; color: #F5BC52; text-align: center}       
32.MainContent { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt }     
33.BorderContent {  font-size: 8pt; color: #66CC33; border-color: black #666600 #666600; 
34                  padding-top: 2px; padding-right: 2px; padding-bottom: 10px; padding-left: 2px;
35                  margin-bottom: 2px; border-style: solid; 
36                  border-top-width: 0px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
37.NewsDate {  font-weight: bold}
38.Annotation {  font-size: 10px}
39
40H1, H2, H3 {
41        background-color: #6b7d6b;
42        color: white;
43        padding: 2px;
44        padding-left: 5px;
45        border-style: solid;
46        border-width: 1px;
47        border-color: black;
48}
49
50H1 {
51        text-align: center; 
52}
53H2 {
54}
55H3 {
56    FONT-FAMILY: trebuchet ms,helvetica,arial;
57}
58pre {
59        background-color: #eeffee;
60        color: black;
61        padding: 5px;
62}
63td.example {
64        border-style: solid;
65        border-width: 1px;
66        border-color: black;
67}
68dt { color: #3D653D; font-weight: bold;}
69
70A.qindex {}     
71A.qindexRef {}   
72A.el { text-decoration: none; font-weight: bold }       
73A.elRef { font-weight: bold }   
74A.code { text-decoration: none; font-weight: normal; color: Blue }       
75A:visited.code { text-decoration: none; font-weight: normal; color: Navy }       
76A:hover.code { text-decoration: underline; font-weight: normal; color: Blue }   
77A.codeRef { font-weight: normal; color: #4444ee }       
78DL.el { margin-left: -1cm }     
79DIV.fragment { width: 100%; border: none; background-color: #003300 }   
80DIV.ah { color: white; background-color: black; margin-bottom: 3; margin-top: 3 }       
81DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold }         
82DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller }       
83FONT.keyword       { color: #008000 }   
84FONT.keywordtype   { color: #999920 }   
85FONT.keywordflow   { color: #e0FF00 }   
86FONT.comment       { color: #009900 }   
87FONT.preprocessor  { color: #809020 }   
88FONT.stringliteral { color: #002080 }   
89FONT.charliteral   { color: #008080 }
90.ex {   
91     FONT-SIZE: 8pt; FONT-FAMILY: tahoma
92}
93CODE.keywordtype {       
94     COLOR: #00ccff     
95}       
96CODE.keyword {   
97     FONT-WEIGHT: bold; COLOR: #00ccff   
98}       
99CODE.fn {       
100     COLOR: white;       
101     FONT-WEIGHT: bold;         
102}       
103CODE.var {       
104     COLOR: #dcdcdc;     
105}       
106CODE.macro {     
107     COLOR: #809020;     
108     FONT-WEIGHT: bold;         
109 }       
110CODE.comm {     
111     COLOR: lime         
112 }
113
114CODE.num {
115        COLOR: purple
116        }
117CODE.str {
118        COLOR: #ffcc33;
119        font-style: italic
120}
121        </style>
122</head>
123
124
125<body>
126
127
128
129<p class="header" align="center">OGRE (Object-Oriented Graphics
130Rendering Engine)</p>
131
132
133
134<p class="header" align="center">XSI Exporter README file</p>
135
136
137
138<p class="header" align="center"><a href="http://www.ogre3d.org">http://www.ogre3d.org</a></p>
139
140
141
142<p class="MainHeader" align="left"><a name="top"></a>Summary</p>
143
144
145
146<p>OGRE (Object-Oriented Graphics Rendering Engine) is a
147scene-oriented, flexible 3D engine written in C++ designed to make it
148easier and more intuitive for developers to produce games and demos
149utilising 3D hardware. The class library abstracts all the details of
150using the underlying system libraries like Direct3D and OpenGL and
151provides an interface based on world objects and other intuitive
152classes. </p>
153
154
155
156<p>This distribution contains the files required to export OGRE
157.mesh, .skeleton and .material files from <a href="http://www.softimage.com">SoftImage|XSI</a>. Currently supported XSI versions are 4.x and 5.x<br>
158
159
160
161</p>
162
163
164
165<p><span style="font-weight: bold;">IMPORTANT</span>: This exporter
166only works with a <span style="font-weight: bold;">full version</span>
167of XSI (Foundation or better). It will not work with the trial version.<br>
168
169
170
171</p>
172
173
174
175<a href="#install">How To Install</a><br>
176
177
178
179<a href="#features">Features</a><br>
180
181
182
183<a href="#using">How To Use</a><br>
184
185
186
187<a href="#tips">Tips</a><br>
188
189
190
191<a href="#changelog">Change Log</a><br>
192
193
194
195<p><br>
196
197
198
199</p>
200
201
202
203<p class="MainHeader" align="left"><a name="install"></a>How to Install</p>
204
205
206
207<p>If you are using the installer, you don't need to do anything except
208to run it and point it at your XSI folder. If you're installing from
209source, you need to do the following:<br>
210
211
212
213</p>
214
215
216
217<ul>
218
219
220
221  <li>copy devil.dll, ilu.dll, ilut.dll and zlib1.dll into
222$(XSI_ROOT)\Application\bin, or make sure they are somewhere on your
223path</li>
224
225
226
227  <li>copy OgreMain.dll (and OgreMain_d.dll if you wish to use the
228debug version anytime) into $(XSI_ROOT)\Application\bin</li>
229
230
231
232  <li>copy OgreXSIExporter.dll into $(XSI_ROOT)\Application\plugins</li>
233
234
235
236</ul>
237
238
239
240<a href="#top">Back To Top</a><br>
241
242
243
244<p class="MainHeader" align="left"><a name="features"></a>Features</p>
245
246
247
248<p>The following features are supported:<br>
249
250
251
252</p>
253
254
255
256<ol>
257
258
259
260  <li>Exporting selected PolygonMesh objects direct to the OGRE binary
261.mesh format</li>
262
263
264
265  <li>Exports vertex position, normals, multiple UV sets and vertex
266colours<br>
267
268
269
270  </li>
271
272
273
274  <li>Polygon clusters used to change materials in a single PolygonMesh
275are exported as separate SubMeshes</li>
276
277
278
279  <li>By default, separate PolygonMesh objects which use the same
280material are merged for efficiency</li>
281
282
283
284  <li>Mesh vertices are index-organised for efficiency</li>
285
286
287
288  <li>Exporting of up to 4 weighted bone assignments per vertex <br>
289
290
291
292  </li>
293
294
295
296  <li>Generation of edge lists, tangent vectors, and LOD levels during
297export (optional)<br>
298
299
300
301  </li>
302
303
304
305  <li>Exporting of deformers (bone chains, nulls used as deformers)
306direct to binary .skeleton format<br>
307
308
309
310  </li>
311
312
313
314  <li>Exporting animations from the mixer, sampled IK skeletal animation and shape animation (vertex animation)</li>
315
316
317  <li>Exporting of RealTime shaders on materials (OpenGL and DirectX)</li>
318
319
320
321</ol>
322
323
324
325<a href="OGREXSI_Readme.html#top">Back To Top</a>
326<p class="MainHeader" align="left"><a name="using"></a>How To Use<br>
327
328
329
330</p>
331
332
333
334It's a simple case of selecting the objects you wish to export, and
335clicking File &gt; Export &gt; OGRE Mesh / Skeleton... to bring up the
336OGRE export dialog.<br>
337
338
339
340<img alt="page1" src="page1.gif" style="width: 464px; height: 477px;"><br>
341
342
343
344<br>
345
346
347
348The first page of the exporter is concerned with the basic mesh export
349settings. <br>
350
351
352
353<span style="font-weight: bold;"><br>
354
355
356
357<span class="newsdate">Object(s) to export:</span> </span>This
358is pre-populated with your current selection<br>
359
360
361
362<span style="font-weight: bold;"><span class="newsdate">Mesh:</span>
363</span>This is the .mesh file to export - you must complete this. Once
364you have selected a file, by default the other file-related fields in
365the exporter will be completed for you based on the same filename
366pattern.<br>
367
368
369
370<span style="font-weight: bold;"><span class="newsdate">Merge
371objects with the same material?:</span> </span>If this is checked, all
372polygon mesh objects with the same material will be merged into one for
373efficiency. Most of the time you want this; but if you want more
374control over the splitting of your SubMesh objects, deselect it.<br>
375
376
377
378<span style="font-weight: bold;"><span class="newsdate">Calculate
379Edge Lists:</span> </span>Select this if you want your mesh to support
380stencil shadows. This increases the size of the resulting .mesh object.<br>
381
382
383
384<span style="font-weight: bold;"><span class="newsdate">Calculate
385Tangents:</span> </span>Select this if you wish to use normal mapping
386or some other technique which requires tangents vectors.<br>
387
388
389
390<span style="font-weight: bold;"><span class="newsdate"></span></span><span style="font-weight: bold;"><span class="newsdate">Levels
391of Detail:</span> </span>Increase this value above 0 if you want lower
392LODs to be generated for this mesh. The rest of the parameters control
393how the mesh is reduced.<br>
394
395
396
397<span style="font-weight: bold;"><span class="newsdate"></span></span><span style="font-weight: bold;"><span class="newsdate"></span></span><br>
398
399
400
401<span style="font-weight: bold;"><span class="newsdate"></span></span><img alt="page2" src="page2.gif" style="width: 464px; height: 477px;"><br>
402
403
404
405<br>
406
407
408
409<span style="font-weight: bold;"><span class="newsdate">Export
410Materials:</span> </span>Whether to export a .material script or not.
411The field underneath contains the name of the script to export, and is
412pre-populated based on the .mesh selection on the first page.<br>
413
414
415
416<span style="font-weight: bold;"><span class="newsdate">Material
417Prefix:</span> </span>Optional prefix to give the name of each
418material.<br>
419
420
421
422<span style="font-weight: bold;"><span class="newsdate"></span></span><span style="font-weight: bold;"><span class="newsdate">Copy
423Textures To Folder:</span> </span>If selected, any textures referenced
424in your materials will be copied into the same folder as the .material
425script.<br>
426
427
428
429<span style="font-weight: bold;"><span class="newsdate"></span></span><br>
430
431
432
433<span style="font-weight: bold;"><span class="newsdate"></span></span><img alt="page3" src="page3.gif" style="width: 461px; height: 444px;"><br>
434
435
436
437<br>
438
439
440
441<span style="font-weight: bold;"><span class="newsdate">Export
442Skeleton:</span> </span>If checked, skeleton and animation will be
443exported. Cannot be selected if no skeleton is referenced by this mesh.
444The field underneath determines the target.skeleton file (pre-populated
445based on the mesh name).<br>
446
447
448
449<span style="font-weight: bold;"><span class="newsdate">Frames
450per second:</span> </span>How to translate XSI frames into time
451values. Will be populated based on XSI's playback speed, but you can
452alter it if you wish.<br>
453
454
455
456<span style="font-weight: bold;"><span class="newsdate">Animations:</span>
457</span>This is a list of animations, which should be pre-populated with
458what you have in the Mixer, with splits between multiple animations
459'best guessed' by the exporter, but you can tweak them afterwards. You
460can alter all the fields in the table.<br>
461
462
463
464<span style="font-weight: bold;"><span class="newsdate">Export?:</span>
465</span>A checkbox determining whether to export this animation<br>
466
467
468
469<span style="font-weight: bold;"><span class="newsdate"></span></span><span class="newsdate">Name:</span> The name of the
470animation.<br>
471
472<span style="font-weight: bold;">Start:</span> The first frame of the animation<br>
473
474<span style="font-weight: bold;">End:</span> The last frame of the animation<br>
475
476
477
478<span style="font-weight: bold;"><span class="newsdate"></span></span><span style="font-weight: bold;"><span class="newsdate">Sample Freq:</span>
479</span>Skeletal animation which is based on Inverse Kinematics (IK) or other
480constraints needs to be 'sampled' to turn it into Forward Kinematics
481(FK) in OGRE.&nbsp;<span style="font-weight: bold;"><span class="newsdate"></span></span>This option determines the number of frames between each sample. For vertex animation, this is ignored.<br>
482
483<br>
484
485
486
487<a href="OGREXSI_Readme.html#top">Back To Top</a><br>
488
489
490
491<br>
492
493
494
495<p class="MainHeader" align="left"><a name="tips"></a>Tips<br>
496
497
498
499</p>
500
501
502
503<p>Important modelling / animating considerations:<br>
504
505
506
507</p>
508
509
510
511<ol>
512
513
514
515  <li>The exporter writes one SubMesh per material if 'Merge objects
516with the same material' is selected. If unselected, you get one SubMesh
517per PolygonMesh (or clusters with differing materials within them)<br>
518
519
520
521  </li>
522
523
524
525  <li>The exporter writes all your export settings into a custom
526property in your scene, meaning that all your preferences are
527remembered for this scene, even between loads.<br>
528
529
530
531  </li>
532
533
534
535  <li>The exporter only exports PolygonMesh objects, so if you work
536with higher-order surfaces like NURBS you must create a PolygonMesh
537object from these surfaces before exporting</li>
538
539
540
541  <li>The exporter writes a single .mesh at a time and combines all the
542objects selected (and their children, if you select that option)</li>
543
544
545
546  <li>All global modelling coordinates are preserved, so the origin of
547your resulting .mesh will be where the world origin is in XSI<br>
548
549
550
551  </li>
552
553
554
555  <li>Animations must&nbsp;be placed in the mixer to be picked up by the exporter<br>
556
557
558
559  </li>
560
561
562
563  <li>The exporter automatically samples any skeletal IK animation and turns it in to FK,
564  optimising the animation as it does it to remove redundant keys and tracks.</li>
565
566
567
568  <li>Shape animation should be expressed in shape reference mode
569'Local' if you expect the results to work in combination with skeletal
570animation. If you don't use skeletal animation, either 'Local' or
571'Object' will work. You shouldn't use 'Absolute' mode. </li>
572
573
574
575  <li>Make sure you remove any active shape key composition on the
576modifier stack
577for your meshes before exporting, they can mess up the initial base
578state of the mesh as seen by the exporter, since the shape keys are
579relative to the mesh before this composition.</li>
580
581
582
583
584</ol>
585
586
587
588Important material considerations:<br>
589
590
591
592<ul>
593
594
595
596  <li>The defaults that XSI gives to some real time material components
597are not normally what you'd want (and not the OGRE default). For
598example:</li>
599
600
601
602 
603 
604 
605  <ul>
606
607
608
609    <li>OGLDraw and DXDraw objects have a default culling mode of
610'None', meaning all materials are double-sided by default, you will
611probably want to change that for efficiency</li>
612
613
614
615    <li>OGLTexture and DXTexture both default to no mip mapping. You
616will probably want to alter the defaults so that you have at least
617sampled point mipmapping (in DXTexture this is a separate setting, in
618OGLTexture it's combined with the minification filter)</li>
619
620
621
622 
623 
624 
625  </ul>
626
627
628
629</ul>
630
631
632
633<a href="OGREXSI_Readme.html#top">Back To Top</a>
634<p class="MainHeader" align="left"><a name="changelog"></a>Change Log<br>
635
636
637
638</p>
639
640
641
642<p style="font-weight: bold;">1.4.0</p>
643<ul>
644        <li>Fixed pose animation for models not located at the origin</li>
645        <li>XSI v6 supported</li>
646</ul>
647<p style="font-weight: bold;">1.2.0RC2</p>
648<ul>
649  <li>Fixed translation and scale animation in skeletons</li>
650  <li>Fixed vertex colour export</li>
651  <li>Animations which take the skeleton outside the original mesh bounds will now pad the mesh bounds automatically</li>
652</ul>
653<p style="font-weight: bold;">1.1.0</p>
654
655<ul>
656
657  <li>Shape animation support. You can now use the Shape Manager to
658define shape keys, and then place them in animations in the mixer at
659varying weights and combine them, e.g. to make facial animation. The
660exporter creates 'pose' animation in OGRE from this.</li>
661
662  <li>Animation is now picked up from the mixer, not directly from
663action sources. This is to allow a consistent approach to both skeletal
664and vertex animation. Multiple animations must be split up in timeline
665start/end frame pairs.</li>
666
667</ul>
668
669<p style="font-weight: bold;">1.0.6a<br>
670
671
672
673</p>
674
675
676
677<ul>
678
679
680
681        <li>Significant optimisation allowing larger meshes to be exported quicker (approx 15x faster per 1,000 faces than 1.0.6).</li>
682
683
684
685</ul>
686
687
688       
689<p style="font-weight: bold;">1.0.6<br>
690
691
692
693</p>
694
695
696
697<ul>
698
699
700
701        <li>Don't export clusters that become empty because triangles have been assigned to other clusters to customise material ID</li>
702
703
704
705        <li>Fix vertex bone assignments on vertices on the boundary of multiple clusters</li>
706
707
708
709        <li>Added XSI v5 support</li>
710
711
712
713</ul>
714
715
716
717<p style="font-weight: bold;">1.0.5<br>
718
719
720
721</p>
722
723
724
725<ul>
726
727
728
729        <li>Fix export of multiple animations where initial pose is different</li>
730
731
732
733  <li>Material prefix should apply to the exported .mesh as well as the .material</li>
734
735
736
737</ul>
738
739
740
741<p style="font-weight: bold;">1.0.3<br>
742
743
744
745</p>
746
747
748
749<ul>
750
751
752
753  <li>Don't crash if textures are not found, just warn
754instead.</li>
755
756
757
758  <li>Trap cases where too many texture coordinate sets
759are used and terminate with error, rather than crash<br>
760
761
762
763  </li>
764
765
766
767</ul>
768
769
770
771<p style="font-weight: bold;"><br>
772
773
774
7751.0.1c<br>
776
777
778
779</p>
780
781
782
783<ul>
784
785
786
787  <li>Added material exporting</li>
788
789
790
791  <li>Added animation sampling (handle IK, other constraints seamlessly)</li>
792
793
794
795  <li>Fixed vertex output format for software skinning</li>
796
797
798
799  <li>Fixed a problem with translation keyframes</li>
800
801
802
803  <li>Added optimisation of resulting animations (eliminate identity
804tracks, collapse identical keyframes)</li>
805
806
807
808  <li>Fixed frame -&gt; time conversion with varying Action bases</li>
809
810
811
812  <li>Reorganised GUI a little</li>
813
814
815
816  <li>Deal with case-insensitive fcurve references</li>
817
818
819
820  <li>Linux build fixes<br>
821
822
823
824  </li>
825
826
827
828</ul>
829
830
831
832<p><a href="OGREXSI_Readme.html#top">Back To Top</a></p>
833
834
835
836<p class="MainHeader" align="left">Reporting Issues<br>
837
838
839
840</p>
841
842
843
844<p>Please report any issues with the exporter in the <a href="http://www.ogre3d.org/phpBB2">OGRE Forums</a>.</p>
845
846
847
848<p>&nbsp;<a href="OGREXSI_Readme.html#top">Back To Top</a></p>
849
850
851
852</body>
853</html>
Note: See TracBrowser for help on using the repository browser.