GeoMipMapped Terrain Scene Node ( UPDATED 3/3/05 )
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.
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.
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.
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!
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!
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.
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.
-
- Posts: 62
- Joined: Fri Jan 07, 2005 4:37 pm
- Location: California
ha ha... linux isnt scary!... its fun...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>
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... )
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...
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!!!
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.
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!!!
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.
-
- Posts: 62
- Joined: Fri Jan 07, 2005 4:37 pm
- Location: California
Wow!
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
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
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
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