[C++ OpenGl] Hoe wordt een quad getekend?

Pagina: 1
Acties:

  • ADJVooDoo
  • Registratie: Januari 2001
  • Laatst online: 27-06 13:20
Ik heb een vraagje over hoe OpenGl een quad tekend.

Als alle vier punten op een vlak liggen is het mij duidelijk. Als dit niet het geval is, dan wordt de quad met twee triangles getekend? Maar er kan dan op twee manieren getekend worden.
De onderstaande punten zijn van boven gezien, de waarde is de hoogte. Dus de middelste 0 zou een dal moeten zijn. Dit stukje kan met vier quad getekend worden, alleen op verschillende manieren.
0 10 0
10 0 10
0 10 0

De correcte zou zijn als tussen de tienen de waarde vijf komt en een quad uit vier driehoekjes wordt opgeboud.
Zoals dit, eerste quad van stukje hierboven:
0 10
_ 5
10 0

Dit stukje als vier triangles. Vijf in het midden. Kan OpenGl dit automatisch of moet we zelf de gemiddelden gaan berekenen en ook zelf vier triangles tekenen in plaats van een quad.

Alvast bedankt. Hoop dat ik het een beetje duidelijk heb kunnen uitleggen.

Verwijderd

Hoi Auke, ik heb nog 2 goede boeken over open gl thuis liggen, als je wilt kun je ze wel lenen, ook heb ik dat ene boek nog als zip file, dacht ik. Wij hebben het vorig jaar op school gehad met java3d als ik het goed had, volgens mij heb ik jou die opdracht wel eens laten zien, ging over een autootje die aan het rijden was in een doolhof

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat ligt in principe aan de onderliggende hardware. Alle punten op van de quad horen gewoon in hetzelfde vlak te liggen. Als dat niet zo is dan krijg je gewoon heel leuk undefined behaviour.

Als jij dus vier punten hebt die niet in hetzelfde vlak liggen dan moet je 'm niet als quad of polygoon tekeken, heel simpel :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • ADJVooDoo
  • Registratie: Januari 2001
  • Laatst online: 27-06 13:20
Hee Peter. Hoeist? Zal je binnenkort een mailtje sturen.
Heb die opdracht over dat autootje niet gezien, volgens mij.

Dus undefined gedrag. Is duidelijk.
Wordt dus splitsen in driehoekjes en gemiddelden berekenen. Zal wel langzaam dan. Zit al maximaal met een raster 512 x 512. Keer vier, voor elke quad drie triangles. Een dik miljoen triangles.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Fillrate is over het algemeen de bottleneck. Wat dus wil zeggen dat je zonder alteveel problemen 2x zoveel triangles kunt tekenen zolang het aantal getekende pixels op het scherm gelijk blijven.

Maar het toepassen van een spatial partitioning algoritme (een quadtree lijkt mij hier het meest geschikt, aangezien je met een raster te maken hebt) is altijd beter natuurlijk

Is het een landschap?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • ADJVooDoo
  • Registratie: Januari 2001
  • Laatst online: 27-06 13:20
Het is geen landschap. We willen een 3D plaatje van een Doppler FFT maken. Dat werkt allemaal al, alleen waren we er achter gekomen dat die quads soms niet goed getekend worden. We hebben de gemiddelde berekening er nu self in gemaakt en een quad opgeboud uit vier driehoekjes. Is beter geworden.

Wat is het spatial pratitioning algoritme?
Zal eens gaan zoeken op Google ofzo.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

spatial partitioning doet precies wat het zegt: de ruimte onderverdelen

Maar als je hele raster altijd op het scherm te zien is dan heb je daar weinig aan. Spatial partitioning systems zorgen er bijvoorbeeld voor dat je makkelijk kan bepalen wat wel en wat niet op het scherm komt, zodat je grote delen niet hoeft te tekenen

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1