Tag: irrlicht

code_swarm

Posted by – 2010/02/14

I’ve been playing with code_swarm and made this video of the Irrlicht Engine’s development history:

Since the video is generated from the SVN version history it starts at the point where Niko gave hybrid and I SVN access (June 2006), so misses out years of development leading up to the 1.0 release.

code_swarm is a really cool tool, one thing which is exciting is the fact it supports MediaWiki. It would be really nice to show a small wiki coming together.. or maybe one day Wikipedia’s entire changelog (we can dream!)

Irrlicht 1.6 Released

Posted by – 2009/09/30

So, we finally released Irrlicht 1.6. This release has lots of bug fixes and plenty of new features for you to sink your teeth into!

I’m sure I’ve missed out lots of stuff, but here’s a summary of the most interesting new features…

Video

Burning’s software rasterizer is now at version 0.44 and comes with sphere map, two layer reflection and transparent alpha ref (plant renderer) materials, plus lots more enhancements.

It’s now possible to specify an override material for the video driver. This could be used, for example, to draw the entire scene in wireframe. It is incredibly useful for deferred rendering where you need to render the entire scene using some specific shader.

New SMaterial settings. Materials now support LoD bias for mipmaps, antialias on a per-material basis, and a Swiss Army Knife of a feature: disabling writes for specific colour channels. Combined with the override material this makes stereoscopic anaglyph rendering really simple:

Luke demonstrates red-cyan anaglyph rendering in 12 lines of code per eye!

Floating point render pixel formats are now supported, currently only in render targets in OpenGL and D3D, but it still means HDR rendering! The colour converter doesn’t yet support these new formats, but in future this will mean floating point image loaders meaning native HDR support across the board:

FuzzYspo0n's reflections (BlindSide's method, I think) using SteelStyle's HDR image loader to load floating point textures

Direct3D8 finally supports 32-bit index buffers. The D3D drivers can now be used in the SDL device, and they now render in screen space in 2D mode (0,0 -> W,H).

Gary Conway donated an SGI image loader, which means Irrlicht can now open Silicon Graphics .rgb, .rgba, .sgi, .int and .inta textures, including RLE compressed ones.

The TGA loader can now load uncompressed 8-bit greyscale and indexed images.

Core

position2d has been removed, it is now a just a typedef for vector2d. This gets rid of the need for all those ugly vector to position conversions, even though they are essentially the same type.

Device

Irrlicht now has a console device. I added a simple ASCII render just for fun, but the console device has a serious use, you can use Irrlicht to do offline rendering without the need to ever create a window which means it doesn’t need an X server on Unices.

The console device can present images from the software rasterizers

Irrlicht can now also be compiled with more than one device type and select the best one at runtime. This does increase the size of the library, on OSX you have the option to compile with the console, Cocoa, SDL and X11 devices which may seem like overkill. The ability to select the device type at runtime allows the same version of the shared library to be used with a wider range of applications, for example my GNOME thumbnailer which runs in the background:

Nautilus showing thumbnails for Irrlicht supported meshes

Nautilus showing thumbnails for Irrlicht supported meshes

We now have an Xbox project too, apparently compiling with Direct3D8 on the official XDK, but OpenXDK support with SDL is planned.

The device now has get/setGammaRamp functions.

Scene

RogerBorg’s light manager is in at last! Using a light manager you can add hundreds of lights to the scene and activate the closest 8 to each surface:

RogerBorg's light manager made it in

RogerBorg's light manager made it in

Collision enhancements. You can now get the node which was selected in getCollisionPoint, making it easy to work with meta selectors. ICollisionCallback so you can be notified of collision events.

ISceneNodeAnimators now have an hasFinished method, so you know when they’re complete.

Irrlicht can now load and save PLY meshes, including massive ones. This is the file format used by the infamous Stanford Bunny but also by commercial 3D scanners in general:

Loading a massive PLY mesh from a 3D scanner. There are no UV coords here, this is all vertex alpha

Quake3 BSPs support is now greatly enhanced, supporting new shader types and lots of other stuff.

GUI

The GUI now comes with a tree, which is demonstrated in the new Quake Map Explorer example:

Quake Map Explorer

Tommi's Quake Explorer demonstrates (among other things) use of the tree view, donated by Reinhard Ostermeier

New skin constants for text offsets in GUI windows, allowing nice skinned titlebars like this:

Klaskers GUI skinner, with skinned by FuzzYspo0N

File System

Irrlicht’s IFileSystem now supports pluggable archive loaders via two new interfaces, IFileArchive and IArchiveLoader. This allows users to extend the VFS by adding new archive types, you can for example lock your data up in a proprietary archive format, store your meshes in a database, or add ways of extracting data from current archive formats. Currently archives are still read only, though this may change in future.

To celebrate this, Irrlicht can now open .tar.gz archives thanks to the new TAR reader and the fact that the ZIP reader can now open gzip archives.

I’m adding two examples to IrrExt. Firstly a Windows .ico and .cur loader which treats these files like an archive. This allows you to (for example) use Windows mouse cursors or favicon.ico files from web pages. Secondly, a Windows PE RSRC loader, which allows you to load resources from Windows binaries in a cross platform way. Combined with the .ico loader you can use this to show the icons of Windows executables from inside Irrlicht. The RSRC loader will be moved over to IrrExt in a few days, once I’ve updated it to work with Irrlicht 1.6.

There’s now a special type for holding file names and paths. io::path is currently a string type which may be wchar_t based in Windows. In future all string based path comparison, replacement and collapse methods will move to this class.

PISG is up again

Posted by – 2009/09/04

Now that I have a reliable shell, #irrlicht once again has an eggdrop bot, which will be useful because we haven’t had any way to add new operators for at least two years. The bot is logging and there’s a cron job to upload PISG output to the stats page. So anything you do say will be taken down and may be used in evidence against you…

bitplane also makes sailors blush, 0.3% of the time.

Oh, shiiii…

Irrlicht 1.5.1 for OSX

Posted by – 2009/08/20

I just uploaded an OSX release for Irrlicht 1.5.1, it includes an installer and installs Irrlicht as a shared libarary (Irrlicht.framework). This will be the first of many platforms supporting Irrlicht as an official, installed shared library.

Update: Now available from the Apple website, though they credited bitplane.net and removed the YASS credit for the screenshot. Next time I’ll submit a shorter description!

Irrlicht 1.5.1 Released

Posted by – 2009/08/06

Yesterday we released Irrlicht 1.5.1. This will be the last 1.5.x release, development is now focused on 1.6 which will move to its own branch over the next week or so and become stable.

Changes in 1.5.1:

- Make sure a missing font does not corrupt the skin.
- Fix getAngle in vector2d as suggested by xray.
  This has only a minor impact on s32 vectors.
- bugfix: CGUIFont::getCharacterFromPos regards now kerning
  (found by Arras)
- Add support for range fog in some OpenGL versions.
- Fix for shadow volume removal, submitted by vitek.
- Avoid using X11 autorepeat to deal with broken X11
  versions.
- Speculars are properly exported into mtl files now,
  instead of corrupting them.
- Binary type loading in attributes fixed.
- bugfix: Use make_lower throughout for spritebank filenames
  (found and patched by Ion Dune)
- STL loader fixed: Right-handedness corrected, normals and
  bboxes are correctly added now.
- bugfix: CUnZipReader::openFile no longer returns true for
  empty files. Corresponding test added.
- Big endian issues in .x loader fixed.
- HSLColor methods repaired.
- copyToScaling fixed.
- Fixed problem with highlighting menus when mouse was
  outside sub-menu area.
- bugfix (2796207): menu acted (wrongly) on left-click down
  instead of left-click up.
- bswap16 fallback macro fixed
- getBaseName fixed to work correct with dots in filenames.
- static method isDriverSupported allows for simple
  check of available drivers.
- Some defines added to check for the Irrlicht version of
  the library.
- Make sure all renderstates are properly initialized
- Wrong size for main depth buffer fixed.
- Fix 3ds shininess to the allowed range.
- Fix loading of Collada files from irrEdit 1.2
- Remove texture pointers after texture clear.
- WindowsCE pathnames fixed.
- Some virtuals are now overridden as expected.
- Incomplete FBOs are properly signalled now
- Update to libpng 1.2.35, fixed issues on 64bit machines
  with system's libpng.
- Fixed wrong grab/drop in setOverrideFont
- Added draw2dRectOutline
- rectf and recti added.
- Fix ALPHA_CHANNEL_REF to a fixed check for alpha==127 as
  expected.
- Fixed OSX device bug where screen size was not set in
  fullscreen mode.
- cursor setVisible changed to be called less often.
- OpenGL version calculation fixed.
- OSX device now supports shift and ctrl keys.
- Fixed ambient light issues in burningsvideo.
- device reset for d3d fixed when using VBOs.
- Fix dimension2d +=
- MD2 mesh loader: Now uses much less memory,
  reduced number of allocations when loading meshes.
- OpenGL render state (texture wrongly cached) fixed.
- Fixed animator removal.
- Changed collision checks for children of invisible
  elements to also be ignored (as they're actually
  invisible due to inheritance).
- Fix terrain to use 32bit only when necessary, make
  terrain use hw buffers. Heightmap loading and height
  calculation fixed. Visibility and LOD calculations updated.
- Some mem leaks fixed
- FPS camera resets the cursor better

Irrlicht nightly builds 2.0

Posted by – 2009/07/20

Irrlicht nightly builds by ConvexTech are back again, not only with D3D9 compiled in to the Win32-gcc builds but we even get VisualStudio AMD64 builds too! A big thanks to Marc Burns for providing this service :-)

I’m hosting a mirror, it’s not much compared the the overhead of compiling the builds, but every little helps, right?

irrEdit in Wine?

Posted by – 2009/07/19

Since my recent hard drive crash I’ve moved from Windows Vista to Ubuntu 64. I discovered that when trying to run my Jetpac game under Wine, it fails for the same reason as irrEdit. The crash is because the D3D calls related to shader compiling aren’t implemented in Wine’s DirectX 9 DLLs, which isn’t a very good reason to bomb out as I don’t even use any shader materials.

As you can see on the bug report, all that it needed is someone to stub out the functions and return an error and irrEdit should work in Linux; all fixed in about ten lines of code, right? Well, sort of. Wine also has some viewport issues so irrEdit doesn’t render properly, but on the up side Jetpac works flawlessly.

To see your Irrlicht D3D Windows binaries in action under Linux x64, simply download the DLL from here, copy the dll.so file to /usr/lib32/wine/

New website layout

Posted by – 2009/07/17

So I’ve finally decided to bite the bullet and install WordPress. I’ve never been much of a fan of the blog format, but over the past couple of weeks I’ve made a few interesting toys without binary demos and the e107 CMS I was using as a file store couldn’t index them. The old gallery isn’t ideal for random screenshots either. So I decided this site needed a makeover; a new layout which has permanent locations for files, a gallery and links to my SVN repositories.

So the HTTP 301 script is up and redirecting, and the new format for bitplane.net goes like this-

So, what new stuff? Well over the past couple of weeks I’ve made some loaders for Irrlicht. A TAR loader (and fixed gzip loading in Irrlicht), a Windows Icon loader and a Windows PE binary resource loader and just for fun a FIGlet font driver. Also, over the past couple of months I’ve spent a bit of time learning to sketch, and have scanned a couple of them so I can see my progress. Finally, I made a Photosynth of Glastonbury Festival, which actually captures some idea of the scale of the place.

That’s my first post out of the way. I promise not to blog unless I have something interesting to show, or less often, say.