User Tools

Site Tools


igx:backends:unity

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
igx:backends:unity [2014/11/20 11:08] – [IG.GFX Unity-3D (IGX.Unity) SDK] cr-wiki-adminigx:backends:unity [2024/04/04 08:04] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== 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 [[https://www.dropbox.com/s/6uq91inooddrii1/JsonFx.Json.dll?dl=0|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 [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AAAWPhhk_issZK2Iq_zubemJa/IGX.Unity?dl=0|Repository]]. Currently, IGX.Unity is under heavy development. So please go with the [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AAARbTSIn2ykoSeTnO_872Yma/IGX.Unity/dev/IGX.Unity.dll?dl=0|Dev]] release, rather than any official (Beta) release, which may be outdated. Have also a look into the [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AAC0GPQZWIT7YvVZOL93u1F-a/IGX.Unity/IGX.Unity_History.txt?dl=0|History]].
 +
 +=== IGXC Scene Repository ===
 +
 +This [[http://46.163.67.83/Creator/Static/|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:backends:unity#igx|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 [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AABMI2h-TLie6UBSJvyFWWq-a/IGX.Unity/dev/IGX.Unity.xml?dl=0|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.//