ShootIrr - [UPDATE - Alpha 0.8]

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
chaoslion
Posts: 25
Joined: Sun Oct 30, 2005 1:44 pm

Post by chaoslion »

hey
yep would not be that hard, ill try to setup up a parser within the next hours..
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

In the meanwhile i thought about a highmap system......
(they still can be simpel bmp-files if u want)
evry point will be dicribed with a 3d vector so like:
red=x
green=y
blue=z
this way we can even have cliffs without any further architexture.
and we should use two of these terrainlayers one for the overall shape in like 100meter steps and the other for the finetuning in 1meter steps...
but we will have to write an editor for this programm....which shouldn't be to hard either.
on startup u choose a gridsize and every moveable dot is a selectable scenenode...than u can adjust the scenenode for exampel with the arrowkeys or whatever the bigger problem will be the texturing cause i have no clue on how this is done.
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
JPulham
Posts: 320
Joined: Sat Nov 19, 2005 12:06 pm

Post by JPulham »

I was thinking of a system like this... it would have a height map MOSTLY grey scale but with sligh colorations where cliffs/caves/'bulges' on columns apear

BTW : www.silvernova.co.uk
my Multiplayer FPS is here - only a ALPHA...out soon (i hope :( ) in irrlicht :roll:
pushpork
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

nice game.....
back to topic :wink:
yeah thought about it and i think that using bmps is a waste since no one wants to look at them and editing these maps is pretty hard cause u don't know how it will look until u render it.
so i thought it will be a file like this(binary)

Code: Select all

name                  size in byte       discribtion
-----------------------------------------------
FileIdentifier              4               will be "HMPF" - means highmapfile
X                              4               map size in x and y direction
Y                              4                                    "
PointSpace                4               point distance multiplyer "standard 1"

Overallshapemap      3*X*Y        Overallmapshape array(255meter steps)
Detailmapshape        3*X*Y        Detailmapshape array(1meter steps)
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
chaoslion
Posts: 25
Joined: Sun Oct 30, 2005 1:44 pm

Post by chaoslion »

hey there
ive been trying to create a suitable map script but i dont know if its good xml but it works :)

Code: Select all

<?xml version="1.0"?>

<worldspawn> 

	<setup
		mapname="WastelandB3" 
		shortname="WLB3" 
		creator="me" 
		heightmap="map.bmp" 
		texture="tex.bmp" 
		origin="20 20 20" 
		scale="1.0"
	/>

	<entities>
		
		<STATIC_MESH
			type="OCTREE_MESH"
			name="house"
			origin="20 20 20"
			model="../house.md2"			
		/>

		<NONSTATIC_MESH
			type="NEWTON_MESH"
			name="car"
			origin="20 20 20"
			model="../car.md2"			
		/>


	</entities>

</worldspawn>
and the irrlicht code could look like this->

Code: Select all

irr::io::IXMLReader *xml = gm.FS->createXMLReader("scripts/wasteland.xml");
	if(!xml)
		printf("ERROR\n");
	bool worldspawn = false;
	while( xml->read() ) {

		if ( xml->getNodeType() == irr::io::EXN_ELEMENT ) { 	
						
			if( !worldspawn ) {
				if(wcscmp(xml->getNodeName(),L"worldspawn" )) {
					printf("No Worldspawn found..\n");					
					break;
				} else
					worldspawn = true;
			}
					
				if(!wcscmp(xml->getNodeName(),L"setup" )) {						//create...
				}		
				
				if(!wcscmp(xml->getNodeName(),L"STATIC_MESH"        )) {		
                               //create...via
                               smgr->
                               getmesh(xml->getAttributeValue(L"model"));
				}								

				if(!wcscmp(xml->getNodeName(),L"NONSTATIC_MESH" )) {				
					//create...
				}
		}
	}
	xml->drop();
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

Hmmm i ran into a conversion problem while writing the animation exporter for anim8or into the cal3d format...just take a look at the formats....

anim8or:

Code: Select all

figure { "figure02"
  bone { "root"
    length { 11.761 }
    bone { "bone01"
      length { 22.38 }
      diameter { 2 }
      bone { "bone02"
        length { 34.984 }
        orientation { (0 0 0.33101 -0.94363) }
        bone { "bone04"
          length { 38.22 }
          orientation { (0 0 0.74260 -0.66974) }
        }
      }
      bone { "bone03"
        length { 34.927 }
        orientation { (0 0 -0.33841 -0.94100) }
        bone { "bone05"
          length { 39.103 }
          orientation { (0 0 -0.73165 -0.68168) }
        }
      }
    }
  }
}
cal3d:

Code: Select all

<SKELETON VERSION="1100" NUMBONES="6">
   <BONE ID="0" NAME="root" NUMCHILD="1">
      <TRANSLATION>0 11.761000 0</TRANSLATION>
      <ROTATION>0.000000 0.000000 0.000000 0.000000</ROTATION>
      <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
      <LOCALROTATION>0 0 0 0</LOCALROTATION>
      <PARENTID>-1</PARENTID>
      <CHILDID>1</CHILDID>
   </BONE>
   <BONE ID="1" NAME="bone01" NUMCHILD="2">
      <TRANSLATION>0 22.379999 0</TRANSLATION>
      <ROTATION>0.000000 0.000000 0.000000 0.000000</ROTATION>
      <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
      <LOCALROTATION>0 0 0 0</LOCALROTATION>
      <PARENTID>0</PARENTID>
      <CHILDID>2</CHILDID>
      <CHILDID>4</CHILDID>
   </BONE>
   <BONE ID="2" NAME="bone02" NUMCHILD="1">
      <TRANSLATION>0 34.984001 0</TRANSLATION>
      <ROTATION>0.000000 0.000000 0.331010 -0.943630</ROTATION>
      <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
      <LOCALROTATION>0 0 0 0</LOCALROTATION>
      <PARENTID>1</PARENTID>
      <CHILDID>3</CHILDID>
   </BONE>
   <BONE ID="3" NAME="bone04" NUMCHILD="0">
      <TRANSLATION>0 38.220001 0</TRANSLATION>
      <ROTATION>0.000000 0.000000 0.742600 -0.669740</ROTATION>
      <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
      <LOCALROTATION>0 0 0 0</LOCALROTATION>
      <PARENTID>2</PARENTID>
   </BONE>
   <BONE ID="4" NAME="bone03" NUMCHILD="1">
      <TRANSLATION>0 34.926998 0</TRANSLATION>
      <ROTATION>0.000000 0.000000 -0.338410 -0.941000</ROTATION>
      <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
      <LOCALROTATION>0 0 0 0</LOCALROTATION>
      <PARENTID>1</PARENTID>
      <CHILDID>5</CHILDID>
   </BONE>
   <BONE ID="5" NAME="bone05" NUMCHILD="0">
      <TRANSLATION>0 39.103001 0</TRANSLATION>
      <ROTATION>0.000000 0.000000 -0.731650 -0.681680</ROTATION>
      <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
      <LOCALROTATION>0 0 0 0</LOCALROTATION>
      <PARENTID>4</PARENTID>
   </BONE>
</SKELETON>
you see that anim8or has an orientation and a length for each bone but cal3d has an rotation and a translation and even a localrot and trans for the model later on.
i really don't know how i can fit these two data sets does anyone else has a clue?
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
JPulham
Posts: 320
Joined: Sat Nov 19, 2005 12:06 pm

Post by JPulham »

editing these maps is pretty hard cause u don't know how it will look until u render it.
you would need an editor.

I dont see why the heightmap wouldn't work, maybe if an editor was used and most values would be shades of green, while Red and Blue represent relative offsets.

I could try to develop it and get back to you with what I've got? :wink:

BTW: surely you can calculate a matrix (rotation and translation) from the orientation and length by traversing down the chain, applying matrix transforms untill you have the two ends of the bone? or am i horribly wrong?
pushpork
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

@JPulham
because of the highmaps...i would suggest an editor where u define on startup how many points the map will have like 256*256 or something and the distance betwen the points than it generates a mesh with these points and displays it. further on it generates a scenenode for every point and links the scenenode position to the vertex position in the mesh. and since u can easily select scenenodes with irrlicht you are now able to change the position. i would programm it but right now i'm really busy writing this converter...when i'm done with it i wil do when it isn't already done.
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
Phunk
Posts: 78
Joined: Sun Dec 14, 2003 8:18 pm
Location: The Netherlands

Post by Phunk »

hey, really nice initiative! I hope there will be a design doc out soon, so everyone can see what is coming. But I am wondering about one thing:

what will you all do when you discover there is a feature missing in irrlicht, that you need for the completion of the project?

As most project have the freedom to just edit the source, you are making a tech demo, so should initially be realised with a original irrlicht version.

I am not trying to demotivate anyone, but I would hate to see this project stop because of different opinions later on. I could imagine you could just make adjustments and post them on the forum, so it can be intergrated with the irrlicht source later on. Or just avoid rewriting the engine in general and reset your goals for the project.

Either way, I hope this project will be a nice showcase of what can be done with irrlicht, and what the community can do.

Gr. Robin
stodge
Posts: 216
Joined: Fri Dec 05, 2003 5:57 pm

Post by stodge »

Who's the project manager?
Where are the design documents?
Who is in charge of quality assurance?
Who will develop and maintain tests?
Who are the testers?
What platforms?
What toolsets are needed for development?
Where will this be hosted?
What are the hardware and software requirements?
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

stodge wrote:Who's the project manager?
Where are the design documents?
Who is in charge of quality assurance?
Who will develop and maintain tests?
Who are the testers?
What platforms?
What toolsets are needed for development?
Where will this be hosted?
What are the hardware and software requirements?
You want to help?or what...
but ur probbly right we need some kind of open design doc and a project manager...

Take a look at the first post there is some kind of design doc.....
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
JPulham
Posts: 320
Joined: Sat Nov 19, 2005 12:06 pm

Post by JPulham »

I was going to have the grid of predefined size approach any way.
problem is, how accurate will it be? could I use 8 bit for offsets but acctual height data in 16 bit (RGBA)
pushpork
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

@JPulham
what? i really don't get what mean....sry
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
BattleElf
Posts: 18
Joined: Sat Mar 04, 2006 10:55 am
Location: Brisbane, Australia

Post by BattleElf »

Phunk wrote:what will you all do when you discover there is a feature missing in irrlicht, that you need for the completion of the project?
Well technically since this will be a tech demo if there's a feature someone wants that isn't in irrlicht then we can't do it. The design shouldn't include features like that. Of course there's nothing saying we can't create the feature ourselves and hassle Niko and the others to include it in a later version ;)

i think an aim of this should be to use the standard irrlicht engine but also feature the cool things the community are demonstrating (the ones that don't modify the irrlicht source).
JPulham
Posts: 320
Joined: Sat Nov 19, 2005 12:06 pm

Post by JPulham »

Basically you have a flat grid and you create a fractal terrain... like normal terrain, but then you can drag the points or apply further fractal deformations, but along the XZ plane. This data is then stored in the RGB channels of a BMP or something.

I'll create a demo and show you what I mean. when I have the time.
pushpork
Post Reply