Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
10.12.2005, 17:08
lukas-p



hey ho :-)

ich hab da ma ne Frage zum .MAP Format vom Valve Hammer!

Also! Wie ist das hier aufgebaut?:
( -1216 128 64 ) ( -768 128 64 ) ( -768 -192 64 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1

Ich hab gedacht das das so aufgebaut ist:
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) Texture [ U1 U2 U3 UMove ] [ V1 V2 V3 VMove ] TextureRotate TextureX TextureY

aber das mit der Position scheint nicht zum stimmen! Ich hab gedacht das besteht aus "Trinagles" dabei besteht das aber aus "Quads" aber wie ist das jetz aufgebaut?

danke f+r die Antworten ;-) Ich hoffe ich hab die Frage im richtigen Forum gestellt!

--

zum Seitenanfang zum Seitenende Profil || Suche
001
10.12.2005, 17:29
epidemic



Im HL1-Coding Forum wärs besser aufgehoben.

Was meinst du mit "dabei besteht das aber aus "Quads"" ?

Es sind doch nur 3 Eck-Punkte (1, 2 und 3 von dir genannt) gegeben, also ist es doch ein Dreieck (Triangle).

Naja, ansonsten kenn ich mich nicht aus mit Coding, daher weiss ich nicht ob es richtig ist.
Aber ich gehe mal davon aus, dass du viel ausprobiert hast bevor du das hier gepostet hast, also denk ich mal, dass es stimmen wird (auch wenn ich nicht weiss was die Sachen in den []-Klammern sind)

--

Der Optimist glaubt, dass wir in der Besten aller Welten leben.
Der Pessimist fürchtet, dass dies stimmt.

zum Seitenanfang zum Seitenende Profil || Suche
002
10.12.2005, 17:34
lukas-p



Also X1 usw. gemacht hab stimmt nicht das war ja nur sone idee! Es besteht aber aus Quads (4Ecken) nur ich hab keine idee wie das dadrinn gespeichert ist.

Ich wusste nicht das ich das im falschen Forum gepostet hab sry.

Bitte um weiter Posts! :-)

--

zum Seitenanfang zum Seitenende Profil || Suche
003
10.12.2005, 17:42
epidemic



Meinst du mit "es" immer ein face, also eine Seite eines Blocks ?

Die werden auch immer in Dreiecken gespeichert. Das ist fast überall so, dass Polygone (also Mehrecke wie Vierecke, Fünfecke, Sechsecke, ...) in Triangles zerteilt werden. Warum weiss ich nicht. Vielleicht weil es da nie Probleme gibt, ob das Face auch wirklich in einer Ebene ist.

--

Der Optimist glaubt, dass wir in der Besten aller Welten leben.
Der Pessimist fürchtet, dass dies stimmt.

zum Seitenanfang zum Seitenende Profil || Suche
004
10.12.2005, 17:47
lukas-p



Also das hier:
( -1216 128 64 ) ( -768 128 64 ) ( -768 -192 64 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1

ist EIN Face und das hier ist eine Box:
{
( -1216 128 64 ) ( -768 128 64 ) ( -768 -192 64 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( -1216 -192 0 ) ( -768 -192 0 ) ( -768 128 0 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( -1216 128 64 ) ( -1216 -192 64 ) ( -1216 -192 0 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -768 128 0 ) ( -768 -192 0 ) ( -768 -192 64 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -768 128 64 ) ( -1216 128 64 ) ( -1216 128 0 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -768 -192 0 ) ( -1216 -192 0 ) ( -1216 -192 64 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
}

da eine Box aus 6Faces Besteht nehm ich mal an das ein Face ein Quad ist und wie soll das dann dadrinn gespeichert sein?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
10.12.2005, 18:11
tommydanger



http://collective.valve-erc.com/index.php?go=map_format
glaube das kannst du 1zu1 ummünzen für HL2

--

IDF - a HL2 TC
Source Compile Analyzer v1.2b
too much is never enough -> happyhardcore.com

zum Seitenanfang zum Seitenende Profil || Suche
006
10.12.2005, 18:21
lukas-p



hey danke! das wird das richtige sein ;-)

Dann les ich mir das jetzt mal durch :-)

--

zum Seitenanfang zum Seitenende Profil || Suche
007
10.12.2005, 18:27
lukas-p



Ich hab noch eine Frage!

{
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
}

das ist ja jetz eine Box, die aus 6 Faces besteht! Nur in einem Face sind nur 3 Positionen angegeben:
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 )
Und für eine Fläche von einer Box braucht man 4 Positionen :-\ irgenwas versteh ich da nicht richtig!

--

zum Seitenanfang zum Seitenende Profil || Suche
008
10.12.2005, 18:59
KhanRKerensky



Steht doch in dem Tutorial...

Zitat:
Let's examine exactly how brushes get defined. (When talking about a 'line', I'll be referring to the lines of text in the definition of a brush.) Every line defines one plane (a plane is an infinitely thin, infinitely big 'sheet' in 3D space) which, essentially, defines one face.
To define one actual plane, three points must be given (shown by x1, y1, z1, x2, y2, z2 and x3, y3, z3). They must be in a clockwise order when facing the outside of the plane - that is, the side that points outwards from the brush, and these points must lie on the surface of the plane. They must also be different from one another, and not lie on a line - they must form three corners of a triangle when joined up. (Three vertices of the face being represented by this plane will often suffice.)
Dort wo sich die Planes dann treffen ergibt sich eine Kante.

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book

zum Seitenanfang zum Seitenende Profil || Suche
009
10.12.2005, 19:36
lukas-p



:-(

Ich wills einfach nicht kapieren!
Kannst du mir das mal für dumme erklären!

Ich bin gerade eine eigenen 3D Engine am schreiben und versuche den Hammer als Mapeditor zu nutzen!

Tut mir leid für die umstände aber ich muss das jetz wissen!

--

zum Seitenanfang zum Seitenende Profil || Suche
010
10.12.2005, 19:46
theDon



Du hast drei Punkte. Diese Punkte spannen eine Ebene auf. Damit ergeben sich insgesamt sechs Ebenen, die jeweils paarweise parallel sind. Die Kanten der Box ergeben sich dann durch die Schnittgeraden der Ebenen.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
011
10.12.2005, 21:22
lukas-p



also jetz klappt es! Ich hab es zwar ganz ander gelöst aber egal!

also ich nuetze ienfach die drei Punkte als ecken und spiegele die 2. Ecke über die strecke Ecke1 Ecke2.

--

zum Seitenanfang zum Seitenende Profil || Suche
012
10.12.2005, 21:29
lukas-p



Jetzt noch eine Frage! Wie sind die WAD Dateien aufgebaut oder hat jemand dadrüber eine Doku.

(Fals jemand jetz sag das ich damit nicht umgehen könnte! Ich weis das das WAD Format nciht aus Text besteht ;-))

--

zum Seitenanfang zum Seitenende Profil || Suche
013
11.12.2005, 02:34
epidemic



ehm
da die letzte Frage wahrscheinlich in einem Post mit nem Link beantwortet werden kann, stell ich mal dreist auch eine zweite Fragen dazu:

Wieso macht man's denn so kompliziert ?
Wenn man in OpenGL ein Dreieck zeichnen lassen will, dann gibt man doch doch die Eckpunkte dieser Dreiecke ein, z.B.:

Quellcode:glBegin(GL_TRIANGLES);
        glColor3f(1.0f,0.0f,0.0f);
            glVertex3f(-1.0f, 1.0f, 0.0f);
            glVertex3f( 1.0f, 1.0f, 0.0f);
            glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
Also muss man die Eckpunkte eeh berechnen. Wenn ich die Schnittkante zweier Ebenen ausrechnen wollen würde, würde das jedesmal mindestens 2 Minuten dauern (und das wenn ich eingeübt bin). Und man braucht immerhin 12 Schnittkanten.

Okay, wenn man jedes Dreieck einzeln speichern würde, wären es doppelt so viele Datensätze in der .map Datei, aber die einzulesen geht bei 'nem Rechner doch rattz fattz oder ? Das kann doch nicht der Grund sein, zumal man die Arbeitszeit _deutlich_ wieder durch das Wegfallen der Kantenberechnung einspart.

--

Der Optimist glaubt, dass wir in der Besten aller Welten leben.
Der Pessimist fürchtet, dass dies stimmt.


Dieser Beitrag wurde am 11.12.2005 um 02:36 von epidemic bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
014
11.12.2005, 12:21
lukas-p



o_O ich hab noch eine frage...

Wo kann ich eigentlich die UV Werte auslesen?

hier das hilft mir nciht wirklcih weiter:
[ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ]

--

zum Seitenanfang zum Seitenende Profil || Suche
015
11.12.2005, 12:33
Adrian_Broher
Admin


Das steht auch im Tutorial.

Das sind die up and right vektoren der texture plane ( die Ausrichtung im Raum, ich schätze mal das die relativ zur Welt ist. Das steht dort nicht eindeutig ) mit den Offset ( was dem verschieben der Texturen gleichkommt ). ( siehe auch das Bild, was im Tutorial ist )

--

There is nothing wrong with high standards. It's your problem that you don't meet them.
If you think it's simple, then you have misunderstood the problem.
When a customer says "nothing has changed", assume they're lying.

zum Seitenanfang zum Seitenende Profil || Suche
016
11.12.2005, 12:50
KhanRKerensky



Zitat:
Okay, wenn man jedes Dreieck einzeln speichern würde, wären es doppelt so viele Datensätze in der .map Datei, aber die einzulesen geht bei 'nem Rechner doch rattz fattz oder ? Das kann doch nicht der Grund sein, zumal man die Arbeitszeit _deutlich_ wieder durch das Wegfallen der Kantenberechnung einspart.
Ich schätze mal das das mit dem .bsp Format zusammenhängt. Wenn ich mich recht errinnere (es gibt dazu nen uralten Thread) werden dort genau diese Hyperplanes in einem Binären Baum gespeichert und damit der Raum unterteilt. Und dafür brauch man halt diese Ebenen. Klar man könnte aus den Dreiecken auch wieder Planes berechnen, aber dann kann man auch ebensogut seine Map modeln.

In der BSP selbst werden die Faces auch in einer passerenden Form vorliegen, da die Hyperplanes nur für die Leafbestimmung gebraucht werden, aber der Compiler kommt wohl mit diesem .map Format besser klar.

Zitat:
also ich nuetze ienfach die drei Punkte als ecken und spiegele die 2. Ecke über die strecke Ecke1 Ecke2.
Total falsch. So eine Ebene kann nicht nur ein Quadrat darstellen. Mach das mal mit einem Quader oder gar einem Dodekaeder. Die lassen sich auch alle recht einfach mit diesen Ebenen darstellen. Und dann bekommst du nämlich ein ganz großes Problem mit deinem Ansatz.

Ich geb dir mal einen ganz großen Tipp. Lern zuerst mal ein wenig Mathematik. Ohne gehts halt nicht. Irgentwie bezweifel ich schon das du weißt was nen Vektor ist. Und dann eine "Engine" zu schreiben halte ich für mehr als übertrieben.

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book

zum Seitenanfang zum Seitenende Profil || Suche