Gå til innhold

Fan forbedret Dark Souls ved lansering (PC)


Anbefalte innlegg

Langt mer bekymringsfullt er en frameratecap på 30 fps, om spillet kjører Triple Buffer Vsync vil det ta opp til 133.2 ms fra du trykker en knapp til noe skjer på skjermen.

Oj, kan du gi meg regnestykket på den?

 

=/ Det er litt trist hvor mye folk legger i nummer de ikke vet hva gjør. 1024x720 er intern oppløsningen. Post prosessing og alle type filtere blir lagt på i display oppløsningen. Joa, det er en bitmap i 1024x720 som GPUen din har å jobbe med før den spytter ut bildet du ser, men det er ikke akuratt snakk om nearest neighbor scaling her.

 

De fleste spill har en mye lavere intern oppløsning enn ekstern. Vet du hva supersampling gjør? Vet du hva anti aliasing gjør? Har du spilt et spill hvor det får spillet til å se bedre ut? Om du har det har du spilt spillet i lavere oppløsning enn hva options menyen viste.

Vet du det da? Det er lett å slenge med flotte ord, men du avslører deg ovenfor de som faktisk er innenfor fagfeltet. Jeg tør påstå at det er mer uvanlig at spill rendres i lavere oppløsning for å skaleres opp til den oppløsningen du har valgt. Som regel rendres det meste rett i output framebuffer, men f.eks. refleksjoner i vann er noe som midlertidig rendes (opp-ned) i en egen framebuffer.

 

"Intern" og "ekstern" oppløsning er ikke terminologier som jeg har sett brukt, men i grafikk så snakker vi om framebuffer i ulik oppløsning som kan settes sammen til en ferdig framebuffer(rendering output). (må ikke forveksles med framebuffer som navn på hele grafikkminnet)

 

Supersampling er rett og slett rendering i høyere oppløsning og nedskalering av resultatet. Definitivt best men mest ressurskrevende.

Multisample/CSAA-varianter bruker fragment samples "tilfeldig" fordelt utover hver piksel.

 

Når du strekker ut f.eks. 1024x768 til 1920x1080 så er det ikke de overnevnte effektene som brukes, isåfall brukes disse ved rendering til den førstnevnte framebufferen. Utglatting av den skalerte teksturen kan gjøres ved bilineær/trilineær filtering med AF. På tidspunktet skaleringen skjer har ikke GPUen tilgang til depth buffer eller originale teksturer.

 

Så konsoller er absolutt viktig for industrien, de bidrar til:

Å holde prisen for PC-maskinvare nede

Et større fokus på å få mer grafikk med samme maskinvare (det meste av moderne spillgrafikk er basert på juksing og triksing for å senke utregningskostnadene for grafiske effekter ja)

Flere utviklere

Lettere å introdusere nye mennesker til gaming siden konsoller har en overkommelig inngangspris.

Dagens konsoller bruker stort sett ikke PC-maskinvare, så irrelevant. Det meste at tweaking er veldig konsollspesifikt, og andre plattformer drar ikke nytte av det. Så godt som samtlige konsollplattformer har en inngangspris for utviklere som bare de store spillselskapene kan ha råd til.

 

Pc gaming har vært død mange ganger, dvs etter lansering av en ny konsol generasjon. 3 år etter er den tilbake da pc ytelse øker kontinuelig ikke i 5 års hopp som konsoller.

Uklart hvordan dette blir med PS4 som ryktene sier blir en reltivt billig konsoll med ytelse som en midlels spill pc.

PC-spill står vel relativt sett sterkere mot konsoll enn noen gang før, men spillbransjen generelt (storspill) har slitt en del de siste to årene. (Jeg vil påstå dette har mer med idioti i ledelse enn med faktisk spillsalg) I løpet av de kommende årene vil PC-spill for første gang gå forbi konsollmarkedet, og det er vel liten tvil om at konsollen er på vei ut.

 

Jeg har bemerket meg at enkelte spill ikke ser ut til å gå verken raskere eller tregere når man endrer oppløsning, mens i andre igjen er dette veldig viktig.

 

Er det sånn at i enkelte spill så er forholdet mellom intern og utput oppløsning 1:1, mens i andre så er den interne fast mens det kun er utput oppløsninga som varierer?

 

1:1 er sjeldent, men ofte intern oppløsning går opp i mye større hakk. Selv om det går opp med hver hakk av høyere oppløsning så er den nok et hakk bak. Tror ikke det er det du merker dog. Det kan godt være CPU relaterte ting som Arni sier, men om jeg skal anta du sjekket hvor det kom mest strain, og spillene du sammenlikner er like tunge å kjøre, bortsett fra grafikken så er det flere ting som er mer sannsynlig enn at en større intern oppløsning gjør det vesentlig tyngre.

 

Flere, eller dårligere skrevete effekter som ikke scaler så bra.

Lengre draw distance.

Spillet må tegne baksider, muligens insider av modeller (dette er ikke vanlig)

Flere partikkel effekter.

lav LOD versjoner som starter lengre unna

Måten teksturer blir filtret på

Og sikkert utallige andre ting jeg ikke kommer på i farten. Men jo, hva intern oppløsning er satt til varierer fra spill til spill.

Hvilke spill knytter draw distance til oppløsning? Dette må du forklare. Jeg vil påstå at det er unormalt at spillytelse ikke skalerer med oppløsning.

 

Virker som du ikke helt ser skillet mellom de forskjellige oppløsningene. Modeller tegnes i en viss oppløsning, så blir det skalert opp (dette er kjempe lett og GPUen din klager ikke, men det ser også stygt ut), i den større flaten må så lys, fog, teksturer og slikt legges på utifra hightmaps; Dette er litt værre siden det er full oppløsning, ingen forskjell her om blidet det var tegnet på originalt var stort eller lite. Så må all type filtering skje, og bildet må behandles i full oppløsning.

Hva som gjøres i software rendering kan være så forskjellig, men både OpenGL og Direct3D tillater mipmaps. Jeg vet ikke hva du mener med overnevnte, hva mener du mer oppløsning her? Er det oppløsning i framebuffer? (den blir ikke skalert) Er det antall vertices?

 

Den lille delen hvor 3D modellene blir til et statisk bilde er jo der den, men det er også veldig mye annet som skjer, som skjer i full oppløsning, så derfor blir det vesentlig tyngre

Sikter du til den "lille" fragment shaderen og rasterizingen? Denne "lille" delen av pipeline som ofte er den mest tunge å beregne, som muliggjør de aller fleste grafiske effektene?

 

Her er du virkelig på tynn is, vennligst forklar ordentlig hva du mener.

 

Vet ikke om jeg klarer å forklare det til deg hvorfor det går tregere å gjøre mer, men det er kjempe lett å teste. Går utifra du har Photoshop siden du driver med 3D modellering. Åpne et bilde i 50x50. Så legg på et filter fra filter menyen. F.eks blur. Gjør det samme igjen, men strekk bildet sånn at det er 5000x5000 og legg på samme blur. Denne prosessen vil ta lengre tid enn den første, selv om det er samme bilde.

Jeg vet du ønsker å gjøre et poeng her, men ingen grafikkprogrammerer vil betrakte de to bildene som "samme bilde".

 

-----

 

Jeg vil bemerke en viktig ting; høyere oppløsning (med tilstrekkelig AA) med samme geometri gir ikke "bedre grafikk". Grafikere snakker ofte om forholdet mellom pikseler og polygons, siden lav polycount kan bli synligere ved høyere oppløsninger. La meg ta et godt eksempel: Super Mario 64 så mye bedre ut i 640x480 native på en god CRT enn i 1600x1200 i en emulator på PC, først da er det tydelig hvor dårlige teksturer og geometri virkelig er. Grunnen til at jeg sier dette er at utviklere noen ganger bevisst velger å rendre i lavere oppløsning for å skjule mangel på detaljer, og det er faktisk et gyldig resonnement så lenge dette vises native og ikke skaleres opp slik disse utviklerne har "tabbet" seg ut på.

  • Liker 1
Lenke til kommentar
Videoannonse
Annonse

Langt mer bekymringsfullt er en frameratecap på 30 fps, om spillet kjører Triple Buffer Vsync vil det ta opp til 133.2 ms fra du trykker en knapp til noe skjer på skjermen.

Oj, kan du gi meg regnestykket på den?

1s / 30 frames = 33.3 ms/frame

Triple buffer betyr tre bilder bufret konstant (100ms), så man får et tidsrom på 33.2 ms med input etter Triple Buffer før neste frame begynner.

Dermed 133.2 ms

Dagens konsoller bruker stort sett ikke PC-maskinvare, så irrelevant. Det meste at tweaking er veldig konsollspesifikt, og andre plattformer drar ikke nytte av det. Så godt som samtlige konsollplattformer har en inngangspris for utviklere som bare de store spillselskapene kan ha råd til.

Hvis ikke konsoller hadde en rimelig inngangspris hadde det vært en mindre grunn for Nvidia/AMD å holde prisene nede på grafikkort, det er tross alt ikke så skrekkelig mye dyrere med PC-gaming enn konsollgaming.

Selvfølgelig er mye konsollspesifikt, men er du ikke enig i at mye av grafikkteknologien vi har i dag er basert på å omgå begrensninger i regneytelsen (teksturer for eksempel.)

Inngangsprisen for utviklere på konsoll er vel riktig, men samtidig er dette drevet av et mye større marked å selge spillet man lager til.

Lenke til kommentar

Sorry, trodde du mente pelsen dems, ikke værhårene. Jo, du har rett, værhårene er 3D. Du må vite at når du skriver ditt egent spill er du ikke begrenset til de 5 innstillingene 3DS Max gir deg =P Det finnes mange metoder for å gjøre slik at små objekter som er viktige alltid vil være synlige innen for en viss lengde. De kan ha linjer rundt seg som er statiske, men mindre enn modellen, de kan være tagget met at de alltid skal tegnes innen n meter, de kan ha større bounding box enn de trenger, de kan være satt til høyere prioritet, osv. En veldig lett og visuell måte å eksperimentere litt med custom rendering uten å trenge å kode noe er å laste ned enten Blender, eller Unreal Development Kit og trykke på alle knappene. Dessuten er det jo ikke sånn at om noe er mindre enn 1 pixel kommer det ikke med. Det kan du vel merke i Max også, om du zoomer litt ut så kan du enda se ting som er små. Spillet vet jo hvordan spillet ser ut i 3D rom, selv om GPUen glemmer det.

 

Til det andre argumentet ditt; Virker som du ikke helt ser skillet mellom de forskjellige oppløsningene. Modeller tegnes i en viss oppløsning, så blir det skalert opp (dette er kjempe lett og GPUen din klager ikke, men det ser også stygt ut), i den større flaten må så lys, fog, teksturer og slikt legges på utifra hightmaps; Dette er litt værre siden det er full oppløsning, ingen forskjell her om blidet det var tegnet på originalt var stort eller lite. Så må all type filtering skje, og bildet må behandles i full oppløsning. Den lille delen hvor 3D modellene blir til et statisk bilde er jo der den, men det er også veldig mye annet som skjer, som skjer i full oppløsning, så derfor blir det vesentlig tyngre. (Ikke quote meg på rekkefølgen her. Det kommer an på rendering enginen, og hva utviklerne trodde passet best til spillet. Dette er bare et eksempel.)

 

Vet ikke om jeg klarer å forklare det til deg hvorfor det går tregere å gjøre mer, men det er kjempe lett å teste. Går utifra du har Photoshop siden du driver med 3D modellering. Åpne et bilde i 50x50. Så legg på et filter fra filter menyen. F.eks blur. Gjør det samme igjen, men strekk bildet sånn at det er 5000x5000 og legg på samme blur. Denne prosessen vil ta lengre tid enn den første, selv om det er samme bilde.

Hei, du har rett jeg vet ikke hvordan rendering egentlig fungerer utover det rent basis, skriver ikke egene spill men har laget mod som importerer egene objekter in i Skyrim og Oblivion.

Alt jeg vet er at både spill og alle 3d programmer jeg har vært borti viser detaljer i 3d objekter som kun er en pixel store, på den aktuelle avstanden, trolig mindre pga antialiasing, men det er ingen andre triks i modellen for å få til dette, egenlagde smykker osv viser også med en pixel detaljer og de er kun et objekt laget i max og konvertert til en nif fil, ja de har rimelig høy poly count sammenlignet med resten av objektene i spillet men ingen prioritet osv, imildertid så er minste element 1pixel både i max(preview og render), creation kit preview og i spillet.

Kan ikke se hvordan dette er mulig om 3d modellen tegnes i lavere oppløsning før texture legges på, Ja du har andre effekter her, et spill kan klippe bort objekter utenfor en viss avstand, bruke low poly mesh på lang avstand osv.

Texture legges på den har ulike størelser avhengig av hvilken avstand objektet vises på, mulig du blander dette og mesh. Regner heller ikke med at skygge og andre visuelle effekter har full oppløsning men blir skalert opp. Bruker du for små teksture blir flaten grøtete eller værre blokkete på nært hold som når du ser på en vegg på kloss hold.

http://static.skyrim.nexusmods.com/mods/images/11283-3-1330219603.jpg

Last det ned å se på detaljer på den lenka mellom nese og øre, værhår og buestreng.

Bildet er et utsnitt av et full hd skjermbilde.

om du skalerer det opp til dobelt størelse vil minste synelig linje være runt 3 pixels pga antialiasing ved skalering, omtrent som tømmerstokken i bakgrunnen, her begynner teksture å flyte ut.

Lenke til kommentar

=/ Det er litt trist hvor mye folk legger i nummer de ikke vet hva gjør. 1024x720 er intern oppløsningen. Post prosessing og alle type filtere blir lagt på i display oppløsningen. Joa, det er en bitmap i 1024x720 som GPUen din har å jobbe med før den spytter ut bildet du ser, men det er ikke akuratt snakk om nearest neighbor scaling her.

 

De fleste spill har en mye lavere intern oppløsning enn ekstern. Vet du hva supersampling gjør? Vet du hva anti aliasing gjør? Har du spilt et spill hvor det får spillet til å se bedre ut? Om du har det har du spilt spillet i lavere oppløsning enn hva options menyen viste.

Vet du det da? Det er lett å slenge med flotte ord, men du avslører deg ovenfor de som faktisk er innenfor fagfeltet. Jeg tør påstå at det er mer uvanlig at spill rendres i lavere oppløsning for å skaleres opp til den oppløsningen du har valgt. Som regel rendres det meste rett i output framebuffer, men f.eks. refleksjoner i vann er noe som midlertidig rendes (opp-ned) i en egen framebuffer.

 

"Intern" og "ekstern" oppløsning er ikke terminologier som jeg har sett brukt, men i grafikk så snakker vi om framebuffer i ulik oppløsning som kan settes sammen til en ferdig framebuffer(rendering output). (må ikke forveksles med framebuffer som navn på hele grafikkminnet)

 

Supersampling er rett og slett rendering i høyere oppløsning og nedskalering av resultatet. Definitivt best men mest ressurskrevende.

Multisample/CSAA-varianter bruker fragment samples "tilfeldig" fordelt utover hver piksel.

 

Når du strekker ut f.eks. 1024x768 til 1920x1080 så er det ikke de overnevnte effektene som brukes, isåfall brukes disse ved rendering til den førstnevnte framebufferen. Utglatting av den skalerte teksturen kan gjøres ved bilineær/trilineær filtering med AF. På tidspunktet skaleringen skjer har ikke GPUen tilgang til depth buffer eller originale teksturer.

Du kan lett sette rendering størelse til lavere en default i et pc spill, ved å velge lavere oppløsning.

Dette er nyttig om du har et dårlig skjermkort. De fleste spill på konsoller gjør dette.

 

Så konsoller er absolutt viktig for industrien, de bidrar til:

Å holde prisen for PC-maskinvare nede

Et større fokus på å få mer grafikk med samme maskinvare (det meste av moderne spillgrafikk er basert på juksing og triksing for å senke utregningskostnadene for grafiske effekter ja)

Flere utviklere

Lettere å introdusere nye mennesker til gaming siden konsoller har en overkommelig inngangspris.

Dagens konsoller bruker stort sett ikke PC-maskinvare, så irrelevant. Det meste at tweaking er veldig konsollspesifikt, og andre plattformer drar ikke nytte av det. Så godt som samtlige konsollplattformer har en inngangspris for utviklere som bare de store spillselskapene kan ha råd til.

 

Pc gaming har vært død mange ganger, dvs etter lansering av en ny konsol generasjon. 3 år etter er den tilbake da pc ytelse øker kontinuelig ikke i 5 års hopp som konsoller.

Uklart hvordan dette blir med PS4 som ryktene sier blir en reltivt billig konsoll med ytelse som en midlels spill pc.

PC-spill står vel relativt sett sterkere mot konsoll enn noen gang før, men spillbransjen generelt (storspill) har slitt en del de siste to årene. (Jeg vil påstå dette har mer med idioti i ledelse enn med faktisk spillsalg) I løpet av de kommende årene vil PC-spill for første gang gå forbi konsollmarkedet, og det er vel liten tvil om at konsollen er på vei ut.

Denne pendlen vil svinge tilbake med neste generasjon konsoller, så tilbake igjen når de blir utdatert.

 

Jeg har bemerket meg at enkelte spill ikke ser ut til å gå verken raskere eller tregere når man endrer oppløsning, mens i andre igjen er dette veldig viktig.

 

Er det sånn at i enkelte spill så er forholdet mellom intern og utput oppløsning 1:1, mens i andre så er den interne fast mens det kun er utput oppløsninga som varierer?

 

1:1 er sjeldent, men ofte intern oppløsning går opp i mye større hakk. Selv om det går opp med hver hakk av høyere oppløsning så er den nok et hakk bak. Tror ikke det er det du merker dog. Det kan godt være CPU relaterte ting som Arni sier, men om jeg skal anta du sjekket hvor det kom mest strain, og spillene du sammenlikner er like tunge å kjøre, bortsett fra grafikken så er det flere ting som er mer sannsynlig enn at en større intern oppløsning gjør det vesentlig tyngre.

 

Flere, eller dårligere skrevete effekter som ikke scaler så bra.

Lengre draw distance.

Spillet må tegne baksider, muligens insider av modeller (dette er ikke vanlig)

Flere partikkel effekter.

lav LOD versjoner som starter lengre unna

Måten teksturer blir filtret på

Og sikkert utallige andre ting jeg ikke kommer på i farten. Men jo, hva intern oppløsning er satt til varierer fra spill til spill.

Hvilke spill knytter draw distance til oppløsning? Dette må du forklare. Jeg vil påstå at det er unormalt at spillytelse ikke skalerer med oppløsning.

Mitt poeng også, ja du har faste kostnader som er uavhengig med oppløsning men framerate går ned om oppløsningen går opp. Untak finnes også, vsynk og små endringer, framerate har max verdier lavere en det skjermkort kan levere osv.

Virker som du ikke helt ser skillet mellom de forskjellige oppløsningene. Modeller tegnes i en viss oppløsning, så blir det skalert opp (dette er kjempe lett og GPUen din klager ikke, men det ser også stygt ut), i den større flaten må så lys, fog, teksturer og slikt legges på utifra hightmaps; Dette er litt værre siden det er full oppløsning, ingen forskjell her om blidet det var tegnet på originalt var stort eller lite. Så må all type filtering skje, og bildet må behandles i full oppløsning.

Hva som gjøres i software rendering kan være så forskjellig, men både OpenGL og Direct3D tillater mipmaps. Jeg vet ikke hva du mener med overnevnte, hva mener du mer oppløsning her? Er det oppløsning i framebuffer? (den blir ikke skalert) Er det antall vertices?

 

Den lille delen hvor 3D modellene blir til et statisk bilde er jo der den, men det er også veldig mye annet som skjer, som skjer i full oppløsning, så derfor blir det vesentlig tyngre

Sikter du til den "lille" fragment shaderen og rasterizingen? Denne "lille" delen av pipeline som ofte er den mest tunge å beregne, som muliggjør de aller fleste grafiske effektene?

 

Her er du virkelig på tynn is, vennligst forklar ordentlig hva du mener.

 

Vet ikke om jeg klarer å forklare det til deg hvorfor det går tregere å gjøre mer, men det er kjempe lett å teste. Går utifra du har Photoshop siden du driver med 3D modellering. Åpne et bilde i 50x50. Så legg på et filter fra filter menyen. F.eks blur. Gjør det samme igjen, men strekk bildet sånn at det er 5000x5000 og legg på samme blur. Denne prosessen vil ta lengre tid enn den første, selv om det er samme bilde.

Jeg vet du ønsker å gjøre et poeng her, men ingen grafikkprogrammerer vil betrakte de to bildene som "samme bilde".

 

-----

 

Jeg vil bemerke en viktig ting; høyere oppløsning (med tilstrekkelig AA) med samme geometri gir ikke "bedre grafikk". Grafikere snakker ofte om forholdet mellom pikseler og polygons, siden lav polycount kan bli synligere ved høyere oppløsninger. La meg ta et godt eksempel: Super Mario 64 så mye bedre ut i 640x480 native på en god CRT enn i 1600x1200 i en emulator på PC, først da er det tydelig hvor dårlige teksturer og geometri virkelig er. Grunnen til at jeg sier dette er at utviklere noen ganger bevisst velger å rendre i lavere oppløsning for å skjule mangel på detaljer, og det er faktisk et gyldig resonnement så lenge dette vises native og ikke skaleres opp slik disse utviklerne har "tabbet" seg ut på.

 

Lenke til kommentar

Å herre gud så mye tekst... Får vel svare på det jeg kan svare på.

 

Det er lett å slenge med flotte ord, men du avslører deg ovenfor de som faktisk er innenfor fagfeltet.
Jaha.
Jeg tør påstå at det er mer uvanlig at spill rendres i lavere oppløsning for å skaleres opp til den oppløsningen du har valgt.
Mulig. Jeg skal ikke påstå at jeg har laget alle verdens spill =P Men når du spiller ting med Wine så pleier Direct X output ofte å avsløre mange av triksene spillet bruker, og jeg ser veldig ofte at en nesten-fullskjerm framebuffer blir skrevet til. Og denne blir aldri sent videre til GPUens overlay buffer, slik som de fleste andre effekter i spillet blir. Tror nok det er vanligere enn du tror. Samtidig, i open source prosjektet Dolphin, som emulerer en Wii, kan du se veldig tydelig hvordan en Wii funker. Her er det ikke mulig å tegne til output bufferen. Jeg har også laget homebrew til PS3, og her også måtte var det noe liknende. Måtte gå igjennom en annen buffer først. Veldig godt mulig jeg gjorde PS3 tingen feil -- Det gjorde jeg nok, men jeg fulgte offisiell dokumentasjon. Om du spør på #opengl på freenode er jeg sikker på at de kan forklare forholde mellom internal render resolution og output buffer, og også forstår det bedre enn meg og deg.

 

"Intern" og "ekstern" oppløsning er ikke terminologier som jeg har sett brukt,

Du lager GPU drivere sa du? Intern oppløsning er oppløsningen den simpleste geometrien tegnes på, og ekstern er den siste bufferen som enten vises i programmet eller overlay. Dette er et utrykk som er brukt av flere selvskaper i sammenheng med spill, så da blir det vel standard, siden folk generellt finner på sine egne utrykk. Konseptet finnes i OpenGL

 

men i grafikk så snakker vi om framebuffer i ulik oppløsning som kan settes sammen til en ferdig framebuffer(rendering output). (må ikke forveksles med framebuffer som navn på hele grafikkminnet)
Jeg er vant med at ting er abstraktert mye lengere opp. RAMet på GPUen, minus overlay bufferet er en single framebuffer? Er dette siden alle buffere som tegnes deler plass med hverandre, eller er det dedikerte mengder reservert for forskjellige buffere? Hva er det som bestemmer max mulig render størrelse for en GPU? Er det mest mulig som får plass, eller er det mest mulig som får plass, mens "en reasonable" mengde ting er cachet? Eller er nok plass reservert til at det aldri vil være slik at deler av bilde outputtet på skjermen må slettes?
Multisample/CSAA-varianter bruker fragment samples "tilfeldig" fordelt utover hver piksel.
http://youtu.be/vY_Ry8J_jdw
Når du strekker ut f.eks. 1024x768 til 1920x1080 så er det ikke de overnevnte effektene som brukes, isåfall brukes disse ved rendering til den førstnevnte framebufferen.
Stemmer.
Utglatting av den skalerte teksturen kan gjøres ved bilineær/trilineær filtering med AF.
Eller så kan teksturen tegnes på senere, eller så kan du bruke en av hundre hvis av andre algorythemer for å glatte det ut.
På tidspunktet skaleringen skjer har ikke GPUen tilgang til depth buffer eller originale teksturer.
Nei, men det har jo enda programmet som ber GPUen om å gjøre ting.
Hvilke spill knytter draw distance til oppløsning?
Dette kan være nyttig om et spill kan tegne såpass langt at detaljer ikke er mulig å se avhengig av avstand. Tegne mer på level of detail skalering hvor ting får mindre teksturer, og færre verticies nok det går lengre vekk. Tenkte mer på level of detail skalering hvor ting får mindre teksturer, og færre verticies når det går lengre vekk. Men å knytte draw distance til oppløsning kan være logisk i veldig spesifikke situasjoner. Ikke at jeg noen gang har sett det.
Dette må du forklare. Jeg vil påstå at det er unormalt at spillytelse ikke skalerer med oppløsning.
Og jeg sa ikke noe i mot. Innleget over handlet om alternative grunner for at høyere oppløsning kan minke ytelse enn at modeller må tegnes større.
Sikter du til den "lille" fragment shaderen og rasterizingen? Denne "lille" delen av pipeline som ofte er den mest tunge å beregne, som muliggjør de aller fleste grafiske effektene?

 

Her er du virkelig på tynn is, vennligst forklar ordentlig hva du mener.

Dagens GPUer kjører en veldig høy frekvens, og er utrolig gode på repetative småjobber. Gjøre 3D til et bitmap er tregt, så det er tid å spare ved å gjøre det fort, og heller ha flere effekter.

 

Dette sier jeg utifra min egen forstårelse av encrypterings algorythmer, fremfor research. Om du mener dette ikke gir noen mening er det mulig jeg tar feil.

Jeg vil bemerke en viktig ting; høyere oppløsning (med tilstrekkelig AA) med samme geometri gir ikke "bedre grafikk". Grafikere snakker ofte om forholdet mellom pikseler og polygons, siden lav polycount kan bli synligere ved høyere oppløsninger. La meg ta et godt eksempel: Super Mario 64 så mye bedre ut i 640x480 native på en god CRT enn i 1600x1200 i en emulator på PC, først da er det tydelig hvor dårlige teksturer og geometri virkelig er. Grunnen til at jeg sier dette er at utviklere noen ganger bevisst velger å rendre i lavere oppløsning for å skjule mangel på detaljer, og det er faktisk et gyldig resonnement så lenge dette vises native og ikke skaleres opp slik disse utviklerne har "tabbet" seg ut på.
Dette er jeg uenig med. Liker at ting er skarpe mer enn jeg liker detailjer, men dette er bare en smaks sak.

 

Unnskylder for skrivefeil eller rambling. Klokka er 10 om morgenen.

 

Edit: ^

Endret av Sekai-ichi
Lenke til kommentar

1s / 30 frames = 33.3 ms/frame

Triple buffer betyr tre bilder bufret konstant (100ms), så man får et tidsrom på 33.2 ms med input etter Triple Buffer før neste frame begynner.

Dermed 133.2 ms

Tenkte 60 FPS jeg, alt for sent på natten da jeg skrev, derfor jeg spørr hva du tenker før jeg påstår noe er feil.

Men regnestykket ditt er likevel ikke helt rett, for med trippel bufring er den ene bufferen aktiv til skjermen, én til rendring og én et ferdig bilde, dermed blir latency 2*33 ms, for det siste intervallet er bildet synlig på skjermen. Det hele regnestykket blir da IO-lag(game loop) + 2x33 ms + input-lag(skjerm), som likevel nærmer seg verdien din, og poenget ditt er absolutt gyldig ;)

(nå ser vi bort fra tiden det tar for elektronene å gå gjennom skjermkabelen :p)

 

Hvis ikke konsoller hadde en rimelig inngangspris hadde det vært en mindre grunn for Nvidia/AMD å holde prisene nede på grafikkort, det er tross alt ikke så skrekkelig mye dyrere med PC-gaming enn konsollgaming.

Sikkert bar jeg som er trege, kan du forklare litt bedre? Konsollene er forresten "sponset" i form av spill og ekstrautstyr er dyrere.

 

Selvfølgelig er mye konsollspesifikt, men er du ikke enig i at mye av grafikkteknologien vi har i dag er basert på å omgå begrensninger i regneytelsen (teksturer for eksempel.)

Inngangsprisen for utviklere på konsoll er vel riktig, men samtidig er dette drevet av et mye større marked å selge spillet man lager til.

Ikke helt med på den, gjerne utdyp og spesifiser :) Jeg vil påstå konsollene har gjort mer vondt enn godt etter 2007, siden design av grafikkmotorer for konsollene(SM3) er prinsippielt forskjellig fra "den nye metodikken" som SM4/5 benytter, og vi har vært vitne til hvor lenge spill har slitt med overgangen. (Selv i dag er ikke mange spill spesielt gode på dette) Hadde konsollene vært med på bølgen i stedet for å tviholde på det gamle så hadde utviklerne kunne konsentrert seg om denne teknologien i stedet for å forsøke begge.

(Jeg går ut ifra at du skjønner den prinsippielle forskjellen på måten disse GPUene programmeres, men gi et vink om ikke)

 

-----

 

klipp

Du kan lett sette rendering størelse til lavere en default i et pc spill, ved å velge lavere oppløsning.

Dette er nyttig om du har et dårlig skjermkort. De fleste spill på konsoller gjør dette.

Du misforstår, det er snakk om å rendre lavoppløst til en buffer og så skalere opp til høyere oppløsning i spillet, ikke i skjermen.

 

 

Denne pendlen vil svinge tilbake med neste generasjon konsoller, så tilbake igjen når de blir utdatert.

Markedet er i endring, TVer vil spise av konsollmarkedet for enklere spill. Skal konsoller kunne overleve så må de konkurrere på grafikk, da må de ha kortere sykler eller oppgraderinger underveis.

 

-----

 

Mulig. Jeg skal ikke påstå at jeg har laget alle verdens spill =P Men når du spiller ting med Wine så pleier Direct X output ofte å avsløre mange av triksene spillet bruker, og jeg ser veldig ofte at en nesten-fullskjerm framebuffer blir skrevet til. Og denne blir aldri sent videre til GPUens overlay buffer, slik som de fleste andre effekter i spillet blir. Tror nok det er vanligere enn du tror. Samtidig, i open source prosjektet Dolphin, som emulerer en Wii, kan du se veldig tydelig hvordan en Wii funker. Her er det ikke mulig å tegne til output bufferen. Jeg har også laget homebrew til PS3, og her også måtte var det noe liknende. Måtte gå igjennom en annen buffer først. Veldig godt mulig jeg gjorde PS3 tingen feil -- Det gjorde jeg nok, men jeg fulgte offisiell dokumentasjon. Om du spør på #opengl på freenode er jeg sikker på at de kan forklare forholde mellom internal render resolution og output buffer, og også forstår det bedre enn meg og deg.

Her sa du et nøkkelord; Wine. Dette er ikke representativt for native spill, Wine gjør mange triks for å få "emulert" Direct3D.

 

Hvilket API brukte du til homebrew?

 

Du lager GPU drivere sa du? Intern oppløsning er oppløsningen den simpleste geometrien tegnes på, og ekstern er den siste bufferen som enten vises i programmet eller overlay. Dette er et utrykk som er brukt av flere selvskaper i sammenheng med spill, så da blir det vel standard, siden folk generelt finner på sine egne utrykk. Konseptet finnes i OpenGL

Jeg skriver ikke drivere, vet ikke hvor du har det fra, men jeg tester mye drivere og vet nok om mesa til at jeg kaller det "messy". Det er vel over ti år siden jeg begynte med OpenGL og Direct3D.

 

Jeg er vant med at ting er abstraktert mye lengere opp. RAMet på GPUen, minus overlay bufferet er en single framebuffer? Er dette siden alle buffere som tegnes deler plass med hverandre, eller er det dedikerte mengder reservert for forskjellige buffere? Hva er det som bestemmer max mulig render størrelse for en GPU? Er det mest mulig som får plass, eller er det mest mulig som får plass, mens "en reasonable" mengde ting er cachet? Eller er nok plass reservert til at det aldri vil være slik at deler av bilde outputtet på skjermen må slettes?

En framebuffer i OpenGL-terminologi er en buffer du tegner til (se på det som et slags bilde, eller en tekstur du tegner til). Når du skal rendre til et vindu må du minst ha én framebuffer, denne i oppløsningen til vinduet. (I Linux lager du den med glXChooseFBConfig() ). I Tillegg kan du opprett så mange framebuffers som du ønsker, i ulike former og fasonger, opptil 16384x16384 for mitt GTX 580. GPU-minnet inneholder alle framebufre, teksturer, vertex-data og lignende. Alle strukturer er toerpotenser i dimensjoner, og det er en del overhead. F.eks. 1920x1200 32bpp 8x MSAA tar opp 128 MB + annen overhead alene. Slik "alle" spill fungerer i dag ligger alt i GPU-minnet, derfor er detaljene deretter. Grunnen til dette er kostnadene ved overføring siden GPUen må stoppe rendering ved overføring, og selv om bussen er bred så skal det ikke mye til før mange GPU-sykler er idle. Det er teknisk mulig for driveren å lagre det som ikke får plass i GPU-minne i systemminne, men latency blir fryktelig om ting skal ut og inn herfra for hvert bilde som skal tegnes. Med unntak av Ids megatexture er svaret nei på cache. Var det noe svar på spørsmålene?

 

Eller så kan teksturen tegnes på senere, eller så kan du bruke en av hundre hvis av andre algorythemer for å glatte det ut.

Etter fragment shader? Vennligst forklar.

 

På tidspunktet skaleringen skjer har ikke GPUen tilgang til depth buffer eller originale teksturer.
Nei, men det har jo enda programmet som ber GPUen om å gjøre ting.
Jeg tror du misforstår hva jeg prater om her. Eksempelvis Dark Souls rendrer et komplett skjermbilde til en framebuffer på 1024x768, når du så bruker denne videre har den vært gjennom hele pipeline på GPU og du kopierer den ut som en tekstur som du kan lime på en framebuffer i full størrelse. Når denne framebufferen så går gjennom pipeline er all dybdedata osv. borte.

 

Hvilke spill knytter draw distance til oppløsning?
Dette kan være nyttig om et spill kan tegne såpass langt at detaljer ikke er mulig å se avhengig av avstand. Tegne mer på level of detail skalering hvor ting får mindre teksturer, og færre verticies nok det går lengre vekk. Tenkte mer på level of detail skalering hvor ting får mindre teksturer, og færre verticies når det går lengre vekk. Men å knytte draw distance til oppløsning kan være logisk i veldig spesifikke situasjoner. Ikke at jeg noen gang har sett det.
Det du beskriver handler om LoD-algoritmer, oppløsning slik du bruker det blir feil ordbruk. Teksturer på objekter i det fjerne vil kunne få automatisk lavere mip levels av teksturer, men geometri er mye mer komplisert og må egentlig implementeres manuelt (et område jeg interesserer meg mye for). Jeg husker mange spill tidligere brukte algoritmer som ROAM som var CPU-intense algoritmer som omformet meshes på direkten, men dette var den gangen CPU var relativt sett kraftig og GPUen bare var god på enkel rendring, og mange kall til GPUen dermed gav god utnyttelse (motsatt av SM4+). Jeg husker at tidlige versjoner av WoW hadde noe ROAM-aktig i terrengene sine. Draw distance handler om klipping i view frustum.

 

Dagens GPUer kjører en veldig høy frekvens, og er utrolig gode på repetative småjobber. Gjøre 3D til et bitmap er tregt, så det er tid å spare ved å gjøre det fort, og heller ha flere effekter.

GPUer kjører da strengt tatt på litt over 1/4 av frekvensen til en CPU. Men GPUen er gode på uavhengige regneoppgaver som kan gjøres i parallell.

 

Rasterizing er en enkel oppgave som gjøres i hardware, dybdesortering og culling er derimot litt mer komplisert.

 

BTW, at jeg kommenterer noe betyr ikke at det er feil, kan være en presisering eller at jeg faktisk har lest feil ;)

  • Liker 2
Lenke til kommentar

Hvis ikke konsoller hadde en rimelig inngangspris hadde det vært en mindre grunn for Nvidia/AMD å holde prisene nede på grafikkort, det er tross alt ikke så skrekkelig mye dyrere med PC-gaming enn konsollgaming.

Sikkert bar jeg som er trege, kan du forklare litt bedre? Konsollene er forresten "sponset" i form av spill og ekstrautstyr er dyrere.

Uten konsoller hadde antallet personer som driver med dataspil vært langt mindre. Med færre personer som drev med spill hadde også kraftige grafikkort vært et nisjeprodukt, og prisene hadde dermed holdt seg høye.

 

For at konsollspillere skal i det hele tatt vurdere å kjøpe en PC for å spille på må inngangsprisen være lav nok til at forbrukerne ikke ser prisen og rister på hodet, uten konsoller tror jeg ikke denne motiveringsfaktoren hadde vært til stede i like stor grad.

Selvfølgelig er mye konsollspesifikt, men er du ikke enig i at mye av grafikkteknologien vi har i dag er basert på å omgå begrensninger i regneytelsen (teksturer for eksempel.)

Inngangsprisen for utviklere på konsoll er vel riktig, men samtidig er dette drevet av et mye større marked å selge spillet man lager til.

Ikke helt med på den, gjerne utdyp og spesifiser :) Jeg vil påstå konsollene har gjort mer vondt enn godt etter 2007, siden design av grafikkmotorer for konsollene(SM3) er prinsippielt forskjellig fra "den nye metodikken" som SM4/5 benytter, og vi har vært vitne til hvor lenge spill har slitt med overgangen. (Selv i dag er ikke mange spill spesielt gode på dette) Hadde konsollene vært med på bølgen i stedet for å tviholde på det gamle så hadde utviklerne kunne konsentrert seg om denne teknologien i stedet for å forsøke begge.

(Jeg går ut ifra at du skjønner den prinsippielle forskjellen på måten disse GPUene programmeres, men gi et vink om ikke)

Selvfølgelig er det ingen fordel at GPUene i konsollene har en brøkdel av funksjonaliteten, regnekraften og fleksibiliteten til dagens GPUer, men det betyr jo ikke at utviklingen stopper opp. Jo mer penger det er inne i industrien, jo flere skarpe hoder vil man tiltrekke seg. Jo flere skarpe hoder, jo raskere vil utviklingen være.

 

 

Utviklere tenker stadig ut nye triks for å presse "mer grafikk" ut av den samme maskinvaren, for eksempel FXAA, ferdigtegnede skygger for statisk geometri, teksturer med dybdedetaljer, mer effektiv bruk av polygoner, mer effektive implementeringer av effekter som Bloom, Ambient Occlusion, AA og så videre.

 

Jeg vil ikke si at jeg har stor forståelse for forskjellene mellom SM1/2/3 og SM4/4.1/5, det jeg har forstått er at alle GPUer som støtter SM4 og nyere kjører en form for kompatibilitetsmodus når de kjører SM3-kode og at SM4 nesten er et helt annet språk å skrive i.

Lenke til kommentar

klipp

Du kan lett sette rendering størelse til lavere en default i et pc spill, ved å velge lavere oppløsning.

Dette er nyttig om du har et dårlig skjermkort. De fleste spill på konsoller gjør dette.

Du misforstår, det er snakk om å rendre lavoppløst til en buffer og så skalere opp til høyere oppløsning i spillet, ikke i skjermen.

Er det ikke det du gjør i dag? En LCD skjerm har en fast oppløsning, kjører du en annen må du skalere opp bildet, egentlig litt irelevant om dette skjer på skjermkortet før det sendes eller skjermen, det å skalere en video stream er uansett lett i denne sammenhengen,

Det å konvertere 3D mesh til et 2D objekt før du legger på texture er vel det enkleste av alt i 3D grafikk. Fantes spill som gjorde det på 80 tallet. Neste var å legge på texture som i wolfenstein.

Begynner å bli mer komplisert når du begynner med lyskilder, enda mer når du begynner med specular og displacement osv.

 

Denne pendlen vil svinge tilbake med neste generasjon konsoller, så tilbake igjen når de blir utdatert.

Markedet er i endring, TVer vil spise av konsollmarkedet for enklere spill. Skal konsoller kunne overleve så må de konkurrere på grafikk, da må de ha kortere sykler eller oppgraderinger underveis.

Her har du et poeng dersom de klarer å bruke en standard som android eller windows for smart tv slik at det blir lett å laste inn nye spill.

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...