Game-artowa teczka Damiana. 97198 177

O temacie

Autor Damian94

Zaczęty 31.12.2013 roku

Wyświetleń 97198

Odpowiedzi 177

Damian94

Damian94

Użytkownicy
posty648
Propsy538
ProfesjaGrafik 3D
  • Użytkownicy
Fartuess, może następnym razem wezmę Ciebie jako technical support? :D Tak serio dobrze jest widzieć, że takie osoby też tutaj zaglądają od czasu do czasu ^ ^

A tak btw: las wokół wsi gotowy. Teraz przyszła pora na same budynki. Jakieś konkretne pomysły? Konkretne assety ? 
 
http://damiankijowski.blogspot.com/

http://drawcrowd.com/damian94

3dgraphicpl@gmail.com

https://www.youtube.com/watch?v=UCzyE8EWJhy

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Nie pisałem o shaderach, tylko o materiałach. Tak czy inaczej źródłem problemu jest ilość draw calli. Tutaj jest to fajnie wyjaśnione razem z poradą jak ją zmniejszyć: http://answers.unity3d.com/questions/14578/whats-the-best-way-to-reduce-draw-calls.html
Być może to kwestia dotycząca tylko Unity.

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
No bo jest właśnie jakiś durny overhead na procku przy każdym wywołaniu rysowania. Ale to ma większy związek z ilością obiektów niż materialów. No chyba, że Unity samo sobie załatwia merging żeby minimalizować draw calle, ale szczerze wątpię.
 
Popisuje się ciągle menda jedna...


mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Wat? Jaki iloczyn? Co ty bredzisz?
 
Popisuje się ciągle menda jedna...

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Jeden draw call na jeden materiał na jednym obiekcie. Zresztą, zacytuję linkowany wcześniej artykuł:
Cytuj
In GPU terms though, the different "paint colours" equates to different materials in your scene, and different models which can move independently.
Chyba że źle to rozumiem i wiele oddzielnych obiektów z tym samym materiałem może pójść w jednym draw callu, ale o tym nie słyszałem.

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Ale nie rysujesz każdego możliwego obiektu każdym możliwym matriałem...
 
Popisuje się ciągle menda jedna...


Damian94

Damian94

Użytkownicy
posty648
Propsy538
ProfesjaGrafik 3D
  • Użytkownicy
Pracuje nad KnightFall (na greenlight jest), i gościu który kieruje projektem chce, żebym zrobił system traw/kwiatów/etc. Rzecz w tym, że narzeka na dziwne pixelowanie się trawy w odległości 10-50 m.

Niestety screena z jego trawy nie mam, bo skaszanił mesh strasznie i sie wyświetla na silniku koszmarnie. Więc od razu zacząłem robić swoją trawę:





I jak widać, po 10 m, występuje takie dziwne pixelowanie tej trawy. Ale nie wiem czy wogóle się tym przejmować? I co to moze powodować ? Może jest za gęsty diffuse?



Tutaj też zaczyna się robić szum na trawie. Ale może taki screen dobrałem.

Nie wiem czy jest się tutaj czym przejmować, bo to jego poprawianie jakości rysowania obiektów na odległość strasznie spowalnia prace. Można coś z tym zrobić, z mojej strony? Czy to leży po stronie silnika.

Oczywiście ustawienia renderowania na Very High są ustawione. I wymuszone najwyższe ustawienia AA na karcie GeForce gtx770/
 
http://damiankijowski.blogspot.com/

http://drawcrowd.com/damian94

3dgraphicpl@gmail.com

https://www.youtube.com/watch?v=UCzyE8EWJhy

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
A LODów tam nie ma? Może za dużo masz obiektów trawy? Jak w ogóle robisz trawę? To są obiekty 3D? Spróbuj zmniejszyć liczbę obiektów traw do kilku i sprawdź, czy dalej występuje problem.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Z tego co widzę to nie jest wina tekstury ani szum, tylko kwestia minimalistycznego shadera.
Ze względu na wydajność, roślinność taka jak trawa zwykle jest renderowana z 1-bitową alphą która nie podlega normalnemu filtrowaniu. Jeśli CE daje nad tym kontrolę, spróbuj zmienić shader na używający pełnej alphy lub jakiegoś wygładzającego ją filtrowania, a pixele znikną (ale i fps mogą zauważalnie spaść).

Damian94

Damian94

Użytkownicy
posty648
Propsy538
ProfesjaGrafik 3D
  • Użytkownicy
Np supersampling ? Czy mylę pojęcia.

Jeśli chodzi o meshe, to to są plane'y, jeden plane ma 4 trisy, jest przepołowiony i lekko wygięty.
LoD'y są, tyle, że tylko największa grupa traw ma 1 LoD. Reszta nie wchodzi nawet na 50 trójkątów, wiec nie robiłem LoD'ow do nich.


Jeśli chodzi o kontrole nad alphą to jest tylko jeden suwak, który kontroluje ilość Alphy która zostanie "zaaplikowana" do shadera, jeśli można tak to nazwać.





Pierwszy to 100 % alphy. I to wycina całość testkury.
Drugi to 1 % alphy. I tak jakby mniej tego szumu tam sie robiło. Czyli gdyby zrobić taką alphę, której nie trzeba byłoby podnosić do parudzięsięciu procent, wyglądałaby dobrze po podniesieniu tylko do 1 %, może by to działało poprawnie? Czy źle myślę? Bo inaczej nie można na CE zrobić, dopiero za 2-3 tygodnie będzie update z Supersamplingiem, podobno.

A trzeci screen to moje ustawienia. Tak ustawiłem ilość alphy, bo w sumie też kontroluje gęstość tego co wyświetla na ekranie.

Ale dzisiaj znazlazłem parę screenów z W2, duże screeny, uwaga:

Spoiler





Więc spróbuje tego co Adanos mówił wyżej. Na screenach z W2 jest zaledwie parę tych źdźbeł ( :facepalm: ) trawy. Akuratnie weekend idzie, można potestować.

Sorry jeżeli coś namieszałem, może nie zrozumiałem tego dokładnie, co Avallach powiedziałeś.
 
http://damiankijowski.blogspot.com/

http://drawcrowd.com/damian94

3dgraphicpl@gmail.com

https://www.youtube.com/watch?v=UCzyE8EWJhy

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Game-artowa teczka Damiana.
#92 2014-10-24, 14:30(Ostatnia zmiana: 2014-10-24, 14:43)
1. Antyaliasing działa na krawędzie modelu. Z tego co widzę tekstura większości trawy w W2 nie ma alphy, tylko wypełnia model pojedynczego dźbła. Jego krawędzie są antyaliasowane, więc nie widać żadnych pixelowatych "schodków".

2. Twoja trawa to duże prostokąty z nałożoną teksturą wielu dźbeł otoczonych alphą. Niestety renderowanie wielu obiektów z półprzezroczystą teksturą byłoby "drogie". Dlatego większość silników gdzie się da używa zamiast tego alphy 1-bitowej - czyli zamiast łagodnego przejścia od przezroczystości do nieprzezroczystości, jest gwałtowny "schodek". Antyaliasing nie ma tu nic do roboty bo to nie jest krawędź modelu tylko tekstura. Jedyne co mogłoby to zakamuflować to porządne filtrowanie tekstury. Ale ono też byłoby "drogie" (chociaż o wiele mniej niż wielobitowa alpha), więc często jest używane tylko w bardzo prostej formie (w CE jest to jakby leciutkie rozmycie).



Popatrz w lewy dolny róg ostatniego screena który dałeś to jestem pewien że od razu zajarzysz o co chodzi. Na reszcie screena jest użyta trawa rodzaju 1. Ładna, gładka, żadnych pixeli. A tym rogu z jakiegoś powodu użyli trawy rodzaju 2. Tym razem widać bardzo wyraźnie rozpixelowane krawędzie właśnie za sprawą nie wygładzonej, 1 bitowej alphy.

Dokładnie to samo dzieje się u ciebie, a z daleka (kiedy "pixelowe schodki" stają się relatywnie duże w porównaniu z perspektywicznie malejącymi dźbłami) zaczyna to przypominać pixelowy szum.



Suwak alphy nic ci nie pomoże, on tylko ustala jak "wcześnie" ma się zaczynać schodek. Supersampling prawdopodobnie przynajmniej częściowo zamaskuje problem. Całkowicie usunęłaby go jedynie zmiana shadera trawy na nieco "cięższy".

Damian94

Damian94

Użytkownicy
posty648
Propsy538
ProfesjaGrafik 3D
  • Użytkownicy

Damian94

Game-artowa teczka Damiana.
#93 2014-10-25, 00:02(Ostatnia zmiana: 2014-10-25, 01:00)
Tylko shadera innego nie mogę użyć.  To nie jest UE 4 :D a wypada się przenieść.  Av, ty to potrafisz wytłumaczyć :ok:

Trzeba zajrzeć do Redkita zatem. :ok:

@faktycznie Avallach, jest tak jak mówisz. Każde źdźbło trawy jest osobnym meshem.

God damnit! jakim cudem to płynnie  działa ? Sprawdzałem teraz w Redkicie, jedna taka kępka trawy, to ~1500 tris, i 4 textury.



Jakim cudem to płynnie działa ?
 
http://damiankijowski.blogspot.com/

http://drawcrowd.com/damian94

3dgraphicpl@gmail.com

https://www.youtube.com/watch?v=UCzyE8EWJhy

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
No wiesz, dziwne by było gdyby taki obiekt złożony z 1368 trójkątów nie działal. :P Nie porównuj jednego obiektu z RedKita do całej sceny z CE.

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Z tego co widzę to nie jest wina tekstury ani szum, tylko kwestia minimalistycznego shadera.
Ze względu na wydajność, roślinność taka jak trawa zwykle jest renderowana z 1-bitową alphą która nie podlega normalnemu filtrowaniu. Jeśli CE daje nad tym kontrolę, spróbuj zmienić shader na używający pełnej alphy lub jakiegoś wygładzającego ją filtrowania, a pixele znikną (ale i fps mogą zauważalnie spaść).

Ok pełna alpha ale nadal alpha testingiem to robić a nie alpha blendingiem (znaczy nadal robić maską, a nie przezroczystością). Alpha blending wymaga od silnika sortowania kolejności wyświetlania obiektów co przy takiej ilości trawy po prostu zarżnęłoby silnik.
 
Popisuje się ciągle menda jedna...

Damian94

Damian94

Użytkownicy
posty648
Propsy538
ProfesjaGrafik 3D
  • Użytkownicy
No wiesz, dziwne by było gdyby taki obiekt złożony z 1368 trójkątów nie działal. :P Nie porównuj jednego obiektu z RedKita do całej sceny z CE.

Nie chodzi mi o jeden obiekt, tylko jak porozstawiają to na scenie, to dosyć dużo trójkątów się uzbiera. I tu wraca wcześniejsza dyskusja  :P Ale ok, testy czas zacząć :D  :ok:
 
http://damiankijowski.blogspot.com/

http://drawcrowd.com/damian94

3dgraphicpl@gmail.com

https://www.youtube.com/watch?v=UCzyE8EWJhy

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Może instancing jakiś pod spodem nakurzają.
 
Popisuje się ciągle menda jedna...

Damian94

Damian94

Użytkownicy
posty648
Propsy538
ProfesjaGrafik 3D
  • Użytkownicy
Skończone. Będzie masa screenów.

Co lepsze chcę teraz zrobić coś na rozmiar Novigradu :D Ale to później. Może wkońcu zacznę robić mniejsze assety. (albo następne enviro, huehuhuheuhe )

Naprawdę mase ciekawych concpptów mam w folderze, tylko teraz pozostaje wybór silnika. Chcę zostać przy CE, jest naprawdę swietny ale duzo mu brakuje do UE 4, a Crytek leje z góry na community. A UE 4 trzeba się uczyć od nowa :D

Więc powrócę tuatj z nowym Wipem, kto wie jaki to będzie

Peace \m/

PS. sorry za dużo screenów, duży projekt = duża dokumentacja. A wideo tylko w takiej jakości bo mieszkam na pustyni i upload 7 GB flmu na YT zajmie cały rok. (nie no, wyszło 2000 min -_- , nie będę tyle czekać, i tak, mieszkam na pustyni). Poza tym CE zaczął się dławić i gotować mój komputer jak włączyłem FullScreen'a w opcjach Launchera.)

Enjoy

https://www.youtube.com/watch?v=YEaosep9vDg

Spoiler














Post połączony: 2014-11-03, 20:14


















Post połączony: 2014-11-03, 20:14








[/
Spoiler
 
http://damiankijowski.blogspot.com/

http://drawcrowd.com/damian94

3dgraphicpl@gmail.com

https://www.youtube.com/watch?v=UCzyE8EWJhy

Fabio

Fabio

The Modders
posty3477
Propsy2157
ProfesjaSkrypter
  • The Modders
Zajebiste :ok:


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry