Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Dlaczego w grach do tej pory nie używa się krzywych?

11.11.2012 00:03
1
krukilis
139
Generał

Dlaczego w grach do tej pory nie używa się krzywych?

Jak to jest, że np. w grach nie stosuje się krzywych? Dla jasności mogę podać przykład koła w samochodzie, które zawsze składa się z w wielokątów (chyba każdy wie jak to wygląda). Jeśli obliczenia na krzywych są zbyt skomplikowane dla procesorów graficznych, to dlaczego nie można zastosować osobnych układów, które miałyby za zadanie właśnie wykonywanie operacji na krzywych. Jak bardzo gry zyskałyby na wyglądzie...

11.11.2012 00:08
2
odpowiedz
Lutz
173
Legend
11.11.2012 00:08
3
odpowiedz
zanonimizowany315478
93
Legend

(chyba każdy wie jak to wygląda)

ja nie wiem, jak?

11.11.2012 01:35
4
odpowiedz
gris
99
Generał

W sumie dobre pytanie, sam sie nad tym zastanawiam.

Lutz --> Co ten link wnosi? Bo nie bardzo rozumiem.

11.11.2012 01:42
kzwwdo
😐
5
odpowiedz
kzwwdo
75
Generał

Zauważyłem ostatnio, że pierścienie w Skyrim są kanciaste. Gra z 2011.

11.11.2012 01:50
szymon_majewski
6
odpowiedz
szymon_majewski
114
Legend

Pewnie dlatego, ze komputer te krzywe i tak zrobi w jakims stopniu kanciaste

11.11.2012 01:55
7
odpowiedz
zanonimizowany631395
120
Legend

I tutaj do akcji wchodzi technologia Unlimited Detail.

http://www.youtube.com/watch?feature=player_embedded&v=00gAbgBu8R4

11.11.2012 02:02
8
odpowiedz
zanonimizowany798819
16
Konsul

Dlaczego w grach do tej pory nie używa się krzywych?

Bo to złe.

11.11.2012 02:32
9
odpowiedz
Lutz
173
Legend

[4] to byla pierwsza komercyjna gra w ktorej modele byly na splinach.

a przynajmniej tak sie reklamowali.

[7] a co to ma do rzeczy?

11.11.2012 02:50
10
odpowiedz
zanonimizowany38189
107
Senator

Cyber Rekin
I tutaj do akcji wchodzi technologia Unlimited Detail.

Potem do akcji wchodzi developer:
D: Poprosze animacje i fizyke.
Unlimited Detail: Oh shit...

Co do pytania z watku - jakie krzywe? Silniki graficzne wyswietlaja poligony. Nie ma fizycznej mozliwosci wyswietlenia krzywej poza zageszczeniem poligonow/punktow do punktu w ktorym widac plynna krawedz. A im wiecej poligonow tym wieksza wymagana moc obliczeniowa.

edit
Lutz
Tia, tylko potem te modele na spline'ach byly tesselowane do poligonow. :)
Engine Messiaha dostawal ogromny model na splinach i tesselowal go na zywca zachowujac detal w zaleznosci od odleglosci od kamery. Problem w tym, ze modele zaczely przypominac galarete. :)

11.11.2012 04:11
😜
11
odpowiedz
Lutz
173
Legend

tesselacja jest wszedzie, nawet na krzywej w illustratorze.

edit (tylko tam to jest raczej interpolacja)

11.11.2012 11:27
12
odpowiedz
zanonimizowany38189
107
Senator

Toć o tym mówię. :)
Mam wrażenie jakby autor wątku oczekiwał magicznych, idealnych krzywych które są płynne dlatego że są krzywymi, a zupełnie pomija aspekt że jakoś to trzeba wyświetlić.

11.11.2012 12:06
Devorels
13
odpowiedz
Devorels
66
The Phenomenal One

ale mi ten Unlimitet Detal narobił smaczka mam nadzieje że wykorzystają te technologie na Xbox 720 i PS4

11.11.2012 12:42
14
odpowiedz
zanonimizowany38189
107
Senator

Nie wykorzystają. To ładnie wygląda na statycznych demoreelach i ma zapewne za zadanie wyciągać kasę od inwestorów. Poza tym jest niepraktyczne, ma ogromną ilość słabych stron (animacja, fizyka) i wcale nie jest nowe - to są po prostu voxele, które kiedyś już próbowano używać (Comanche, Delta Force, Outcast bodajże), ale ograniczenia okazały się zbyt wielkie.

11.11.2012 12:46
piokos
😜
15
odpowiedz
piokos
108
27 do 1

Bo rzeczywistość też opiera się na prostych! Ha!

11.11.2012 12:55
Cichoruski
16
odpowiedz
Cichoruski
58
ufonauta
11.11.2012 13:05
17
odpowiedz
Babiczka
107
Senator
Wideo

tu troche więcej o tej unlimited...

http://www.youtube.com/watch?v=JVB1ayT6Fdc&feature=related

11.11.2012 15:48
18
odpowiedz
krukilis
139
Generał

Mam wrażenie jakby autor wątku oczekiwał magicznych, idealnych krzywych które są płynne dlatego że są krzywymi, a zupełnie pomija aspekt że jakoś to trzeba wyświetlić.

Owszem, oczekuję i nie wiem dlaczego miało by to nie być możliwe? Dlaczego jest problem, aby to wyświetlić? Wyprodukować wyspecjalizowany procesor, który będzie to obsługiwał, dodać do karty i już.

11.11.2012 15:58
raziel88ck
19
odpowiedz
raziel88ck
195
Reaver is the Key!

Chodzi o kasę. Gdyby o nią nie chodziło, to kto sprzedawałby przestarzałe konsole po tylu latach od swojego debiutu?

Wszystko sprowadza się do pieniędzy.

11.11.2012 16:03
PJanek
20
odpowiedz
PJanek
75
Konsul

Bo idealna krzywa składa się z nieskończonej ilości punktów spełniających pewne równanie. Żeby wyświetlić taką krzywą komputer musiałby wyświetlić nieskończoną ilość takich właśnie punktów. Komputery póki co rysują tylko kilka (kilkanaście, kilkaset itp.) punktów które te równanie spełniają i łączą je odcinkami. Można zwiększać wydajność komputerów, co spowoduje, że będą mogły wyświetlić bardziej złożone (składające się z większej ilości odcinków) łamane, ale nigdy takiej idealnej krzywej nie wyświetlą, bo w przypadku idealnej krzywej liczba tych odcinków dąży do nieskończoności.

11.11.2012 16:16
21
odpowiedz
zanonimizowany792388
37
Generał

Owszem, oczekuję i nie wiem dlaczego miało by to nie być możliwe? Dlaczego jest problem, aby to wyświetlić? Wyprodukować wyspecjalizowany procesor, który będzie to obsługiwał, dodać do karty i już.

To jest mozliwe, ale kompletnie nie oplacalne z powodu slabej wydajnosci i niepotrzebnych dodatkowych obliczen. Najlepsza metoda renderingu bylo i jest nadal uzywanie trojkatow, poniewaz na nich wykonuje sie najprosciej i najszybciej wszelkie obliczenia, a przy wspolczesnym sprzecie potrafiacym renderowac dziesiatki milionow trojkatow z przyzwoita predkoscia coraz rzadziej bedzie widac kanciaste powierzchnie.

11.11.2012 16:21
22
odpowiedz
zanonimizowany38189
107
Senator

Panowie powyżej już wszystko wyjaśnili, ale jeszcze tylko dodam, że wyświetlanie krzywych to jedno, natomiast silnik graficzny musi wyświetlić powierzchnie z których obiekt jest zbudowany.

11.11.2012 16:27
eJay
😃
23
odpowiedz
eJay
240
Quaritch

gameplay.pl

11.11.2012 16:34
24
odpowiedz
zanonimizowany792388
37
Generał
Wideo

up: to tylko krzywe do opisu zakrzywien powierzchni, cala geometria byla renderowana juz klasycznie uzywajac trojkatow. Krzywe w grach masowo stosuje sie od ponad 10 lat do tworzenia animacji, tworzenia sciezek dla animacji obiektow/kamer, do tworzenia animacji szkieletowej dla postaci lub tworzenia plynnych przejsc pomiedzy animacjami(blending). W grach samochodowych i pochodnych(Wipeout np) krzywych uzywa sie do tworzenia tras. Wykorzystanie krzywych najlepiej widac w produkcjach demoscenowych (http://www.youtube.com/watch?v=T6MJ80EXovg)

karrde:
Wyświetlane są zawsze poligony. :)

Wymogiem od kilku lat jest uzywanie wylacznie trojkatow, ale to tez polygon ;)

11.11.2012 16:35
graf_0
25
odpowiedz
graf_0
117
Nożownik

Krzywe, okręgi, kule i tym podobne kształty można renderować i używać bez podziału na trójkąty.
Oświetlać też je można i wyświetlać wprost na ekran.
Tyle tylko że takie obiekty dużo trudniej jest oteksturować. Dlatego tego typu obiekty w grach występują rzadko.

11.11.2012 16:36
26
odpowiedz
zanonimizowany38189
107
Senator

Do tworzenia modeli, nie do wyświetlania. Wyświetlane są zawsze poligony. :)

edit
Krzywe, okręgi, kule i tym podobne kształty można renderować i używać bez podziału na trójkąty.

Erm, nie. Tworzyć - tak. Renderować - nie. Cokolwiek stworzysz np. NURBSami i tak zostaje tesselowane na potrzeby renderingu/wyświetlenia.

edit2
cruiser
Toć przecież wiem. :)
Aczkolwiek technicznie rzecz biorąc trójkąt nie jest wielokątem (polygonem). Co nie zmienia faktu że się przez przeszło dekadę używania przyzwyczaiłem do tego słowa. :)

11.11.2012 16:52
graf_0
27
odpowiedz
graf_0
117
Nożownik

Karrde - oczywiście że można oświetlać i renderować krzywe bez tesselacji na wielokąty.
Nie robi się tego ze względów praktycznych, ale programistycznie nie stanowi to problemu.

Ustawiasz scenę, kamerę, i dla każego pixela w zadanej rozdzielczości liczysz kolor. Jeżeli źródła światła są wektorowe, a krzywe obiekty są opisane matematycznie to policzysz kolor każdego punktu osobno.
Tyle że w ten sposób nie oteksturujesz. Chyba że jakieś tekstury proceduralne.

Natomiast masz rację - w praktyce produkcyjnej się tak nigdy nie robi.

11.11.2012 17:05
28
odpowiedz
zanonimizowany38189
107
Senator

Pod względem czysto akademickim masz rację, ale jak sam wspominasz nic się z tym nie da zrobić, a już na pewno nie wykorzystać w grach. :)

11.11.2012 19:15
29
odpowiedz
krukilis
139
Generał

Nie ma fizycznej mozliwosci wyswietlenia krzywej poza zageszczeniem poligonow/punktow

Ok. W takim razie niech to zagęszczenie będzie na tyle duże, aby można było powiedzieć "krzywa" a nie "łamana".

11.11.2012 19:18
Majkel Dżordan
30
odpowiedz
Majkel Dżordan
19
Generał

Ok. W takim razie niech to zagęszczenie będzie na tyle duże, aby można było powiedzieć "krzywa" a nie "łamana".

Ok. To zrób procesor z tak dużą mocą obliczeniową, żeby to ogarnął.

11.11.2012 19:27
31
odpowiedz
zanonimizowany792388
37
Generał

up: takie procki istnieja od wielu lat i w polaczeniu z gpu radza sobie bardzo dobrze z generowaniem dobrze zageszczonych krzywych opartych na polygonach. Przyklad zreszta pokazalem na yt powyzej. Jesli chcesz to przetestowac na swoim sprzecie to prosze bardzo: http://pouet.net/prod.php?which=53647

11.11.2012 20:04
graf_0
32
odpowiedz
graf_0
117
Nożownik

Ok. W takim razie niech to zagęszczenie będzie na tyle duże, aby można było powiedzieć "krzywa" a nie "łamana".
Wystarczy że prosty odcinek będzie mniejszy od jednego pixela przy zadanej rozdzielczości. I krzywa będzie wizualnie krzywa.
A to jest już wyłącznie kwestia osiągalnej wydajności

Forum: Dlaczego w grach do tej pory nie używa się krzywych?