ShootIrr - [UPDATE - Alpha 0.8]
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.
(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.
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
BTW : www.silvernova.co.uk
my Multiplayer FPS is here - only a ALPHA...out soon (i hope ) in irrlicht
pushpork
nice game.....
back to topic
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)
back to topic
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.
hey there
ive been trying to create a suitable map script but i dont know if its good xml but it works
and the irrlicht code could look like this->
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>
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();
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:
cal3d:
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?
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) }
}
}
}
}
}
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>
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.
you would need an editor.editing these maps is pretty hard cause u don't know how it will look until u render it.
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?
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
@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.
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.
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
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
You want to help?or what...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?
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
what? i really don't get what mean....sry
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.
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 versionPhunk 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?
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).
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.
I'll create a demo and show you what I mean. when I have the time.
pushpork