Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
29.11.2001, 00:14
Braindead



Was ist das, bzw was für ein genaues Funktionsprinzip verbirgt sich dahinter?
mich interessiert die gesammte Theorie über diese Technik, zu BSP/PVS findet man ja genügend, aber nicht über dieses.

Ich weiß nur das bei dieser Technologie nichts vorberechnet wird, es gibt also keine BSP Bäume (is ja klar) und das sie für ... bla, aber genau das will ich nich wissen, die Theorie interessiert mich.

Ich erwarte nicht, das hier jemand einen seitenlangen Post schreibt um mir die ganze Theorie zu vermitteln, ein link würd mir schon reichen und ja, ich weiß was eine Suchmaschiene ist, doch hätte ich etwas gefunden, würde ich mich nicht an euch wenden.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
29.11.2001, 19:42
Creeper



Wie meinst du das ? Meinst du solche Portale wie in Quake3 ?

--

Head Coder:Sudden-Impact

Listen to CKY you fuCKYrs http://www.ckymusic.com

zum Seitenanfang zum Seitenende Profil || Suche
002
29.11.2001, 20:00
Braindead



Nein, ich meine die technik, das Grundprinzip, auf der das Rendering basiert bzw der Teil der Engine, der für die visuelle Darstellung ist, bei q3 ist es z.B. das BSP/PVS Konzept, für die Sichtbarkeitberechnug, wo das Level in viele kleine ... (darüber gibts genug)
ich dachte erst Unreal nutzt das Prinzip der Portaltechnik, aber auch hier werden zumindest BSP-Bäume genutzt. ich meine eine ohne ..., wenn ich mich damit auskennen würde, würd ich kaum fragen.

Vielleicht hab ich mich etwas falsch ausgedrückt, aber wer die Antwort auf meine Frage weiß, der wird das schon richtig vertehen.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
29.11.2001, 20:55
m.a.b.b.b



auf irgenteine art nutzt unreal auch leafs und portals..ich glaub ich goolge mal ein bisschen...

--

-=B.L.Ä.N.D.E.R=-

zum Seitenanfang zum Seitenende Profil || Suche
004
02.12.2001, 09:38
Prefect



Also... alle Angaben ohne Gewähr, aber:

Bei einem BSP-Tree wird eine Karte ja Top-Down-mässig organisiert, d.h. man unterteilt sie durch wiederholte annähernde Halbierung immer weiter, bis jeder Unterteilungsabschnitt (Leaf) keine Polygone mehr enthält.

BSP-Trees sind aus der Notwendigkeit, Polygone zu sortieren, entstanden.

Portale sind im Prinzip eine völlig andere Herangehensweise an 3D, denn im Gegensatz zu BSP-Trees enthalten portalmäßig aufgebaute Maps tatsächlich Rauminformationen (unter anderem sind Leaks dadurch unmöglich).
Prinzipiell basieren Portals darauf, daß der Raum unterteilt wird (ich nenne das jetzt mal auch Leaf, wobei es vielleicht eine offizielle Bezeichnung dafür gibt). Ein Leaf ist im einfachsten Fall konvex und besteht aus einer Reihe an begrenzenden Ebenen. Auf diesen Ebenen können Polygone liegen, es können sich dort aber auch Portale befinden. Portale sind nichts weiter als Links zu einem Leaf, daß sich hinter dem Portal befindet.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
005
02.12.2001, 17:21
Psychodad



Ist das wie ne verkettete Liste, oder wie muss man sich das als Struktur vorstellen?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
02.12.2001, 19:51
Diablo_bth



das kannst du dir vielleicht so vorstelllen:
Quellcode:
struct bsp_node
{
bsp_plane    *partition;
bsp_polygon *polylist;
int numpolys;

bsp_node *frontnode;
bsp_node *backnode;
}

buildbsptree( bsp_node *node )
{
bsp_plane *partition = SelectPartitionFromList( node->polylist,
node->numpolys );

if( !partition ) // Raum konvex ( ==Leaf )
{
node->frontnode = node->backnode = NULL;
node->leaf = TRUE;
return;
}
else
{
node->partition = partition;
node->frontnode = new bsp_node;
node->backnode = new nsp_node;

SplitByPartition( node, node->partition, node->frontnode,
node->backnode );

buildbsptree( node->frontnode ); // baum wird rekursiv aufgebaut..
buildbsptree( node->backnode );
}

return;
}

SelectPartitionFromList sucht nun in der Polygonliste nach der besten-möglichen Teilungs-Ebene ( Partition ) und gibt ihre Adresse zurück.
Eine Partition wird möglichst danach ausgesucht, ob sie die Polygonliste möglichst in zwei gleich große Hälften zerteilt ( front - backside )

am besten schaust du dir mal den Sourcecode von qbsp2 ( hl-bsp-kompiler )
an. ( den gibts im HL-SDK auf`m dhcc oder so )

--


Dieser Beitrag wurde am 02.12.2001 um 19:55 von Diablo_bth bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche