Table of Contents
IG.GFX Unity-3D (IGX.Unity) SDK
Welcome to IGX.Unity by intelligentgraphics, which is both a back-end to IG.GFX/IG.Creator, along with IGX.X3DOM, and a stand-alone package.
Getting Started with IGX.Unity, IGX Classes
Create an IGX Object
- Import the Asset IGX.Unity.dll (see below)
- Create an empty GameObject with name world
- Assign Script IGX.Demo.SampleScene (menu entry IGX.Unity/IG.GFX/SampleScene)
- For object world, component SampleScene, turn on a sample by setting up Object 1, e.g. Noltemb_Hrz6k_76763.
- Run and see a loading object. Now try to open the doors/drawers.
Note. It is likely that you need to add also the JsonFx.Json DLL.
Add Camera Control
- Create a Camera
- Assign Script EBCameraOrbiter
- Set camera's property Target to the Transform world (see above)
IGX.Unity.DLL
The DLL is archived in this Repository. Currently, IGX.Unity is under heavy development. So please go with the Dev release, rather than any official (Beta) release, which may be outdated. Have also a look into the History.
IGXC Scene Repository
This Repository contains IGXC demo and test scenes.
Index of Integration Classes
For any new projects we recommend the use of IGXScene and IGXObject from Section IGX, instead of the low-level import classes. Also, the use of IGXC is recommended, instead of EOX-GFX.
In the following, only selected classes are named. For a complete and more detailed description have a look into the Documentation.
Section Core
This section provides the core classes.
EBDebug
EBDebug is the central interface for debugging and logging. You may turn on/off logging globally, and enable logging for a specific context, such as product life cycle.
EBLayers
EBLayers defines Unity-3D layers to be used outside the Unity IDE, and also recursive assignment functions.
EBMaterial
EBMaterial is an abstract entity that covers multiple kinds of materials. It also contains a global repository for dynamically loaded materials and textures, and provides conversion methods for native material descriptions into a Unity material.
EBRepresentation
EBRepresentation is an abstract entity that covers multiple kind of geometric representations.
EBWebResource
EBWebResource is a base class implementing load state.
Section Geometry
EBMeshData
EBMeshData is an auxiliary class to be used by any native loaders.
EBMeshRepository
EBMeshRepository is a global repository managing native Unity-3D mesh arrays.
Section IGX
This section contains the primary support for dealing with IG.GFX. Currently this section is under development and not part of the IGX.Unity Standard Edition.
IGX has the following namespaces:
- IGX - The basis namespace
- IGX.Catalog - Simple Catalog with Configuration
- IGX.Core - Core types for the IG.GFX run time
- IGX.Demos - Classes for demo and test purpose
- IGX.Std - Standard interactors
IGX.Material
IGX.Material is a representation of the IG.GFX Material.
IGX.MetaInformation
IGX.MetaInformation is a data entity with additional information to be used in the context of IGXObjects. Such information is:
- a bounding box
- a list of attachment and definition points
- material categories and definitions
Note, the spatial properties are defined in IG.GFX space!
IGX.Object
IGX.Object extends–as a Unity Component–GameObject with data and behaviour needed in the context of IG.GFX (IGX).
IGX.ObjectType
IGX.ObjectType is an enumerator about the type of IGX.Object instances.
IGX.Scene
IGX.Scene is a singleton that controls an IG.GFX world.
IGX.Demo.SampleScene
IGX.Demo.SampleScene is an extension of IGX.Scene that offers samples.
IGX.SelectionMode
IGX.SelectionMode controls the selection behaviour of an IGX.Object.
IGX.XPoint
IGX.XPoint defines primarily an attachment point, but is also used to describe object's Minimum and Maximum. Note, the spatial properties are defined in IG.GFX space!
IGX.Core.Interactor
IGX.Core.Interactor is the abstract base class of all interactor classes.
IGX.Core.LocalInteractor
IGX.Core.LocalInteractor is the abstract base class of all local, i.e. object-related interactor classes.
IGX.Core.GlobalInteractor
IGX.Core.GlobalInteractor is the abstract base class of all global, i.e. scene-related interactor classes.
Section Import
This section provides a few import classes.
EBEOXImport
EBEOXImport is a class for loading an EOX-GFX representation of a 3D object. The class itself is just a reader that uses other classes such as EBEOXScene and EBPartMeshData. Anyway, this class is your entry point of you want to load an EOX.
After successful loading two messages will be sent to the MonoBehaviour that invoked the loading:
- OnLoadingDone() - is an optional message after loading has been done
There are further callbacks, invoked on ancestors of the loaded object, which should not be used:
- NoLongerBusy() - is an optional message telling the behaviour that it's not busy any longer
- SelectRescan() - is a required message that should select the object and perform a rescan
EBEOXScene
EBEOXScene is an 1:1 representation of a 3D object described by a master XML (in format EOX-GFX) that links to low-level entities such as OBJs and MLIs.
Note. The class name is eoxScene.
EBLoader
EBLoader is an asynchronous loader for IGXC files, using IGXCImport, and EOX files, using EBEOXImport.
EBObjectImport
EBObjectImport is an abstract class for object-level importers such as IGXCImport and EBEOXImport.
EBOBJImport
EBOBJImport is a loader for OBJ files. This class is used in the context of the EOX loaders.
EBOBJImport2
EBOBJImport2 is also a loader for OBJ files. This class can be used for stand-alone loading of OBJs.
IGXCImport
IGXCImport is a class for loading an IGXC representation of a 3D object. The class itself is just a reader that uses other classes such as EBOBJImport and EBPartMeshData.
IGXCMetaImport
IGXCMetaImport imports an IG.GFX metafile that defines material categories and materials, client-side packages, etc. An IG.GFX metafile links to an IGXC or EOX-GFX scene file, or describes only material definitions and assignments.
Section Utilities
This section provides a few utilities.
EBCameraOrbiter
EBCameraOrbiter is a class for the two-dimensional control of a perspective camera.
EBUnusuableAreas
EBUnusuableAreas is an auxiliary class that represents UI regions that should not react to interaction as they display buttons, etc.
EBUtilities
EBUtilities provides support functions:
- GetBoundsOfVertices() - computes the minimal bounding volume from a set of vertices
- CreateWireframeCube() - creates a unit cube but as a wireframe
Technical Information
The current Unity-3D reference versions are: 4.6.5 and 5.1.1
IGX.Unity implements only subsets of EOX-GFX, OBJ and MTL. Please contact us to learn about the supported and non-supported features.
There's a (low-traffic) mailing list for IGX.Unity. To subscribe send an email to info@intelligentgraphics.biz, please.
Copyright (C) 2012 - 2015 intelligentgraphics GmbH. All rights reserved.