Charis M. Galanakis · 2020. 10. 4. · Curriculum Vitae. Update: 4 October 2020 CHARIS M. GALANAKIS
Rob Galanakis Senior Technical Artist Bioware Austin [email protected] the old republic’s...
-
Upload
regina-palmer -
Category
Documents
-
view
220 -
download
0
Transcript of Rob Galanakis Senior Technical Artist Bioware Austin [email protected] the old republic’s...
![Page 1: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/1.jpg)
Rob GalanakisSenior Technical Artist
Bioware [email protected]
the old republic’sobject model pipeline
![Page 2: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/2.jpg)
ovERviEW
![Page 3: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/3.jpg)
exAmPLe piPELiNe
A typical pipeline is thought of as…
![Page 4: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/4.jpg)
exAmPLe piPELiNe
A more accurate pipeline would be…
![Page 5: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/5.jpg)
dEFiNiTion
• Pipeline is the data flow from conception to game implementation (and beyond)
• Greater than sum of parts– Not only art or assets– Not just exporters– Not just tools
![Page 6: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/6.jpg)
dEFiNiTion
![Page 7: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/7.jpg)
dEFiNiTion
![Page 8: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/8.jpg)
wHat is “dATA”?Well, data is what gives an engineer his power. It's an informationfield created by all things. It surrounds them andpenetrates them. It binds the pipeline together.
-Obi Wan Kenobi(well, close enough, anyway)
![Page 9: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/9.jpg)
exAmPLe piPELiNe
![Page 10: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/10.jpg)
oMP CoNcEPTS
It isn’t art or content, it is DATA!
![Page 11: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/11.jpg)
oMP CoNcEPTS
• If it is data, you can represent it in code.
• If you can code it, you can make it an object.
• If you can make it an object, it can handle itself.– The object knows what to do with itself
and the programs just use the object
![Page 12: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/12.jpg)
oMP CoNcEPTS
• 2 main groups of objects• Wrapper Object– The logical layer for manipulating a file’s
contents
• Information Object– For Asset Management– Abstracted information describing
content (tags, attributes, file paths, etc.– Inputting the info is up to you
![Page 13: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/13.jpg)
oop pRiNciPLeS
Encapsulation
Inheritance Polymorphism
OOP
![Page 14: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/14.jpg)
encapsulation
• “Expose only a certain set of members to client”
• Any data can be encapsulated–Wrap binary files with XML– Custom ascii parsers
• All save/load/export logic on class– Applications work with objects, no direct
read/write of data
![Page 15: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/15.jpg)
encapsulation
![Page 16: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/16.jpg)
iNHERiTANCe
• “Subclass inherits code and behavior of base class”
• Group asset management behaviors– Skeletons and meshes are models• Share ‘ModelFilename’ property, but differ in
implementation
![Page 17: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/17.jpg)
iNHERiTANCe
![Page 18: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/18.jpg)
polyMoRPHiSM
• “Behavior depends on type”– ‘ContentFilename’ varies between types.– Call ‘ExportModel’ to export the model
according to type, whether static, dynamic, or skeleton model.
– Call ‘ExportXml’ to export metadata, etc.
![Page 19: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/19.jpg)
examples and Test Cases
• Object libraries– Binary Wrappers– Xml Wrappers– Ascii Wrappers
• Practical applications– Content-side– Game-side
• Other tips
![Page 20: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/20.jpg)
wRAP Binary: siDECAr
• Wraps binary formats into C#/Xml• Allows easy access and manipulation
from external tools–Write tools entirely outside of your 3D
app that directly manipulate it– Code complex functionality once, call it
generically
![Page 21: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/21.jpg)
Tips: siDECAr
• Load and apply what’s needed• Plug-ins for non-universal scene info– Keep code portable between projects
• Property dictionaries and Reflection– Serialize loads of random data
![Page 22: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/22.jpg)
Tips: siDECAr
Scooter.Lame, boring,interchangeable
Sidecar. You want to keep this. So much awesome.
![Page 23: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/23.jpg)
wRAP xML
• Update format, all files write out correctly– Update your definitions in one place,
don’t reverse-engineer into exporters
• Export from many places• Enums provide valid values
![Page 24: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/24.jpg)
Tips: xML fiLe wRAPPERS
• Use XmlSerialization if possible– Use custom ToXml/LoadFromXml if not
• Use .NET’s System.Xml as design for wrapper
![Page 25: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/25.jpg)
wrap aSCii
• Custom Save/Load methods for ascii files– Inherently less robust than Xml
• Auto-convert to/from binary where supported
• Otherwise the same as Xml wrappers
![Page 26: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/26.jpg)
Common exporter• Exporters or tools identify file types passed in and
what to do with them (drag and drop exporters accepting any file type)
Game
![Page 27: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/27.jpg)
gAME oBJECT CoNNECTion
![Page 28: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/28.jpg)
auDiTiNG coNTENT
![Page 29: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/29.jpg)
Tip: partition pipelines
• Do not try to develop a single scheme or system
• Focus on allowing communication and interaction between systems– Needs of certain systems (content vs.
game) fundamentally different
![Page 30: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/30.jpg)
pairing and sharing
• Shared data in a database, paired data in Xml– If you don’t have a DB, get one!– Learn basic SQL and maybe use an ORM
![Page 31: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/31.jpg)
wrap it up
• If you need to read it, wrap it–Why not wrap shaders?– Don’t forget existing object models may
exist (Visual Studio projects)
![Page 32: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/32.jpg)
interconnectedness
![Page 33: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/33.jpg)
interconnectedness
![Page 34: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/34.jpg)
mAGNuM oPuS
![Page 35: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/35.jpg)
rEFERENCES
• www.tech-artists.org– Forums, wiki, blog
• irc.freenode.net–#techart
• msdn.microsoft.com– System.Xml, System.Xml.Serialization, XPath,
System.Linq• Special thanks to advisory board members Steve
T. and Jeff H.
![Page 36: Rob Galanakis Senior Technical Artist Bioware Austin rgalanakis@bioware.com the old republic’s object model pipeline.](https://reader034.fdocuments.net/reader034/viewer/2022051416/56649e925503460f94b97966/html5/thumbnails/36.jpg)
quESTions?