Source Engine BSP Map laden
Übersicht BlitzBasic Allgemein
marcelkroenerBetreff: Source Engine BSP Map laden |
Sa, März 22, 2008 19:26 Antworten mit Zitat |
|
---|---|---|
Hi!
Ich hab ein Problem beim Erstellen einer Map aus einer BSP Datei. Das ergebnis hat zwar schon ähnlichkeit mit der ingame Map (Vergleichsbild) aber ich weiss nicht wie ich die Faces richtig erstelle. Infos über das BSP Format habe ich hierher: http://www.geocities.com/cofrdrbob/bspformat.html In den Face Lumps gibt es einen eintrag der zu einem surfedge verweist (surfedge), und einen der angibt wie viele surfedges zum face lump gehören(numedges). ein surfedge eintrag verweist auf ein edge und ein edge verweist auf ein paar aus 2 vertices. wenn der eintrag vom surfedge negativ ist werden die vertices gegen den uhrzeigersinn verbunden, sonst mit. Ich weiss nur nicht wie man aus 2 vertices und einer kante ein face erstellen soll. Code + Mapfile als Zip: http://marcelkroener.ma.funpic...reader.zip Edit: Quellcode Update: Edges werden durch grüne Linien symbolisiert. mfg marcelkroener |
||
Vertex |
Mo, März 24, 2008 13:52 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] For i=0 To face_count-1
DebugLog "Face " + i + ":" For i2=face_firstedge(i) To face_firstedge(i)+face_numedges(i)-1 i3=Abs(surfedge_index(i2)) If Sgn(surfedge_index(i2)) Then DebugLog " " + edge_v(i3, 0) + " " + edge_v(i3, 1) Else DebugLog " " + edge_v(i3, 1) + " " + edge_v(i3, 0) EndIf Next DebugLog "" Next Da kommt dann so etwas heraus: Code: [AUSKLAPPEN] Face 0:
416 417 417 418 418 419 419 416 Face 1: 420 258 258 421 421 422 422 420 Face 2: 423 424 424 425 425 426 426 423 Face 3: 427 428 428 429 429 430 430 427 Wie du siehst, beginnt die eine Edge mit dem Vertex der Vorhergehenden. Weiterhin ist Start- und Endvertex identisch. Aufgefallen ist mir, dass alle Surfedges das selbe Vorzeichen haben. GgF. musst du es mal über das FaceSide-Attribut probieren. Code: [AUSKLAPPEN] For i=0 To face_count-1
i3=Abs(surfedge_index(face_firstedge(i))) If Sgn(face_firstedge(i)) Then v0 = edge_v(i3, 0) Else v0 = edge_v(i3, 1) EndIf For i2=face_firstedge(i)+1 To face_firstedge(i)+face_numedges(i)-1 i3=Abs(surfedge_index(i2)) If Sgn(surfedge_index(i2)) Then v1 = edge_v(i3, 0) v2 = edge_v(i3, 1) Else v1 = edge_v(i3, 1) v2 = edge_v(i3, 0) EndIf AddTriangle(surf,vertex_id(v0),vertex_id(v1),vertex_id(v2)) Next Next und EntityFX(map, 16) siehts ganz passabel aus. mfg olli |
||
vertex.dreamfall.at | GitHub |
marcelkroener |
Mo, März 24, 2008 17:32 Antworten mit Zitat |
|
---|---|---|
Hey, danke das du geholfen hast, jetzt klappt es super
thx ohne ende |
||
ozzi789 |
Di, März 25, 2008 11:50 Antworten mit Zitat |
|
---|---|---|
Für was wilste diese Maps ?
Wen du n Source Mapper brauchst schreib mia ne Pm edit : Könntest du mir den Code zu senden sodass es funktioniert ? danke ^^ (man könnt ja noch ne texturierung hinzufügen, also die echten Css/Hl2 texturen) |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
marcelkroener |
Di, März 25, 2008 19:24 Antworten mit Zitat |
|
---|---|---|
Texturieren is schwer, aber das versuch ich als nächstes ^^
den code will ich eh veröffentlichen wenn alles funzt |
||
Vertex |
Mi, März 26, 2008 1:46 Antworten mit Zitat |
|
---|---|---|
Habe ein fehler noch in der Funktion lump_face() gefunden. Code: [AUSKLAPPEN] For i=0 To (lump_t_filelen(13)-1)/56 muss zu Code: [AUSKLAPPEN] For i=0 To (lump_t_filelen(7)-1)/56 werden(hast bestimmt aus der vorhergehenden Funktion die schleife kopiert).
Mit folgendem Code bekomme ich deine bsp2.bsp zum laufen: Code: [AUSKLAPPEN] For i=0 To face_count-1
For i2=face_firstedge(i) To face_firstedge(i)+face_numedges(i)-1 Step 2 Local v0, v1, v2 i3 = Abs(surfedge_index(i2)) If Sgn(surfedge_index(i2)) = -1 Then v0 = edge_v(i3, 0) v1 = edge_v(i3, 1) Else v0 = edge_v(i3, 1) v1 = edge_v(i3, 0) EndIf i3 = Abs(surfedge_index(i2 + 1)) If Sgn(surfedge_index(i2 + 1)) = -1 Then v2 = edge_v(i3, 0) Else v2 = edge_v(i3, 1) EndIf AddTriangle(surf,vertex_id(v0),vertex_id(v1),vertex_id(v2)) Next Next Bei bsp.bsp kommt dennoch nur Schrott raus. Das kann ich allerdings auch nicht so toll debuggen mfg olli |
||
vertex.dreamfall.at | GitHub |
marcelkroener |
Mi, März 26, 2008 20:09 Antworten mit Zitat |
|
---|---|---|
Ne habs selbst schon geschafft, trotzdem danke.
funzt jetz ohne probleme, alle maps Download: (Showcase) |
||
- Zuletzt bearbeitet von marcelkroener am So, März 30, 2008 14:57, insgesamt einmal bearbeitet
PlasmaBetreff: sieht gut aus ... |
Do, März 27, 2008 18:38 Antworten mit Zitat |
|
---|---|---|
machst du weiter ?? | ||
marcelkroener |
Do, März 27, 2008 19:39 Antworten mit Zitat |
|
---|---|---|
Klar mach ich weiter, das is nur ne Alpha | ||
The_Nici |
Do, März 27, 2008 20:02 Antworten mit Zitat |
|
---|---|---|
Ladezeit könnte kürzer werden, auch sonst laggt es nochn bisschen, was machst du denn alles da inenr Schleife? xD
Aber wiklich schön gemacht. PS: Die Map erinnert mich an einen teil von dm_Lockdown. Oo |
||
ZaP |
Fr, März 28, 2008 19:48 Antworten mit Zitat |
|
---|---|---|
Haha, was für ein Zufall, ich arbeite auch schon seit 2 Wochen an einem BSP loader, aber für Quake3 (IBSP) maps. Die haben nur 17 lumps und sind auch sonst weniger komplex. | ||
Starfare: Worklog, Website (download) |
marcelkroener |
Fr, März 28, 2008 21:00 Antworten mit Zitat |
|
---|---|---|
@nici: das soll j auch ne gefängnismap sein, hab ich irgendwann mal aus langeweile gemappt.
kannste auch in deinen HL2 mapordner kopieren und zocken. ist aber etwas kurz ^^ und in der schleife mach ich nicht so viel, das liegt bestimmt am rendern. |
||
BadDeath |
Do, Mai 29, 2008 19:50 Antworten mit Zitat |
|
---|---|---|
könntest du bitte die aktuellste version von deinem bsp-loader reinstellen?
Danke dir! |
||
marcelkroener |
Do, Mai 29, 2008 20:32 Antworten mit Zitat |
|
---|---|---|
https://www.blitzforum.de/showcase/210/
Im Showcase Eintrag is die aktuellste Version |
||
BadDeath |
Do, Mai 29, 2008 20:39 Antworten mit Zitat |
|
---|---|---|
sry, garnicht gesehen ^^
dankeschön für die arbeit, werde es mal testen |
||
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group