Co się stało z teksturami generowanymi proceduralnie? [Zamknięte]

23

Pamiętam jakiś czas temu, że tekstury generowane proceduralnie stały się wielką rzeczą, którą zainteresowało wiele osób / firm z pewnymi poważnymi korzyściami (mniejsze wdrożenia, potencjalnie szybsze ładowanie, wyższa jakość, skalowalne tekstury, potencjalnie tańsze w produkcji itp. ).

Z tego, co mogę powiedzieć, szum jest martwy i żadne gry z mojego radaru ich nie używają. Co się stało?

Miałem nadzieję, że zobaczę tekstury proceduralne zgodne z tym, co ma materiał NaturalMotion (powolne, ale stałe przyjmowanie).

Steven Evers
źródło

Odpowiedzi:

14

Największą przeszkodą były narzędzia do tworzenia treści tekstur proceduralnych. Artyści bardzo szybko łączą rzeczy w Photoshopie, a potencjalne korzyści z teksturowania proceduralnego nie przeważają nad wydłużonym czasem tworzenia treści.

Allegorithmic ( http://www.allegorithmic.com/ ) ma kilka interesujących narzędzi, które opracowali, aby uczynić opcje proceduralne bardziej przyjaznymi dla użytkownika. Nie bawiłem się z nimi na tyle, aby naprawdę skomentować ich użyteczność.

wkerslake
źródło
1
Allegorithmic to firma, o której po raz pierwszy usłyszałem, kiedy wybuchła bomba, a na jej liście klientów znalazło się kilku dużych graczy, ale biorąc pod uwagę, że działają od dłuższego czasu, wciąż jest dość mała.
Steven Evers
1
Produkty Substancji Allegorithmic wyglądają NAPRAWDĘ NAPRAWDĘ dobrze .. Jeśli spojrzysz na filmy znalezione tutaj: allegorithmic.com/?PAGE=PRODUCTS.designer
Nailer
4

Utrata kontroli artystycznej i wzrost wielkości opcji przechowywania sprawiają, że jest to trudna sprzedaż. To dodatkowo trzeba przekwalifikować artystów, zatrudniając ich ze względu na to, że byli dobrzy w tradycyjnym teksturowaniu. O ile rozmiar lub unikatowe teksturowanie nie jest tak naprawdę problemem, generalnie niewiele jest chęci pójścia drogą proceduralną.

Kaj
źródło
3

Zasadniczo duże pistolety go nie obsługują, więc nie jest często używany. Były fajne rzeczy (choć trochę stare), takie jak .kkrieger, ale czas ładowania (w tamtych czasach) był naprawdę powolny, ponieważ w czasie ładowania musiał wygenerować wszystkie tekstury.

Możemy zobaczyć coś takiego w silnikach nowej generacji (Unreal 4 itp.), Ale nie sądzę, że zysk w porównaniu do rozwoju jest wystarczająco duży.

Istnieją przykłady w świecie AAA, na przykład Spore generuje proceduralnie tekstury i animacje stworzonych stworzeń.

Lalafur Waage
źródło
3

Tekstury proceduralne mają problem z tym, że dyrektor artystyczny nie może rzetelnie wskazać pracy artysty i powiedzieć „proszę, uczyń tę część trochę bardziej X”. ponieważ system cieniowania proceduralnego może nie obsługiwać X tanio lub wcale.

Na przykład moduł do cieniowania cegieł może obsługiwać czystą brązową cegłę, ale może nie obsługiwać cegły pomalowanej reklamą 80 lat temu i graffiti 10 lat temu. Lub może nie obsługiwać posiadania jednej fioletowej cegły z 1000 brązowych cegieł. Dokładnie w tym jednym miejscu, ponieważ to miejsce odpowiada gustowi dyrektora artystycznego.

Rzeczywista tekstura może oczywiście obsługiwać wszystkie te rzeczy, iw tym sensie prawdziwa tekstura jest lepsza niż tekstura proceduralna.

Tekstura proceduralna sprawuje kontrolę artystyczną dzięki preferencji dla niektórych przypadków użycia w stosunku do innych. Prawdziwa faktura nie wywiera takiej kontroli.

Sprzęt GPU ma jednak silną preferencję do procedury, ponieważ pamięć tekstur jest tak oddalona o wiele cykli od jednostek ALU, które wykonują cieniowanie.

bmcnett
źródło
Trudno mi to przełknąć. Nie jest to ograniczenie tekstur proceduralnych, że cegła nie może mieć innego koloru niż reszta, to ograniczenie technologii wdrażania. Jasne, mógłbym się zgodzić, że w pewnym momencie zbyt szczegółowe określenie przeważałoby nad korzyściami płynącymi z robienia postępów progresywnie, ale to nie wszystko.
Kevin Peno,
Jedna cegła mogłaby być złym przykładem, ale jego inne przykłady się utrzymują. Zdefiniowanie nowego algorytmu dla niewielkiej zmiany „wyczucia” tekstury jest bardzo złożone i czasochłonne, ale bardzo tanie i łatwe dla artysty, aby po prostu dokonał zmiany. Należy pamiętać, że inżynierowie zazwyczaj zarabiają więcej niż artyści, więc czas spędzony na robieniu tego, co artysta może zrobić szybciej, jest po prostu głupiutki.
Sean Middleditch
@SeanMiddleditch, inżynierowie mogą zarabiać więcej niż artyści, ale różnica polega na tym, że po napisaniu kodu inżynier może go ponownie użyć na zawsze, bez żadnych dodatkowych kosztów. Mimo że opracowanie generatora proceduralnego, który można zmodyfikować, może zająć trochę czasu, aż do poziomu pojedynczego klocka - po jego zakończeniu będzie można go swobodnie używać. Jeśli firma płaci artystom za indywidualne zmiany, będzie musiała to robić w przypadku każdego nowego wymogu zmiany, w przeciwieństwie do rozwiązania automatycznego.
Cyclops,
2
@Cyclops: powodzenia w tej magicznej super procedurze, która pozwala wykonać dokładne umyślne szczegóły, jakie potrafi artysta. Z niecierpliwością czekam na przeczytanie waszego przełomowego artykułu badawczego, kiedy zostanie wydany, i ostatecznie udzielenie licencji na waszą artystyczną technologię über. :)
Sean Middleditch
1

cóż, nadal wydaje się to świetnym pomysłem na gry. Ponieważ możesz proceduralnie generować tekstury w locie, aby świat wokół gracza wyglądał bardziej naturalnie. Nie potrzeba dużych danych. Można to z pewnością wykorzystać do zwiększenia nawet rozdzielczości

Jan
źródło
0

Masz typową kompromis pamięci czasowej . Cóż, czy ci się to podoba, czy nie, generowanie procedur zamienia czas procesora na zachowanie pamięci. W rzeczywistości, gdy przechowywanie staje się tańsze, a ludzie zawsze chcą krótszych czasów ładowania, trendem jest odwrócenie - wstępnie wygenerowane lub sfotografowane zasoby zużywają pamięć w zamian za szybkość.

Czy plik jpg ładuje się szybciej niż wersja generowana proceduralnie? Najprawdopodobniej tak . Jeśli plik jpg ma rozmiar 2 MB i załadujesz go raz, dlaczego miałbyś zawracać sobie głowę procedurami? W czasie wykonywania tekstura i tak zajmuje taką samą ilość pamięci RAM (nieskompresowana i załadowana do pamięci GPU)

Bobobobo
źródło
JPEG raczej nie ładuje się szybciej niż większość proceduralnych algorytmów tekstur. Czasy dostępu do dysku znacznie przewyższają czas przetwarzania CPU / GPU, a ponieważ nikt przy zdrowych zmysłach nie używa JPEG do tekstur i używa większych, ale zoptymalizowanych GPU skompresowanych tekstur z wstępnie obliczonymi warstwami mipmap, czas ładowania dysku jest nawet gorszy dla prawdziwych tekstur. Istnieją powody, dla których tekstury proceduralne są do bani (wspomniane w innych odpowiedziach), ale czas ładowania zasadniczo nie jest jedną z nich. Jestem pewien, że istnieją wyjątki od szczególnie skomplikowanych lub nieefektywnych algorytmów.
Sean Middleditch,
Tak, jak .dds. Właśnie użyłem JPG jako przykładu. Chodzi mi o to, że procesowe generowanie fajnie wyglądającego bruku, wody lub drzew w lesie za pomocą systemów L lub cokolwiek zajmuje eony dłużej (ale mieści się w 96k!) Niż tylko ładowanie zawartości na dysk, to nikt nie będzie chciał tego zrobić trasa, aby skrócić czas ładowania.
bobobobo