Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
Bei mir würde das in etwa genauso ablaufen. Vorerst werde ich einfach die ganzen Frustums sammeln. Also wenn nun im Camera Frustum ein Portal zu sehen ist, werden einfach die Planes des Portale anhand der Ecken und der Camera Position gebildet. Ob nun weitere Portale sichtbar sind mekrt man dann wenn ein Portal im letzten PortalFrustum als auch im CameraFrustum ist.Zitat
Das hat schlicht den Vorteil, dass man die Objekte in dem Sektor, in den man hinein schaut, dann einfach gegen das aus "eigene Position -> Ecken des Rechtecks" entstehende View-Frustum cullen kann.
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
NumSectors = 1 NumPortals = 1 Material 0 { Texture0 = "Texture.tga" Texture1 = 0 Texture2 = 0 Texture3 = 0 LayerMap = 0 } // Mesh "NumVertes" Mesh 13 { // Vert (VertId) (X) (Y) (Z) (Nx) (Ny) (Nz) (U) (V) Vert 0 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 1 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 2 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 3 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 4 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 5 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 6 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 7 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 8 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 9 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 10 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 11 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 Vert 12 38.384 29.2 5.342 0.3847 0.463 0.273 0.12 0.33 } // Sector (SectorId) (NumSubsets) Sector 0 2 { // Subset (SubsetId) (NumTris) (Material) Subset 0 10 0 { Tri 0 27 382 38 Tri 1 27 382 38 Tri 2 27 382 38 Tri 3 27 382 38 Tri 4 27 382 38 Tri 5 27 382 38 Tri 6 27 382 38 Tri 7 27 382 38 Tri 8 27 382 38 Tri 9 27 382 38 } // Subset (SectorId) (NumTris) (Material) Subset 1 10 0 { Tri 0 27 382 38 Tri 1 27 382 38 Tri 2 27 382 38 Tri 3 27 382 38 Tri 4 27 382 38 Tri 5 27 382 38 Tri 6 27 382 38 Tri 7 27 382 38 Tri 8 27 382 38 Tri 9 27 382 38 } } // Portal (PortalId) (NumCorners) (AddedSector) (AddedSector) // -1 als Sector bedeutet das es mit der Outdoor Szene gebunden ist Portal 0 4 0 -1 { Corn 0 281.3 3994.2 384.21 Corn 1 281.3 3994.2 384.21 Corn 2 281.3 3994.2 384.21 Corn 3 281.3 3994.2 384.21 } |
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Potatoman« (23.05.2010, 11:08)
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Potatoman« (23.05.2010, 13:53)
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Potatoman« (23.05.2010, 15:41)
Werbeanzeige