ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Post Reply
User avatar
sercero
Bronze Sponsor
Bronze Sponsor
Posts: 449
Joined: Sun Jan 18, 2015 4:20 pm
Location: Buenos Aires, Argentina
x 156

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by sercero »

Hello,

Just tried with the Internet Archive and the download works:
https://web.archive.org/web/20210307075 ... terra.com/

User avatar
blitzcoder
Halfling
Posts: 99
Joined: Wed Oct 09, 2019 4:06 am
x 18
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by blitzcoder »

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?

Zonder wrote: Mon Dec 20, 2021 7:51 pm

I suspect its either float or 16bit per height internally and its down sampling for an image export? I've never used it though so can't help further than that.

Ok thanks Zonder for the additional info..

New Blitz3D/BlitzBasic/BlitzMax Home - https://blitzcoder.org
User avatar
sercero
Bronze Sponsor
Bronze Sponsor
Posts: 449
Joined: Sun Jan 18, 2015 4:20 pm
Location: Buenos Aires, Argentina
x 156

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by sercero »

The problem is that it was never open-sourced, so if the author looses interest its dead.

User avatar
blitzcoder
Halfling
Posts: 99
Joined: Wed Oct 09, 2019 4:06 am
x 18
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by blitzcoder »

sercero wrote: Sun Jul 17, 2022 1:04 pm

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.

New Blitz3D/BlitzBasic/BlitzMax Home - https://blitzcoder.org
User avatar
Nauk
Gnoll
Posts: 653
Joined: Thu May 11, 2006 9:12 pm
Location: Bavaria
x 36
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by Nauk »

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

User avatar
blitzcoder
Halfling
Posts: 99
Joined: Wed Oct 09, 2019 4:06 am
x 18
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by blitzcoder »

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. :)

New Blitz3D/BlitzBasic/BlitzMax Home - https://blitzcoder.org
User avatar
Nauk
Gnoll
Posts: 653
Joined: Thu May 11, 2006 9:12 pm
Location: Bavaria
x 36
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by Nauk »

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

Last edited by Nauk on Mon Jan 16, 2023 7:24 pm, edited 3 times in total.
User avatar
Nauk
Gnoll
Posts: 653
Joined: Thu May 11, 2006 9:12 pm
Location: Bavaria
x 36
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by Nauk »

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 :)

User avatar
blitzcoder
Halfling
Posts: 99
Joined: Wed Oct 09, 2019 4:06 am
x 18
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by blitzcoder »

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.

New Blitz3D/BlitzBasic/BlitzMax Home - https://blitzcoder.org
User avatar
Nauk
Gnoll
Posts: 653
Joined: Thu May 11, 2006 9:12 pm
Location: Bavaria
x 36
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by Nauk »

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 :)

ImageImageImage

User avatar
blitzcoder
Halfling
Posts: 99
Joined: Wed Oct 09, 2019 4:06 am
x 18
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by blitzcoder »

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?

https://torque-3d.readthedocs.io/en/lat ... ditor.html

Image

Image

Image

New Blitz3D/BlitzBasic/BlitzMax Home - https://blitzcoder.org
User avatar
Nauk
Gnoll
Posts: 653
Joined: Thu May 11, 2006 9:12 pm
Location: Bavaria
x 36
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by Nauk »

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:
ImageImage

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

User avatar
blitzcoder
Halfling
Posts: 99
Joined: Wed Oct 09, 2019 4:06 am
x 18
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by blitzcoder »

Looking good so far! and the new UI seems more straightforward. 👍

New Blitz3D/BlitzBasic/BlitzMax Home - https://blitzcoder.org
User avatar
blitzcoder
Halfling
Posts: 99
Joined: Wed Oct 09, 2019 4:06 am
x 18
Contact:

Re: ArtifexTerra Terrain Editor [1.2 Beta Release 10.3.14 Pg.16]

Post by blitzcoder »

Any updates Nauk?

Anyway, found a few screenshots on my archive that I integrated the loader with HydraX, replacing the default water shader: 😊

Image

Image

New Blitz3D/BlitzBasic/BlitzMax Home - https://blitzcoder.org
Post Reply