GeoMipMapped Terrain Scene Node ( UPDATED 3/3/05 )

A forum to store posts deemed exceptionally wise and useful
Guest

Post by Guest »

ok no succsess, it compiles without problems but the app crashes with a 0x000 blabla error :) but i try again
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

I really need to bear down and learn Dev-C++, so I can release a good project file with it, let me do that.
Image
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

Well, I've got the DevC++ compile working, so the next release will have the proper versions of libjpeg.a and libz.a in the approriate directories, as well as the newlines at the end of the new files I've created, as well as .dev project file all setup and ready to use. All you'll need is to have DevC++ configured to compile with DirectX, if not, you can easily take the DirectX out of the compile, which I'll explain how to do.

8)

I'll release later on tonight, I promise, as well as I've added the rotation ability, and the selector triangels now get updated when the terrain is scaled/positioned/rotated, unless of course you don't want them to. Maybe I can add the ability to remember the LOD you loaded the selector at and if the node is position/scaled/rotated to then update the selector at that LOD, dynamically for you.

Anyways, I'll have a new version up later tonight, with DevC++ support. ;)
Image
Guest

Post by Guest »

thanks man, that would be great! i got directx compiling in devc++ do work so it should be no problem :) i read your .chm file and the new features really seem very useful (at least to me)! that terrain will fit perfectly in my current project, as i need big terrain thats not running at 15 fps :)

so your terrain + some fog + skybox + dynamic light to "shade" the terrain + eventually detailmaps + my vegetationmap loader = kickass gfx at high fps :)

ps: do you have a programming job or something like that? cause you seem to be quite skilled at it ( i dont know for sure, but i guess you are the first one that releases a fast terrain scene node with LOD here in the forums :) )

excellent work!
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

Yes, I'm a Senior Applications Engineer.

I do C/C++ engineering for AI systems, Network systems, architechture design, the whole sha-bang. We engineer systems of systems.

I'd like to introduce an AI design based off what we do at work, however, it's based off of the Rete Algorithm and is really very complex. It requires you to learn rules programming and knowledge base design. Plus, the company I work for is beginning to get a lot of work on knowledge base artificial intelligence. We have a contract coming up hopefullt, that will be working with the new company that took over the Atari name and will be designing their AI systems for the new Xbox and PS3 gaming consoles! ;)

Ok, enough of me and all that, let me get the Dev-C++ and new updates working and uploaded to the site.
Image
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

Ok, got the new versions up, and updated the website. Now offering both pre-compiled versions of the modded engine as well as source only.

Dev-C++ .dev project file is now included. Also, in the compiled version of the engine, for Dev-C++, i've included the Dev-C++ directx DLLs.

Enjoy! :)
Image
deprecated
Posts: 62
Joined: Fri Jan 07, 2005 4:37 pm
Location: California

Post by deprecated »

If you're using Linux, you'll need to modify the makefile yourself, and add
IGeoMipMapSceneNode.h, CGeoMipMapSceneNode.h, CGeoMipMapSceneNode.cpp, CGeoMipMapTriangleSelector.h
and CGeoMipMapTriangleSelector.cpp and everything should compile fine. <crosses finger>
ha ha... linux isnt scary!... its fun...

I'll email ya my modified makefile so ya can toss it into the archive and help out other linux users. (and remove your fingers from their uncomfortable orientation... 8))

If ya dont have linux, check out knoppix.org
its a CD bootable linux version with lots of hardware support and such...
It would work for compiling and testing game dev on linux...
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

We have linux machines at work, I just do my best to stay away from it, my last job about 2 years ago, I worked on Linux machines for like 3 years and I hated it! ;)

Anyways, I've been looking into detail mapping, I've noticed a lot of shortcomings of the scene node, like ( mentioned earlier ) it's inability to be used with the meshManipulator, especially for the function makePlanarTextureMapping. What I've done is completely redone the way the mesh is stored, as an SMesh object, instead of an SMeshBuffer, so you can now get the Mesh object and pass it to makePlanarTextureMapping, problem is, I think the normal calculations I added aren't working properly with the planar texture mapping. So I've also added a function called ScaleTexture, which scales the texture coordinates. I prefer it, because it looks a lot better than the planar texture mapping and it also allows you to flip as well as scale, by providing a - value to the function. Anyways, to support this, I've also had to change the entire scene node to use the S3DVertex2TCoords instead of the S3DVertex, so that when the base texture is scaled, the lightmap associated with the material isn't, it's starting to look very nice. Here's a screenshot of a quick and dirty sample with a heightmap generated in FreeWorld3D and a texture and lightmap generated from T2!!!

Image

I have a lot of cleaning up to do on the code, and I think I have a few more optimizations to make it run faster. I also am going to implement geomorphing, to help with the popping when changing LODs of patches. I should have this new version up by no later than tomorrow night, it may be without geomorphing though.

:)
Image
deprecated
Posts: 62
Joined: Fri Jan 07, 2005 4:37 pm
Location: California

Post by deprecated »

Wow!
:shock:


EDIT:
Spintz, is it possible to add custom geomorphing ?
something similar to what arras did in this thread.

http://irrlicht.sourceforge.net/phpBB2/ ... hp?p=30403

I took a look in GeoMipMapSceneNode class and wanted to know if it would it be as simple as to add a function that you can send the new height to a specific"Vertice". Basically a modified version of your setPosition.

Ie; to dig a hole or build a mountain in realtime with geomipmapingscenenode
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

deprecated, yes, that's very easy, if you want a function like that, I can provide it to you. How would you want it, so you can provide some coordinates in real world? Or would you want to provide vertex numbers based on the loaded vertices?

You could do it yourself as well, by getting the mesh buffer and modifying the vertices, then adding the mesh buffer back, ( need to add a function to add that mesh buffer back ), then when the mesh buffer is added back, just for sanity purposes, I'd re-calculate terrain data, in case bounding boxes changed.

I'll add it to my todo list.

BTW, reason I came to post, gonna be tomorrow till I release the updates with the new terrain scaling and optimizations. Still working a bit on it and I also wanted to see how much better NX++ would be with this scene node, so I implemented it into the NX++ engine and made that engine 32 bit indices as well. Turns out the FPS was either same or actually slower in NX++. Don't really like the way NX++ has changed as far as the engine code either, seems kind of scattered and not nearly as clean as regular Irrlicht, so I'm going to stay with the base Irrlicht. Was just a sanity check for me, in case there were optimizations that NX++ had that would make it even better. I did notice the FPS camera NX++ has is much smoother, gonna add that update to the Irrlicht_Spintz engine as well as the atmosphere scene node I've made which adds a skyplane and makes for much easier, realistic sky texturing.

So, anyways, in short, tomorrow for the next update. Oh, and teh geomorphing that I had mentioned I wanted to implement is actually slowly morphs changes in patches to prevent sudden popping, as opposed to right now, where the patch LOD changes and the terrain just jumps into it's new position. But that is a cool idea as well. Maybe I can add specific functions, like makeHole, or I don't know, but it would be great to also have a dynamic terrain scene node as well. ;)

Till tomorrow....

Hi-Res TGA screenshot
Image
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

Spintz wrote:Don't really like the way NX++ has changed as far as the engine code either, seems kind of scattered and not nearly as clean as regular Irrlicht
could you elaborate on this please ? id like to know what you didnt like about it.
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

sure, I'll PM you over on the NX forums, magic right?
Image
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

jup, thats me, you could also pm me here or even better come to irc #irrlicht or #irrlichtnx on irc.freenode.net :)
Guest

Post by Guest »

This is the geomip code on freeworld3d website? i just downloaded it and it looks the same.
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

It's based off of that, and it's customized to work with irrlicht and also has more optimizations in it.
Image
Post Reply