source: OGRE/trunk/ogrenew/Tools/XSIExport/OGREXSI_Readme.html @ 692

Revision 692, 16.5 KB checked in by mattausch, 19 years ago (diff)

adding ogre 1.2 and dependencies

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