View Use Irrlicht
It's Irrlicht CP that is the newly supported .NET wrapper http://irrlichtnetcp.sourceforge.net/
Downloading Irrlicht .NET CP :: IrrNetCP-SDK-0.8.1.tar.gz (7.1MB)
Unpacking Irrlicht.NET-CP-0.8.1/
/bin : Binaries files provided for Windows and Linux.
/medias : Medias files used by the SDK examples.
/Irrlicht.NET : C# part of the wrapper with solutions provided for MonoDevelop and Visual Studio 2005. It can however be compiled on any .NET IDE/compilator.
/IrrlichtW : C++/C part of the wrapper with solutions provided for Code::Blocks and Visual Studio 2005. It can however be compiled on any Irrlicht-compatible IDE/compilator.
/Irrlicht SDK : Contains all include and libraries needed to compile IrrlichtW on Linux and Windows (Visual Studio and GCC). Taken from the official Irrlicht SDK.
IV Use the SDK If you want to try the examples, navigate to the /bin/Release directory and start the three examples executables (simply double click on Windows and start with "mono <name of the file>.exe" on other OS). If you want to use the wrapper, you need to add a reference to /bin/Release/Irrlicht.NET.dll on your project and copy "IrrlichtW.dll", "Irrlicht.dll" (both for Windows) and "IrrlichtW.so" (for Linux) on your project's directory.
I downloaded Irrlicht 0.8.1, the current release of Irrlicht 3D game engine. I downloaded the full source, and it comes with a few examples in their SDK which I will now attempt to compile.
I copied the Irrlicht directory to the HOM dev directory in a SDK folder, where I'll eventually put all my code extensions.
I double-clicked Irrlicht.NET.sln in the Irrlict.NET folder to see what would happen. This opened up 6 projects:
- CustomSceneNode
- Example
- GUIExample
- Irrlicht.Extensions
- Irrlicht.NET
- ShadersAndParticles
I opened Example, and then looked at Program.cs. I attemped to compile it by hitting F5 to debug/run it, but got an error: "A project with an Output Type of Class Library cannot be started directly." I think it is because this project is looking at the Irrlicht.NET class itself. Irrlicht.NET project is set as the "startup project" I believe, OPening Example.csproj didn't load a new solution even after I closed it. I could, however, build each project.
After building the projects, I saw that the bin/debug folder had my new output. I can change where it goes to by changing the project settings (the dropdown at the top of the IDE).
When attempting to run the Example file directly, an error "systemdllnotfoundexception was raised.
Checked tutorial http://irrlichtnetcp.sourceforge.net/index.php/Tutorial_1_:_A_Simple_Application Need to copy the 4 irrlicht dlls into the same directory:
- Irrlict.NET.dll
- Irrlicht.Extensions.dll
- IrrlichtW.dll
- Irrlicht.dll
Irrlicht .NET CP Demos
I just remembered that we need to look again at Irrlicht .NET CP. I've looked again at the downloaded SDK and rebuilt the solution. There are several examples in place. The one that is perhaps most complete is the "Example" project, which shows a bunch of dwarfs standing around.
I checked out the Shaders and Particles Demo in the Irrlicht .NET CP package, and the transparency doesn't work. I changed the target though to Direct3D9, and it looked much better.
Irrlicht .NET CP Classes
Irrlicht seems to implement the same idea...it's basically a wrapper built on top of either OpenGL or DirectX.
Kinds of events:
- Key
- KeyCharacter
- KeyControl
- KeyPressedDown
- KeyShift
- LogText
- MouseInputType
- MousePos
- MouseWheelDelta
Event Receivers implement IEventReceiver.OnEvent
IrrlichtDevice has several public instance properties:
- CursorControl - returns cursor control interace (implemented in 3D engine)
- EventReceiver
- FileSystem -
- GUIEnvironment - GUI elements
- ResizeAble
- SceneManager - the scene graphs, with many kinds of nodes
- Timer
- Version
- VideoDriver - equivalent to Direct3D Device, more or less
- WindowActive
- WindowCaption
Irrlicht .NET wraps the regular Irrlicht. Events from Irrlicht ++ are routed by IrrlichtDevice.NativeEventReceiver
Kinds of Irrlicht.GUI Interfaces / names:
- ICursorControl
- IGUIELement
- IGUIEnvorinment
- IGUIFont
- IGUIListBox
- IGUISkin
- IGUIStaticText
There is no documentation, but I can browse the class library.
IrrlichtNETCP
- AnimatedMesh
- AnimatedMeshB3D
- AnimatedMeshMD2
- AnimatedMeshMS3D
- AnimatedMeshSceneNode
- AnimatedMeshX
- Animator
- BillboardSceneNode
- CameraSceneNode
- CursorControl
- Event
- FileSystem
- GPUProgrammingServices
- GUIButton
- GUICheckBox
- GUIComboBox
- GUIContextMenu
- GUIEditBox
- GUIElement
- GUIEnvironment
- GUIFileOpenDialog
- GUIFont
- GUIImage
- GUIInOutFader
- GUIListBox
- GUIMeshViewr
- GUIScrollBar
- GUISkin
- GUIStaticText
- GUITab
- GUITabControl
- GUITOolBar
- GUIWindow
- Image
- IrrlichtDevice
- KeyMap
- LightSceneNode
- Logger
- Material
- materialRendererServices
- Matrix4
- Mesh
- MeshBuffer
- MeshManipulator
- MetaTriangleSelector
- Native
- NativeElement
- NewMath
- Particle
- ParticleAffector
- ParticleEmitter
- ParticleSystemSceneNode
- Quaternion
- SceneCollisionManager
- SceneManager
- SceneNode
- ShaderConstantCallback
- ShadowVolumeSceneNode
- TerrainSceneNode
- TextSceneNode
- Texture
- Timer
- TriangleSelector
- Vertex3D
- Vertex3DT2
- VideoDriver
ViewFrustrum
Box3D
- Color
- Colorf
- Dimension2D
- Dimension2Df
- FileListItem
- Light
- Line2D
- Line3D
- Position2D
- Position2Df
- Rect
- Triangle3D
- Vector2D
- Vector3D
- VideoMode
