Gå til innhold

Anbefalte innlegg

Her er neste kapittel i min masete føljetong med dumme OpenGL-spørsmål. :)

 

La oss si at jeg ønsker å få generert et bilde i 3D basert på en gitt mengde informasjon. Et eksempel kan være å generere et bilde til en webside on-the-fly på grunnlag av data fra en database.

Da har jeg ikke noe applikasjonsvindu å opprette en rendering context i. Dette betyr at løsningen jeg leter etter, må utføre all rendering i software, helt uavhengig av hardware.

Er noe slikt mulig å få til?

Endret av alfred97
Lenke til kommentar
Videoannonse
Annonse

Jeg skjønner ikke helt...

Men jeg tror jeg vet: Du skal lage et bilde, og ikke rendre til et vindu?

 

Da må du bruke CreateBitmap o.s.v. og sette pixelformat til RENDER_TO_BITMAP eller lage et rendering vindu. Deretter bruker du glCopyPixels eller enda bedre: de nye extensions for å hente frametarget og rendertarget.

Endret av GeirGrusom
Lenke til kommentar

Du må ha en OpenGL context for tråden du skal rendre i. Hvordan en gjøre det uten å bruke HBITMAP, eller vinduer har jeg aldri vært borti.

 

Hvis du vet hvordan, tror jeg trådstarter hadde vært mer fornøyd med hvordan det gjøres fremfor å fortelle at det går an (noe jeg allerede har fortalt at det gjør)

Lenke til kommentar
Hvis du vet hvordan, tror jeg trådstarter hadde vært mer fornøyd med hvordan det gjøres fremfor å fortelle at det går an (noe jeg allerede har fortalt at det gjør)

Kan nok ikke si noe konkret om hvordan dette gjøres med OpenGL, men det er veldig kurant i DirectX vet jeg så kan ikke skjønne hvorfor det ikke skulle vært det i OGL. Prøv et søk på Google ;).

Lenke til kommentar
Men jeg tror jeg vet: Du skal lage et bilde, og ikke rendre til et vindu?

Korrekt. Jeg ønsker å rendre til en fil.

 

OpenGL må da ikke ha et fysisk vindu på skjermen å rendere til... Du kan rendere til et buffer i hardware og så kopiere ut dette bufferet å skrive det til en fil i hvilket som helst format.

Dette medfører riktighet. I utgangspunktet.

 

På min Windows-maskin som jeg bruker til daglig, så er dette ikke noe problem å gjennomføre. Problemet oppstår når jeg vil ha dette gjort fullstendig hardware-uavhengig. OpenGL-implementasjonene har en tendens til å være skjermkort-spesifikke, mens jeg vil ha noe som kjører i software på min webserver (som har et eldgammelt skjermkort uten noen som helst form for 3D-støtte).

Så det jeg egentlig er ute etter, er hvorvidt det finnes en hardware-uavhengig OpenGL-implementasjon (helst for linux) som jeg kan bruke til å generere bilder on-the-fly ut fra en gitt datamengde, til bruk for en webside.

Lenke til kommentar

OpenGL gjør en fallback til software dersom det ikke er hardware støtte på maskinen.

Men i Windows XP faller dette tilbake til OpenGL 1.1 og i Windows Vista faller den tilbake til OpenGL 1.4

 

Bare lag en GL context så enkelt som mulig, og deretter bruker du glCopyPixels for å hente skjermbildet.

 

Jeg vet ikke hvordan glx fungerer dog, fordi jeg har ikke vært borti det.

Så du får se på dokumentasjonen til det.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...