Hello,
Just tried with the Internet Archive and the download works:
https://web.archive.org/web/20210307075 ... terra.com/
Hello,
Just tried with the Internet Archive and the download works:
https://web.archive.org/web/20210307075 ... terra.com/
I do wonder what happened to this project. It's a shame this is really a great terrain and level editor.
By the way, I have ported the provided assets and terrain textures over to Blitz3D with a total of 9 splits.
More Info: https://www.blitzcoder.org/forum/topic.php?id=1141
I'm still having trouble with the heightmap precision, seems to have a +1 on size
Anyone know how this can be converted into a standard heightmap format?
Ok thanks Zonder for the additional info..
The problem is that it was never open-sourced, so if the author looses interest its dead.
I think it's more like if the author decided to give up on the project, might as well consider the idea of open-sourcing it.
Contrary to what happened and reminded me of Flow3D, an Ogre3D wrapper for BlitzMax that was once commercial has been opensourced. I had to reach out to the author though as the license was unclear then and it was later changed to MIT.
FreeWorld3D was another great tool. You can't use it now as the Free license still requires site activation and the domain has been cybersquatted.
Good News: after a way too long downtime...
***** Artifex Terra is alive again: http://www.3d-terrain-editor.com/ *****
should be working like before. Please, et me know if it doesn't.
Oh and I also set up a patreon site, so if you feel like supporting my efforts: https://www.patreon.com/artifexterra
Cheers, //Nauk
ARTIFEX TERRA 3D - Artist-friendly, free and easy WYSIWYG realtime outdoor scene Editor & Painter
New loader now with Ogre::Terrain support: Addons for Artifex on SourceForge
MOC - Minimal Ogre Collision & Mousepicking
Simple TerrainMaterialGenerator for the use of standard Ogre material with Ogre::Terrain
Support me on Patreon
Hey there Nauk!
Can I get some confirmation and info on the heightmap format, like what Zonder have mentioned and how to convert it to something more common?
Welcome back.
Hello Blitzcoder,
thanks and first off I am flattered by your interest in good old artifex - There are 2 formats:
1.) The ETterrain.png - is a 16 bit grayscale PNG which was the onboard format of Ogres Enhanced Terrain Manager addon. After a while of using that I noticed that there was a good amount of data erosion with frequent saving. So I wrote a quick and dirty simple binary format with floats.
2.) The artifex_terrain.bin - is a raw binary starting with the terrain width and height, followed by width*height amount of data floats. I would definately work with that one and I think it is easy enough to convert to whatever. If you do convert it to another commonly used format, I would be of course interested too I would gladly take it into the new artifex source.
You can find the C++ loader code here: https://sourceforge.net/projects/artifexterra3d/files/ also a copy to the Enhanced Terrain Manager (ETM) to see what range the floats have. I did this so long ago so I have forgotten it by now, but I think it was from 0.0 to 1.0 or -1.0 to +1.0.
Code: Select all
void ArtifexLoader::loadBinaryTerrain() {
size_t width=0, height=0;
ifstream::pos_type size;
char * memblock;
string path = mZonePath+mZoneName+"/artifex_terrain.bin";
ifstream terrainfile (path.c_str(), ios::in | ios::binary | ios::ate );
if (terrainfile.is_open())
{
size = terrainfile.tellg();
memblock = new char [size];
terrainfile.seekg (0, ios::beg);
terrainfile.read (memblock, size);
terrainfile.close();
width = *((size_t*) memblock);
height = *((size_t*) (memblock+sizeof(size_t)));
ET::TerrainInfo info (width,height,(const float*)(memblock+(2*sizeof(size_t))));
info.setExtents(AxisAlignedBox(0, 0, 0, mTerrX, mTerrY, mTerrZ));
mTerrainMgr->createTerrain(info, mTerrainTileSize, mTerrainMaxLoD, mTerrainVertexNormals, mTerrainVertexTangents);
delete[] memblock;
} else {
cout << "Troubles opening terrainfile: artifex_terrain.bin - weird.\n";
}
};
Hope that helps
Cheers,
//Nauk
ARTIFEX TERRA 3D - Artist-friendly, free and easy WYSIWYG realtime outdoor scene Editor & Painter
New loader now with Ogre::Terrain support: Addons for Artifex on SourceForge
MOC - Minimal Ogre Collision & Mousepicking
Simple TerrainMaterialGenerator for the use of standard Ogre material with Ogre::Terrain
Support me on Patreon
Here is the saving code to it:
Code: Select all
void storageUtils::saveBinaryTerrain(std::string zone) {
//string winpath = mArtifex->mArtifexLoader->mZonePath;
string path = mArtifex->mFilePath->getCurrentProjectPath()+"artifex_terrain.bin";
ofstream terrainfile;
terrainfile.open (path.c_str(), ios::out | ios::trunc | ios::binary);
Ogre::uchar *p;
size_t width = mArtifex->mTerrainMgr->getTerrainInfo().getWidth();
size_t height = mArtifex->mTerrainMgr->getTerrainInfo().getHeight();
p = (Ogre::uchar *)&width;
terrainfile.write((const char*)p,sizeof(size_t));
p = (Ogre::uchar *)&height;
terrainfile.write((const char*)p,sizeof(size_t));
std::vector <float> terraindata = mArtifex->mTerrainMgr->getTerrainInfo().getHeightmapData();
p = (Ogre::uchar *) &terraindata[0];
terrainfile.write((const char*)p,sizeof(float)*terraindata.capacity());
terrainfile.close();
};
If you need any further help let me know
ARTIFEX TERRA 3D - Artist-friendly, free and easy WYSIWYG realtime outdoor scene Editor & Painter
New loader now with Ogre::Terrain support: Addons for Artifex on SourceForge
MOC - Minimal Ogre Collision & Mousepicking
Simple TerrainMaterialGenerator for the use of standard Ogre material with Ogre::Terrain
Support me on Patreon
Cheers Nauk. I'm still interested and was drawn mostly of Artifex's terrain texture and grass painting feature.
I do have some suggestions with the interface where perhaps it could be simplified and make it more intuitive.
Also, have you thought about implementing bezier roads like what FreeWorld3D (which is also made with Ogre3D) had accomplished?
This road feature also had the option to bake the texture if you choose to export the terrain texture as an atlas or megatexture.
Lastly and what I would like to highlight is the idea of having other export examples including shaders and terrain format options, like the common heightmap terrain or perhaps terragen files, which also handles 16-bit floats.
Thanks for the snippets and info, will check this out and let you know my progress.
Thank you Blitzcoder for the feedback and wishes. I am currently reworking the UI entirely porting it to QT, so I will try to make it more intuitive. I went new ways with the old one leaving the common path, also I didn't want to make it too technical and more playfull to make it easier for artists and beginners. Hence the first person game navigation. About the road feature I have a halfway done roadengine laying dormant since many years, the input and editing beziers are missing but the rendering part works, It shouldnt be hard to finish it. I will take it into the new version - finally
ARTIFEX TERRA 3D - Artist-friendly, free and easy WYSIWYG realtime outdoor scene Editor & Painter
New loader now with Ogre::Terrain support: Addons for Artifex on SourceForge
MOC - Minimal Ogre Collision & Mousepicking
Simple TerrainMaterialGenerator for the use of standard Ogre material with Ogre::Terrain
Support me on Patreon
Good progress there.. one question, are the road textures follow the angle of the path or is it the same direction? otherwise it is not really a true road feature.
Another reference is how Torque3D editor works with Texture Length and Break Angle (see below)
Also, what are your thoughts of adding a generic export or sample template with OpenGL shaders?
The texturing is adapting to the angle, but since this is still in the state of a test implementation there are close to 0 parameters at the moment. I just dusted it off and put it into the new code to see how if it plays nice with the rest and so it does. Being able to export Roadmeshes as hardcopies with materials to it was definately planned to make it environment agnostic, which is my next greater goal with 1.5 for all of artifex created content.
Here is a sneak preview of 1.5 alpha with the new QT UI:
being the result of:
Code: Select all
Ogre::SimpleSpline backbone;
backbone.addPoint(Ogre::Vector3(1796.0f, 722.0f, 1205.0f));
backbone.addPoint(Ogre::Vector3(1795.0f, 725.0f, 1236.0f));
backbone.addPoint(Ogre::Vector3(1753.0f, 725.0f, 1406.0f));
backbone.addPoint(Ogre::Vector3(1497.0f, 737.0f, 1796.0f));
backbone.addPoint(Ogre::Vector3(1371.0f, 727.0f, 2214.0f));
backbone.addPoint(Ogre::Vector3(1268.0f, 728.0f, 2288.0f));
backbone.addPoint(Ogre::Vector3(1260.0f, 723.0f, 2280.0f));
mRoadManager->createRoadMesh(backbone,"TestRoad", 7.0f);
Cheers,
Nauk
ARTIFEX TERRA 3D - Artist-friendly, free and easy WYSIWYG realtime outdoor scene Editor & Painter
New loader now with Ogre::Terrain support: Addons for Artifex on SourceForge
MOC - Minimal Ogre Collision & Mousepicking
Simple TerrainMaterialGenerator for the use of standard Ogre material with Ogre::Terrain
Support me on Patreon
Looking good so far! and the new UI seems more straightforward.
Any updates Nauk?
Anyway, found a few screenshots on my archive that I integrated the loader with HydraX, replacing the default water shader: