alfred97 Skrevet 22. juli 2008 Skrevet 22. juli 2008 (endret) 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 22. juli 2008 av alfred97
GeirGrusom Skrevet 23. juli 2008 Skrevet 23. juli 2008 (endret) 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 23. juli 2008 av GeirGrusom
ChrML Skrevet 23. juli 2008 Skrevet 23. juli 2008 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. Ikke noe problem det.
GeirGrusom Skrevet 24. juli 2008 Skrevet 24. juli 2008 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)
ChrML Skrevet 26. juli 2008 Skrevet 26. juli 2008 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 .
alfred97 Skrevet 27. juli 2008 Forfatter Skrevet 27. juli 2008 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.
ChrML Skrevet 27. juli 2008 Skrevet 27. juli 2008 (endret) Kanskje dette er noe å prøve: http://mesa3d.org/ Det står at det er en open-source implementasjon av OpenGL API-en med støtte for alt fra software rendering til komplett hardware aksellererert rendering på nye GPU-er. Endret 27. juli 2008 av chrml
GeirGrusom Skrevet 28. juli 2008 Skrevet 28. juli 2008 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.
alfred97 Skrevet 28. juli 2008 Forfatter Skrevet 28. juli 2008 Kanskje dette er noe å prøve:http://mesa3d.org/ Mesa ser ut til å være akkurat det jeg ville ha. Takk for tipset!
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå