ChaosTheory/MinimalEngine/3dEngine.cpp
/************************************************************************************

	Na. A precalc ugy mukodik hogy letrejon egy tomb "object dummy"kbol, amiben
	pontosan annyi object lesz amennyit tenyleg renderelni kell (klonok inkluzive).
	Ebbe a tombbe bekerulnek az igazi renderelendo objectekre a hivatkozasok, es a
	valos poziciojuk egy matrix formajaban. Ezutan ez a tomb sortolodik attributumok
	alapjan (texturak, zmask, ilyesmi), es az igy sortolt cuccbol egy jobban
	optimalizalt display list keszul.

	Nagyon fontos h az envmapok kulon objectkent kerulnek bele a dummy listaba, es
	azok is sortolodnak


************************************************************************************/
Na. A precalc ugy mukodik hogy letrejon egy tomb "object dummy"kbol, amiben
pontosan annyi object lesz amennyit tenyleg renderelni kell (klonok inkluzive).
Ebbe a tombbe bekerulnek az igazi renderelendo objectekre a hivatkozasok, es a
valos poziciojuk egy matrix formajaban. Ezutan ez a tomb sortolodik attributumok
alapjan (texturak, zmask, ilyesmi), es az igy sortolt cuccbol egy jobban
optimalizalt display list keszul.

Nagyon fontos h az envmapok kulon objectkent kerulnek bele a dummy listaba, es
azok is sortolodnak
Na . A precalc ugy mukodik hogy letrejon egy tomb " object dummy " kbol amiben pontosan annyi object lesz amennyit tenyleg renderelni kell ( klonok inkluzive ) . Ebbe a tombbe bekerulnek az igazi renderelendo objectekre a hivatkozasok es a valos poziciojuk egy matrix formajaban . Ezutan ez a tomb sortolodik attributumok alapjan ( texturak zmask ilyesmi ) es az igy sortolt cuccbol egy jobban optimalizalt display list keszul . Nagyon fontos h az envmapok kulon objectkent kerulnek bele a dummy listaba es azok is sortolodnak
void SCENE::CalculateDummy(OBJECT *Object, int &DummyNum, MATRIX *Position)
{
	ObjDummies[DummyNum].OriginalObj=Object;
	ObjDummies[DummyNum].OriginalWorldObj=NULL;
	memcpy(ObjDummies[DummyNum].ModelView,Position,sizeof(MATRIX));
	DummyNum++;
	if (Object->EnvMapped)
	{
		ObjDummies[DummyNum].OriginalObj=Object;
		ObjDummies[DummyNum].OriginalWorldObj=NULL;
		ObjDummies[DummyNum].Envmap=true;
		ObjDummies[DummyNum].List=ObjDummies[DummyNum-1].List;
		memcpy(ObjDummies[DummyNum].ModelView,Position,sizeof(MATRIX));
		DummyNum++;
	}
}
void SCENE :: CalculateDummy ( OBJECT * Object , int & DummyNum , MATRIX * Position ) { ObjDummies [ DummyNum ] . OriginalObj = Object ; ObjDummies [ DummyNum ] . OriginalWorldObj = NULL ; memcpy ( ObjDummies [ DummyNum ] . ModelView , Position , sizeof ( MATRIX ) ) ; DummyNum ++ ; if ( Object -> EnvMapped ) { ObjDummies [ DummyNum ] . OriginalObj = Object ; ObjDummies [ DummyNum ] . OriginalWorldObj = NULL ; ObjDummies [ DummyNum ] . Envmap = true ; ObjDummies [ DummyNum ] . List = ObjDummies [ DummyNum - 1 ] . List ; memcpy ( ObjDummies [ DummyNum ] . ModelView , Position , sizeof ( MATRIX ) ) ; DummyNum ++ ; } }
Na.
Na .
//feltolt egy slotot a dummy tombben