Autor Wątek: jak to wlasciwie jest z tymi konsolami...?  (Przeczytany 14446 razy)

truman

  • Gość
# Styczeń 09, 2007, 15:17:44
no wlasnie. jak to wlasciwie jest z tymi konsolami ze rendering jest tam wykonywany plynnie bez zadnych przyciec? czy sa jakies ograniczenia? bo raczej ciezko mi sobie wyobrazic zeby nawet konsola potrafila wyrenderowac np. z 1 mld wielokatow i nie przyciela sie

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Moriturius

  • Użytkownik

# Styczeń 09, 2007, 15:20:43
w sumie nie znam się na tym ale wydaje mi się, że ograniczenia to jakieś są :)
mi się wydaje że od PCta różni się tym, że nie ma żadnych background tasków i nie musi robić kupy różnych innych rzeczy jakie robi system operacyjny.

ale jak jest na prawdę też się chętnie dowiem ;)

truman

  • Gość
# Styczeń 09, 2007, 15:28:24
no dobra, tylko zeby task'i zabieraly z polowe calej mocy kompa (procek, karta, ram)?... troche ciezko by to nawet bylo zrobic :D

truman

  • Gość
# Styczeń 09, 2007, 15:33:25
Z reguły konsole tylko na starcie są lepsze od bieżących pecetów, po roku, dwóch sytuacja się zmienia.
Wiele różnych czynników wpływa na płynność gier konsolowych:
1. w języku pecetowym płynność = tylko ilość poligonów/s i taka maniera programistyczna się utrwaliła, tymczasem bardzo ważna jest pętla wyświetlająca i synchronizująca
2. stałość platformy, jak robi się grę na konsolę to ma się z góry budżet na tyle a tyle klatek, pecety natomiast rozleniwiają, zawsze mozna powiedzieć - kup lepszą kartę
3. konsola nie wykonuje zadań w tle

Offline puch

  • Użytkownik

# Styczeń 09, 2007, 15:41:12
A owszem - zdarzają się "chrupnięcia" również w grach na konsole. Czy są ograniczenia? Są. Takim ograniczeniem jest moc samej konsoli. Wszystkie konsole są takie same - mają taki sam procesor, pamięc itp. W przypadku Pc, każdy jest inny.  Dlatego rendering na Pc będzie inny na innych komputerach, a rendering na konsoli będzie dokładnie taki sam na każdej konsoli. Developerzy gier na konsole wraz z zakupem dev-kitów dostają cała specyfikację techniczną konsoli. Wiedzą jakie mozliwości ma kosola jeśli chodzi o rendering, czego mogą się po niej spodziewać i ile mogą z niej wyciągnąć. Dlatego już podczas projektowania dostosowują wszystko pod konsolę tak wszystko chodziło pięknie i szybko. I jeżeli chodzi ok - mają pewnośc, że na każdej konsoli na świecie będzie chodzić dokładnie tak samo. W przypadku pecetów nie da się tego przewidzieć tak dokładnie jak na konsoli. I do tego 128 bitowe procesory... ;D

Pozdrawiam

Offline revo

  • Użytkownik

# Styczeń 09, 2007, 15:52:02
maxest - system operacyjny może dawać duże obciążenie - w końcu inne aplikacje też chcą coś robić i w czasie kiedy jest uruchomiona gra nie dostajemy komputera na wyłączność :P

co do konsol - jak to puch powiedział - dokładna specyfikacja pozwala na okiełznanie sprzętu. A fakt, że wszystkie konsole na których będzie odpalana gra są identyczne, sprawia, że można optymalizować pod konkretny sprzęt i jeśli będzie działać na jednej, będzie działać na wszystkich i nie trzeba iść na kompromisy ;)

truman

  • Gość
# Styczeń 09, 2007, 17:37:02
a jak jest z tym dev-kit'ami? bo rozumiem ze dla przecietnego zjadacza chleba nie sa one dostepne i trzeba za nie niezle wybulic. ale co wowczas dostajemy? funkcje poziomu ogl/d3d + f. do obslugi pad'ow, dzwieku, czy moze cos na wyzszym/nizszym poziomie?

Offline Gloggie

  • Użytkownik

# Styczeń 09, 2007, 18:24:21
Dlaczego konsole są szybsze?

Kwestia sprzętowa I
Ten sam procesor w PC będzie wolniejszy niż w konsoli, gdyż każdy PC jest zgodny wstecz praktycznie z 8086. Narzut kompatybilności powoduje, że stosowane są ciągle te same nieoptymalne (bądź w ogóle archaiczne) interfejsy. Nie zdziwiłbym się, gdyby się okazało, że pomimo iż nie ma na płytach dzisiejszych ISA to chipset i tak je obsługuje.
Architektura kolejnej generacja konsol może być w ogóle wzięta z sufitu. Przecież np. gry pisane na PS2, odpalone na PS3 chodzą na emulatorze...

Kwestia sprzętowa II
Karta graficzna w dzisiejszym PC to mimo wszystko dodatek. Komunikacja z procesorem odbywa się niby po dedykowanej magistrali, ale to wciąż wąskie gardło systemu. Po prostu rozwijanie tej architektury na początku było proste - dodawało się zamiast 4 to 8MB pamięci i gry chodziły o 50% szybciej. Dzisiaj są już chyba karty z 1GB? W każdym razie podejście z PC to napakować wszystkie modele do RAMu karty i stamtąd je renderować.
Tymczasem w architekturze konsoli postawiono na ogromną (w porównaniu do PC) przepustowość magistrali, zaś pamięci video jest raptem tyle, żeby zmieściły się dwa bufory ekranu i zostanie kilka MB wolnego. Dzięki temu tekstury i modele mogą być (i muszą) ładowane co ramkę, co pozwala na tworzenie ładnych animacji z teksturami zmienianymi w locie co scenę. Podobne animowanie postaci na karcie graficznej PC wymagało by albo ciągłej wymiany buforów vertexów (wolne), albo wrzucenie gigantycznych statycznych buforów do pamięci.

Kwestia sprzętowa III
Nie wiem czy wszyscy sobie zdają sprawę, ale sygnał PAL to raptem 25 obrazów na sekundę (pomijając przelot). I konsola po prostu nie musi ich więcej renderować. Cała płynność animacji związana jest z rozmyciem obiektów podczas ruchu (i nie mam tu namyśli 'sprzętowego' antyalasingu na TV). Praktycznie nieograniczony dostęp do pamięci video z poziomu procesora pozwala na intensywne korzystanie z efektów operujących na buforze (min. dlatego tak trudno jest emulować PS2 na PC bo lock bufora co ramkę jest skrajnie nieefektywny). Więc takie rozmycie i przezroczystość z poprzedniej ramki nałożone na kolejną dają bardzo ładne efekty (1). W karcie na PC jedyny sposób na 'rozmycie' to zwiększenie ilości renderowanych ramek. Co i tak napotyka na barierę 60Hz w monitorze LCD - wszystko ponad to cieszy 5% światowych graczy z CRT. O ile oczywiście ich sprzęt jest w stanie wyciągnąć ponad te 60 klatek :)

Dygresja (1): Jeżeli w obecnej karcie graficznej praktycznie znajduje się cała geometria sceny i gdy w ciągu kilku lat fizyka będzie w grafice, to nic nie będzie stać na przeszkodzie, aby obiekty na podstawie wektora prędkości nie mogły by być sprzętowo 'blurowane'. Takie rozmycie reklamowało swego czasu VooDoo (5?4? nie pamiętam), oczywiście inną metodą, ale chyba nic z tego nie wyszło. Wtedy te 25 klatek będzie spokojnie wystarczać i na PC.

Offline puch

  • Użytkownik

# Styczeń 09, 2007, 18:40:48
Gloggie:
Cytuj
Nie wiem czy wszyscy sobie zdają sprawę, ale sygnał PAL to raptem 25 obrazów na sekundę

Stała zalecana ilośc obrazów na sekunde to 50 dla systemu pal a 60 dla systemu NTSC. Prrzy czym w przypadku gdy grafika jest zbyt złożona i konsola nie zdąża wyświetlić tych 50 klatek na sekunde, stosuje się wyświetlanie takiej samej klatki dwa razy pod rząd i wtedy mamy te 25 klatek na sekunde razy 2.  :P ;D Ludzkie oko widzi wtedy jeszcze płynny ruch.

Offline Esidar

  • Użytkownik

# Styczeń 09, 2007, 19:21:00
Uwaga będę się czepiać szczegółów :)

Kwestia sprzętowa I
Ten sam procesor w PC będzie wolniejszy niż w konsoli, gdyż każdy PC jest zgodny wstecz praktycznie z 8086

W Xbox jest procesor Intel z chipsetem AMD. To jest praktycznie taka sama konstrukcja co PC. Mimo to gry na Xbox są płynne :)

Cytuj
Komunikacja z procesorem odbywa się niby po dedykowanej magistrali, ale to wciąż wąskie gardło systemu.

W konsolach również jest to "wąskie gardło". Procesory nie mają dostępu do "grafiki" inny niż poprzez magistralę układu graficznego.

Ale podsumowując to nie o to chodzi. Żeby daleko nie szukać to Atari XL/XE miało 64kB, procek 2000x wolniejszy, magistralę pożal się boże a mimo wszystko grafika była płynna :)

Offline revo

  • Użytkownik

# Styczeń 09, 2007, 20:31:26
EDIT: A co do dużej płynności gier na konsole, to pamietajmy, ze rozdzielczość zwykłego obrazu telewizyjnego to jest, z tego co pamietam, około 830 na 625 punktów, czyli zblizona do komputerowej 800x600, czyli wymaga o wiele mniej mocy obliczeniowej od CPU i GPU niz np. 1024x768. No a obraz i tak robi wrażenie z powodu duzych wymiarów ekranu telewizora i jego "całkującego" działania :)

Gry na X360 i PS3 chodzą w podziałkach 1280x720 i 1920x1080 i większość przy 60 fps ;P

Offline HellCat

  • Użytkownik

# Styczeń 09, 2007, 20:53:42
Gloggie:
Cytuj
Nie wiem czy wszyscy sobie zdają sprawę, ale sygnał PAL to raptem 25 obrazów na sekundę

Stała zalecana ilośc obrazów na sekunde to 50 dla systemu pal a 60 dla systemu NTSC. Prrzy czym w przypadku gdy grafika jest zbyt złożona i konsola nie zdąża wyświetlić tych 50 klatek na sekunde, stosuje się wyświetlanie takiej samej klatki dwa razy pod rząd i wtedy mamy te 25 klatek na sekunde razy 2.  :P ;D Ludzkie oko widzi wtedy jeszcze płynny ruch.
Hehehe, Puch, trochę się zapedziłęś :) w PAL jest jednak 25 obrazów a w NTSC 30 :)
A 50 i 60 to są czestotliwości odświeżania pojedyńczego półobrazu, najpierw sa rysowane linie parzyste a w nastepnej ramce linie nieparzyste i dopiero dwa takie półobrazy składaja sie na pojedyńczy pełny obraz (1 klatka) :) czyli 50 półobrazów na sekundę daje 25 pełnych obrazów na sekundę :)

Aaa przypomniało mi się technikum i .. przedmiot hmm urządzenia elektroniczne RTV. A tak przy okazji, to dobrze prawisz !

Dużą zaletą konsol jest również skrócona lista rozkazów procesora. (przynajmniej tak było w konsolach PSX, PS2, GC .. nie jestem pewien jak jest nexGen'ach)



truman

  • Gość
# Styczeń 09, 2007, 20:53:57
Esidar i Revo mają rację. Specyfika sprzętu to szczegóły. Bo wciąż najwazniejszy jest punkt 1 o ktorym wspomniałem - odpowiednie zaprojektowanie/zaprogramowanie gry. Zaprojektowałem kiedyś taką pętlę ale nigdy nie chciało mi się tego w swoich grach implementować. Kup lepszą kartę. 130 zł kosztuje już całkiem niezła ;) Z grubsza ciosając bardzo ważna jest górna granica fps jak i równomierne wyważenie obliczeń. Gry np pc rwą bo wskaźnik fps lata 120, 12, 85, 60, 100, 120...

Offline Lobsang Rampa

  • Użytkownik
    • Global Epidemic

# Styczeń 09, 2007, 21:16:34
EDIT: A co do dużej płynności gier na konsole, to pamietajmy, ze rozdzielczość zwykłego obrazu telewizyjnego to jest, z tego co pamietam, około 830 na 625 punktów, czyli zblizona do komputerowej 800x600, czyli wymaga o wiele mniej mocy obliczeniowej od CPU i GPU niz np. 1024x768. No a obraz i tak robi wrażenie z powodu duzych wymiarów ekranu telewizora i jego "całkującego" działania :)

Gry na X360 i PS3 chodzą w podziałkach 1280x720 i 1920x1080 i większość przy 60 fps ;P
Napisałem "zwykłego obrazu telewizyjnego" :) jakoś odruchowo miałem na mysli PS2 i XBOX-a.
No ale faktycznie, mamy juz nastepne pokolenie konsol :) jednak powiem szczerze, nie wiem jaka jest róznica w wydajności np. Gears of War na zwykłym TV (830x625 i 25fps) i TV High Definition (1920x1080 i 60 fps), czy w tym drugim przypadku gra chodzi bez przycięć ? grał ktoś z Was może w takiej konfiguracji w jakąś gre ?

PS. Przy 1920x1080, maksymalnie jest chyba jednak 30 fps.

Jednak prawdą jest to, że stosuje się wyświetlanie dwóch takich samych ramek pod rząd jeżeli  konsola nie może wyrobić z animacją. Nie jest też do konca tak jak mówisz bo mamy tu doczynienia z nieco innym frameratem niż w przypadku filmów - gdzie obraz jest wyświetlany tak jak mówisz. Konsola poszczególne klatki animacji musi liczyć na bieżąco, a w filmie  wszystkie klatki animacji mamy przygotowane z góry. Telewziory w systemie Pal  mają odświeżanie 50Hz co daje nam 50 ramek na sekunde. Anologicznie 60Hz w systemie NTSC. O ile w wyświetlaniu gotowych filmów, animacji - wyświetlanie następuje tak jak mówisz- najpierw parzyste, później nieparzyste na jeden obraz i wychodzi nam odpowiednio 25ramek w pal i 30 w NTSC, o tyle liczenie ramek animacji i wyświetlanie w realtime przez konsole przebiega w całkowicie inny sposób. A mianowicie  konsola generując obraz wykorzystuje całe 50 klatek animacji w sensie jedna ramka animacji to jeden pełny obraz co daje nam pełne 50 obrazów na sekunde. I w przypadku gdy generowany obrazek ma być starsznie skomplikowany może nastąpic sytuacja w której konsola nie zdąży wygenerować pełne 50 klatek na sekunde. I wtedy można wyświetlić dwie takie same klatki pod rząd co sprawia, że animacja spada do 25 klatek na sekunde. Ponieważ ludzkie oko obraz powyżej 12 klatek na sekunde odbiera jako płynny to bajka. Natomiast, jeżeli konsola będzie miala wygenerować obraz tak skomplikowany, że wygenerowanie jednej ramki obrazu trwa tyle czasu co trzech lub więcej to prędkość animacji drastycznie spadnie do kilkunastu klatek na sekunde co objawia się "chrupnięciem" animacji. Tak generowanie obrazu przebiega w przypadku konsoli gdzie każda klatka jest generowana in realtime ;D

Pozdrawiam

EDIT:Możliwe, że prawie herezje i spalicie mnie na stosie ;D Koniec OT

Puch, standart jest standartem i już, PAL i NTSC opisane są przez odpowiednie normy i kazdy zwyczajny TV jest z nimi zgodny, a w standardzie jest wyswietlanie odpowiednio 25 i 30 pełnych obrazów na sekunde (50 i 60 półobrazów), gdyby konsola generowała obraz inaczej,Twój TV by takiego obrazu nie pokazał :)

EDIT: Inaczej mówiąc zwykły TV nie potrafi sie elastycznie przystosowywac do roznych czestotliwości jak monitor komputerowy, lecz posiada jedyną "słuszną" czestotliwość :)
« Ostatnia zmiana: Styczeń 09, 2007, 21:26:59 wysłana przez Lobsang Rampa »

Offline mr666

  • Użytkownik

# Styczeń 09, 2007, 22:24:37
W Xbox jest procesor Intel z chipsetem AMD. To jest praktycznie taka sama konstrukcja co PC. Mimo to gry na Xbox są płynne :)

Ze niby co :o? Procesor Intel z chipsetem AMD? W x-kostce siedzi Intel Mobile Celeron, a od grafiki i muzyki wynalazki NVIDII. Nico z AMD tam nie ma. Natomiast w X360 jakis trzy rdzeniowiec IBMa jako CPU i GPU od NVIDII.


Chciałbym jeszcze wtracic, ze mozna teoretycznie bylo by osiagnac jeszcze wieksza wydajnosc, gdyby powiekszono ilos RAMu konsol. Ograniczylo by to np. koniecznosc czestego wczytywania lokacji, zwiekszylo by ich szczegolowosc etc.