I have some more cool changes for Irrlicht all wrapped up for you guys. Precompiled binary versions for DevC++ ( with DX 9 support ) and MS Visual Studio. Also all the source, of course.
Fixes/Add-ons
createMeshWith2TCoords function in MeshManipulator
a tiled terrain scene node manager, for managing multiple terrain scene nodes to for an even larger terrain
If there's any features / bug fixes you want in this engine, that aren't yet in this version, post here, or email me, or come to IRC ( irc.freenode.net #irrlicht ) and let me know!
Hi Spinz, thanks for your improvements.
Do you fix setPosition() function for terrainSceneNode?
I suggets that there are wrong calculations about. When I remove function getPosition() for terrain all works well. Strange..
Site development -Rock and metal online --- etcaptor.com ------freenetlife.com
Basically it has to do with Irrlicht losing keyboard input while using it in a win32 window if the winodw focus is changed and then comes back to Irrlicht.
The mouse still works, it just isn't handing the keyboard back.
I've looked into the keyboard problem, but cannot reproduce it, sorry.
I have added Direction and Spot lights. And have also added a RelativeTransformation speed up that pr3t3nd3r brought up. New version isn't yet up with new lights, but now you can have your flashlight effects, just check out my page for a screenshot of the spot light, pretty cool
Any chance that the imrpovements to the Terrain Scene Node will see the next Irrlicht version? I noticed some scaling problems on Terrain nodes too, especially if you apply a scale and then apply another scale, your result is innacurrate. I correct this by destroying and reloading the terrain everytime there's a scale change.
/Linux" -lIrrlicht-Spintz -lGL -lGLU -lXxf86vm -lXext -lX11
../../lib/Linux/libIrrlicht-Spintz.a(CZipReader.o)(.text+0x480): In function `irr::io::CZipReader::openFile(int)':
CZipReader.cpp: undefined reference to `inflateInit2_'
../../lib/Linux/libIrrlicht-Spintz.a(CZipReader.o)(.text+0x49a):CZipReader.cpp: undefined reference to `inflate'
../../lib/Linux/libIrrlicht-Spintz.a(CZipReader.o)(.text+0x4ac):CZipReader.cpp: undefined reference to `inflateEnd'
../../lib/Linux/libIrrlicht-Spintz.a(CZipReader.o)(.text+0x4cf):CZipReader.cpp: undefined reference to `inflateEnd'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x25e): In function `irr::video::CImageLoaderJPG::loadImage(irr::io::IReadFile*)':
CImageLoaderJPG.cpp: undefined reference to `jpeg_std_error'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x27d):CImageLoaderJPG.cpp: undefined reference to `jpeg_CreateDecompress'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x2c3):CImageLoaderJPG.cpp: undefined reference to `jpeg_resync_to_restart'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x2db):CImageLoaderJPG.cpp: undefined reference to `jpeg_read_header'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x2ed):CImageLoaderJPG.cpp: undefined reference to `jpeg_start_decompress'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x357):CImageLoaderJPG.cpp: undefined reference to `jpeg_destroy_decompress'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x403):CImageLoaderJPG.cpp: undefined reference to `jpeg_read_scanlines'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x440):CImageLoaderJPG.cpp: undefined reference to `jpeg_finish_decompress'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderJPG.o)(.text+0x452):CImageLoaderJPG.cpp: undefined reference to `jpeg_destroy_decompress'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderPNG.o)(.text+0x85): In function `irr::video::user_read_data_fcn(png_struct_def*, unsigned char*, unsigned int)':
CImageLoaderPNG.cpp: undefined reference to `png_error'
../../lib/Linux/libIrrlicht-Spintz.a(CImageLoaderPNG.o)(.text+0x239): In function `irr::video::CImageLoaderPng::isALoadableFileFormat(irr::io::IReadFile*)':
CImageLoaderPNG.cpp: undefined reference to `png_check_sig'
Cool, I'am trying to use my app (vehicle using Newton) with your SDK Spintz, and I encoutered a problem. The terrain geometry contructor code can't be the same because of a :
"mybuf.getIndices();"
that now and then return a u32. Using a *u32 did not cure the pb, as the vehicle now fall trough the terrain. Did not dig into it but here is the part of the newton face constructor code that failed :
SMeshBufferLightMap mybuf;
game->terrain->getMeshBufferForLOD(mybuf,0);
Type = mybuf.getVertexType();
bufferCount = mesh->getMesh()->getMeshBufferCount();
Indices in Irrlicht-Spintz-0.12 are all u32's. In Irrlicht-0.12 they are u16's.
The cam origin fix is in there, I believe, forgot to give credit to Puh tho and mention it on page. I'll update it soon, I've got an update coming soon.
Updated a new version with the following updates/changes -
Made triangle construction identical for getIndicesForPatch, getMeshBufferForLOD and preRenderIndicesCalculations functions.
preRenderLODCalculations now gets the activeCamera's absolute position. [ Thanks to Puh for fix ]
All transformation problems with scaling, rotating and positioning the terrain nodes have been resolved.
Changed terrain node rotation to default around it's own center. The rotation pivot point can be overridden with the setRotationPivot function.
Added SPOT and DIRECTIONAL light types for both OpenGL and DirectX. New SLight structure and enumeration for light types.
Speed improvement for all scene nodes. Made it so the Transformation matrix is caluclated whenever transformation changes, not whenever it's requrested. Based on pr3t3nd3r's post in Bug Reports section.
Fixed bug where keyboard input was lost when focus was lost with a device created in a pre-existing Win32 Window on Windows.
There are screenshots on my site of the new light types, as well.