User Tools

Site Tools


igx:backends:unity

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

  1. Import the Asset IGX.Unity.dll (see below)
  2. Create an empty GameObject with name world
  3. Assign Script IGX.Demo.SampleScene (menu entry IGX.Unity/IG.GFX/SampleScene)
  4. For object world, component SampleScene, turn on a sample by setting up Object 1, e.g. Noltemb_Hrz6k_76763.
  5. 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

  1. Create a Camera
  2. Assign Script EBCameraOrbiter
  3. 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.

igx/backends/unity.txt · Last modified: 2024/04/04 08:04 by 127.0.0.1