Gå til innhold

Nye versjoner av OpenGL og OpenCL fra Khronos


Anbefalte innlegg

Videoannonse
Annonse
Gjest Bruker-245639

Nå som PS4 og ÆsjBåks'en kommer med x64 arkitektur, kan vi forvente mer OpenGL fra spillutviklerne? Håper virkelig det! Bli kvitt den klamme ekle hånden med ballegrep fra MS og få brukt en fri og åpen standard som virker på tvers av alle plattformer må være en gevinst for alle.

Lenke til kommentar

Så voksent av deg...

 

Grunnen til at Direct3D (DirectX) brukes fremfor OpenGL er nok ikke Microsoft som har ballegrep på utviklerne. Det er historisk bagasje, og at DirectX gjerne har vært mye mer avansert og utviklervennlig enn OpenGL.

Les litt om historien som gjorde at DirectX har fått så stor markedsandel her:

http://programmers.stackexchange.com/questions/60544/why-do-game-developers-prefer-windows/88055#88055

 

Så vidt jeg forstår så begynner OpenGL å ta igjen Direct3D. Det har mye med overgangen til Vista og DirectX10 å gjøre, og Microsoft som roter til alt de tar i.

 

Men hovedgrunnen til at DirectX brukes er nok rett og slett at OpenGL er et 3D renderings bibliotek, mens DirectX er alt mulig. Du har ferdige komponenter for lydavspilling, input, kontrollere, video osv... Velger du OpenGL må du selv finne andre og selvstendige biblioteker for det. Og når tid og penger er mangelvare, så er det lettere å gå for den enkle og sikre løsningen.

  • Liker 7
Lenke til kommentar

Nå som PS4 og ÆsjBåks'en kommer med x64 arkitektur, kan vi forvente mer OpenGL fra spillutviklerne? Håper virkelig det! Bli kvitt den klamme ekle hånden med ballegrep fra MS og få brukt en fri og åpen standard som virker på tvers av alle plattformer må være en gevinst for alle.

 

Visstnok skal PlayStation 4 gå vekk i fra deres proprietære grafikk-API og over på direkte OpenGL. Microsoft gjør neppe det samme. Forøvrig har Windows siden Windows NT 3.5 hatt OpenGL-støtte. Frem til Windows Vista var det tilogmed en del av kernelen. Det er fritt fram for utviklere å bruke OpenGL i Windows. Det er helt andre grunner til at Direct3D blir foretrukket, ref. Unlimited LTD.

  • Liker 2
Lenke til kommentar

Det var kanskje ikke verdens mest seriøse innlegg av Crvena, men han har et poeng synes jeg. Finnes jo mange gode spill som bruker OpenGL og vi er vel alle enig i at det er en fordel når noe velge åpne standarder og programvare isteden for proprietær.

  • Liker 2
Lenke til kommentar

Det var kanskje ikke verdens mest seriøse innlegg av Crvena, men han har et poeng synes jeg. Finnes jo mange gode spill som bruker OpenGL og vi er vel alle enig i at det er en fordel når noe velge åpne standarder og programvare isteden for proprietær.

 

Det er jo forsåvidt sant. Men vært klar over at den eneste spillutvikleren som faktisk gjør dette er Id Software. Alle andre spillmotorer bruker en hel rekke proprietære tredjepartskomponenter.

Lenke til kommentar

I en verden hvor det stadig blir vanligere at spill og applikasjoner portes over til andre plattformer, synes jeg det er litt synd at åpne standarder som OpenGL i senere tid har tapt masse markedsandeler til Microsoft sin lukkede Direct3D løsning. Nå har jeg ingen erfaring med programmering og den slags, men selv om jeg er en Windows bruker synes jeg at det var helt topp da Valve lanserte Steam til Linux.

Lenke til kommentar

Hvor du får det fra at OpenGL taper markedsandeler til Microsoft?

 

Som jeg nevnte i posten over så har OpenGL, selv uten denne oppdateringen, fått tilbake store markedsandeler. Det er nok mest grunnet NVidia, som har meget god støtte, nesten bedre enn Direct3D, i grafikkkortene sine, men også grunnet Android og iOS som støtter OpenGL gjennom OpenGL ES (Embeded Systems).

 

Grunnen til dette er nok at flere og flere oppdager at D3D og OpenGL er nokså side-om-side når det gjelder ytelse; og at OpenGL faktisk i noen tilfeller kan være raskere. En annen grunn er at Windows mister markedsandeler til Linux og Mac (om så bare noen prosent), som gjør multiplatform til et mye mer lukrativt valg for utviklere. D3D virker som kjent ikke på annet enn Windows, og valget er da enkelt.

 

Så for å svare på spørsmålet til Crvena; ja, vi kommer til å se flere spill i OpenGL. Men det har nok ingen ting med PS4 eller XBox å gjøre, men heller med Steam å gjøre.

 

edit: Kan noen fortelle meg hvorfor man bør bruke en åpen standard istedet for en lukket standard? Hva er fordelene, bortsett fra å kunne støtte Linux og Mac?

 

Khronos styrer fremdeles OpenGL som de vil, NVidia/AMD sine drivere er lukket (mener dog de åpnet linux driverne for litt siden?).

Endret av Unlimited LTD
Lenke til kommentar
Gjest Bruker-245639

 

edit: Kan noen fortelle meg hvorfor man bør bruke en åpen standard istedet for en lukket standard? Hva er fordelene, bortsett fra å kunne støtte Linux og Mac?

 

Khronos styrer fremdeles OpenGL som de vil, NVidia/AMD sine drivere er lukket (mener dog de åpnet linux driverne for litt siden?).

Åpne standarder sørger for innovasjon, sunn konkurranse, "level playing field", lavere kostnader, flerplattformstøtte (write once, deploy many). Det finnes, utenom for den som vil melke kundene for penger, ingen fordeler med lukkede standarder.

Lenke til kommentar

Valve har jo også vært inne på OpenGL en stund.

Det samme har Blizzard.

I tillegg har Unity blitt veldig populært, det er jo OpenGL også.

 

Mer OpenGL vil gjøre det lettere, billigere og dermed mer attraktivt å levere flere crossplatform titler.

Lenke til kommentar

Nå som PS4 og ÆsjBåks'en kommer med x64 arkitektur, kan vi forvente mer OpenGL fra spillutviklerne? Håper virkelig det! Bli kvitt den klamme ekle hånden med ballegrep fra MS og få brukt en fri og åpen standard som virker på tvers av alle plattformer må være en gevinst for alle.

 

..Var det ikke x86 arkitektur? :p

Lenke til kommentar

GL_ARB_Sparse_Texture er en standardisering av GL_AMD_Sparse_Texture, som er teknikker for å optimalisere virtuelle teksturer. Virtuelle teksturer består av å lagre små "puslebiter" av en stor tekstur i en liten tekstur som mellomlager. Dette krever dessverre at disse bitene må settes sammen igjen, må ha mye padding, begrenser muligheter for trilineær og anisotropisk filtrering (som er viktig for skarpe og detaljerte teksturer), og har begrensninger i hvor store teksturene kan være. Virtuelle teksturer er uansett bare en mellomløsning siden tradisjonelle GPUer kun kan aksessere et begrenset antall bufre samtidig, og den egentlige løsningen på problemet er Nvidias bindless textures. GL_ARB_Sparse_Texture er støttet av AMDs GCN-GPUer, og Fermi- og Kepler-brikker fra Nvidia.

 

GL_ARB_Bindless_Texture er naturligvis standardiseringen av GL_NV_Bindless_Texture som er en utvidelse som tillater aksessering av vilkårlige teksturer direkte i shaderprogrammet ved hjelp av pekere. Dette fungerer prinsippielt likt som NV_Shader_Buffer_Load, som lar shaderprogrammer aksessere meshes med pekere. Nvidia kaller dette "bindless graphics", fordi det skiller seg fra tradisjonell GPU-programmering som går ut på å binde tekstur-, vertex- og indeks-data til reserverte "båser" i GPUens cache, binding og unbinding skjer gjennom kall fra CPUen, som er både tregt og ineffektivt i forhold til en GPU som håndterer dette selv. Nvidia kom med de første bindless-utvidelsene med Tesla, og utvidet med "bindless textures" med Kepler. Det siste tilskuddet i familien er nå NV_Bindless_Multi_Draw_Indirect. For alle dere som er kjent med C-programmering, så er aksessering av data med pekere i shadere i Bindless graphics det samme som å bruke pekere i C. Nvidias GPUer er i stand til dette for å støtte all funksjonaliteten til CUDA. Dette får rendering på andre GPUer til å virke primitivt og tungvindt ut til sammenligning. AMD og Intel bør absolutt få ut fingeren og så de får standardisert dette.

 

Den nye funksjonen GL_ARB_multi_bind vil naturligvis bli helt unødvendig bindless graphics. Denne funksjonen prøver å redusere litt av CPU-overheaden til driveren, mens den ineffektive cache-bruken i GPUen forblir.

 

Nå som PS4 og ÆsjBåks'en kommer med x64x86-arkitektur, kan vi forvente mer OpenGL fra spillutviklerne? Håper virkelig det! Bli kvitt den klamme ekle hånden med ballegrep fra MS og få brukt en fri og åpen standard som virker på tvers av alle plattformer må være en gevinst for alle.

 

Så vidt jeg forstår så begynner OpenGL å ta igjen Direct3D. Det har mye med overgangen til Vista og DirectX10 å gjøre, og Microsoft som roter til alt de tar i.

OpenGL med sine utvidelser leder på funksjonalitet, og for Nvidia også på ytelse. Driverkvaliteten for andre som AMD og Intel er derimot tvilsom, som er den beste grunnen i dag for å velge Direct3D.

 

Men hovedgrunnen til at DirectX brukes er nok rett og slett at OpenGL er et 3D renderings bibliotek, mens DirectX er alt mulig. Du har ferdige komponenter for lydavspilling, input, kontrollere, video osv... Velger du OpenGL må du selv finne andre og selvstendige biblioteker for det. Og når tid og penger er mangelvare, så er det lettere å gå for den enkle og sikre løsningen.

Det er kanskje en aktuell problemstilling for et lite prosjekt, men for utviklingsbudsjettet til storspill betyr det ingenting. Dessuten er så godt som samtlige spillmotorer bygd for å støtte OpenGL uansett.

 

Hvor du får det fra at OpenGL taper markedsandeler til Microsoft?

 

Som jeg nevnte i posten over så har OpenGL, selv uten denne oppdateringen, fått tilbake store markedsandeler. Det er nok mest grunnet NVidia, som har meget god støtte, nesten bedre enn Direct3D, i grafikkkortene sine, men også grunnet Android og iOS som støtter OpenGL gjennom OpenGL ES (Embeded Systems).

 

Grunnen til dette er nok at flere og flere oppdager at D3D og OpenGL er nokså side-om-side når det gjelder ytelse; og at OpenGL faktisk i noen tilfeller kan være raskere. En annen grunn er at Windows mister markedsandeler til Linux og Mac (om så bare noen prosent), som gjør multiplatform til et mye mer lukrativt valg for utviklere. D3D virker som kjent ikke på annet enn Windows, og valget er da enkelt.

Glem ikke at OpenGL bringer splitter ny funksjonalitet til XP-brukere også, så totalt kan dette utgjøre forskjellen på god profitt kontra underskudd for et prosjekt.

 

edit: Kan noen fortelle meg hvorfor man bør bruke en åpen standard istedet for en lukket standard? Hva er fordelene, bortsett fra å kunne støtte Linux og Mac?

Hvem som helst kan implementere og bruke standarden uten vansker. Det finnes riktignok ørten mindre kjente implementasjoner som fra S3, PowerVR, qualcomm(?) og diverse mindre kjente kinesiske leverandører av OpenGL-kompatible brikker, av varierende kvalitet. I tillegg har vil alle de åpne driverne for mange GPUer, som det er flott at er mulig selv om produktet som blir laget er intet mindre enn en kuriositet.

 

Et problem som Khronos uansett har er at gruppens fokus dras i alle retninger. Mesteparten av medlemmene er bare interesserte i svake mobil-GPUer, og av de tre store så driver Nvidia med det aller meste av innovasjonen, AMD gjør noe (som gjerne drar i en annen retning enn Nvidia), og Intel holder stort sett tilbake siden de ikke ønsker et kompliserende design for GPUer. (for noen år siden innoverte ATI en del på tessellation...)

Khronos styrer fremdeles OpenGL som de vil, NVidia/AMD sine drivere er lukket (mener dog de åpnet linux driverne for litt siden?).

Nvidias og AMDs drivere er fremdeles proprietære, eller rettere sagt: hele driverne er ikke åpnet. Dog skal det sies at Nvidia har åpnet konfigurasjonssverktøyet sitt, installasjonsverktøyet sitt, CUDA-kompilatoren, tilbyr API mot GPUen og har implementert åpne protokoller. Så at den siste biten av driveren som er kjernen fremdeles er proprietær kan ikke kalles for noe ran av frihet akkurat. (det handler faktisk om patenter fra tredjeparter, så AMD og Nvidia kan ikke selv om de skulle ønske). Men så har da de "åpne" driverne også proprietær firmware så du kommer ikke mye lenger der... Endret av efikkan
  • Liker 1
Lenke til kommentar

Som jeg nevnte i posten over så har OpenGL, selv uten denne oppdateringen, fått tilbake store markedsandeler. Det er nok mest grunnet NVidia, som har meget god støtte, nesten bedre enn Direct3D, i grafikkkortene sine, men også grunnet Android og iOS som støtter OpenGL gjennom OpenGL ES (Embeded Systems).

Neste versjon av Tegra-brikken fra Nvidia (Tegra 5) som skal lanseres i begynnelsen av 2014 kommer til å støtte full versjon OpenGL 4.4, ikke kun OpenGL ES.

 

Edit:

De viste faktisk frem en fungerende brikke i går:

http://www.anandtech.com/show/7169/nvidia-demonstrates-logan-soc-mobile-kepler

Endret av HKS
  • Liker 1
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...