Wpis z mikrobloga

@PrzemoVi: Postuje tutaj bo Wykop coś zaczął świrować z postami i nie mogę odpisać Ci :/. Chodzi oto, że Valve nie ma stworzonego prowdopodobnie edytora materiałów. Edytor materiałów to narządzie dla grafików żeby nie musieli znać się na programowaniu programów wykonywanych na kartach graficznych. Dzięki temu grafik stworzy sobie jeden graf za pomoca edytora -> silnik przerobi go na program i może wszystkim broniom w CSGO mu go dać. Następnie dla każdej broni grafik tworzy material instance, gdzie są zawarte informacje o teksturze i parametrach oświetlenia. Tak to działa we Wiedźminie, czy Cyberpunku: edytor materiału (https://www.youtube.com/watch?v=HhaVU20JENU), edycja material instance (https://youtu.be/9vEfH9SJ9mY?t=2309).
Niestety Valve takiego edytora nie posiada przez co nie mogą spakować do jednej tekstury kilku atrybutów dla oświetlenia w łatwy sposób (który potem silnik sobie sam skompiluje). Przykładowo w teksturze normalnej (r, g) można w pozostałych dwóch kanałach ukryć smothness i specular occulusion jak to na przykład robi far cry 5: https://twvideo01.ubm-us.net/o1/vault/gdc2018/presentations/TerrainRenderingFarCry5.pdf (strona 17).
#csgo #programowanie #opengl #wiedzmin3
  • 10
@Niraya Ja zwykle się staram ręcznie pisać jeden shader GLSL, którego działanie zmienia się jak się zmieniają uniformy. Oczywiście shaderów jest kilka bo jeszcze są te od gui, słońca, flar itd. Do obiektów załączam 2 zestawy tekstur, 1 zwykły a 2 to zestaw różnych danych schowanych w kanałach takich jak ambient lighting, efekt flary/świecenia obiektu, specular map, i podobne. Kanałów jest 4 więc na styk. Z grafikami nie ma problemu się dogadać
@PrzemoVi: A to polecam stworzyć jakbyście kiedyś kodzili większy projekt gdzie różne obikety 3d mają różne shadery -> też czasami można coś przez to optymalizować już bez dotykania silnika. Albo jakbyś chciał zrobić ten fajny efekt znikania ubrania triss jak we wieśku 2 gdzie na chwilę podmieniony jest jej model ubrania z innym shaderem który bawi się translucency :D
Ooo i jeszcze fajnie we wiesku 3 z tymi materiałami pamiętam też
@Niraya Kodzimy spory projekt :) Ale czas operacyjny to minimum 3 lata więc na razie nic nigdzie nie wspominam :D Spoko pomysł z przerzuceniem zadania rozpłynięcia się obiektów po wjechaniu w nie kamerą na gpu, pewnie zastosuje :v Wiele shaderów też będzie możliwe, ale chcę tego uniknąć gdzie się da bo starszym sterownikom #!$%@? jak się szybko je zmienia, a jednym z założeń jest to żeby było 60 fps na średnich na
@Niraya Szybkie i konkretne optymalizacje wymierzone w konkretne układy. Tu zyskasz 1ms, tam 2ms, gdzie indziej 1ms i w ten sposób zbierasz klatki z ziemi :) Przepisanie algorytmów sin/cos ze zmniejszoną dokładnością dało 10 klatek na platformach typu FX/2gen intela. Akceleratory nienawidzą zabawy z wirtualnymi Framebufferami i dużą ilością obiektów, ale często jak masz akcelerator to masz też mocne cpu i szybką komunikację z akceleratorem więc nie renderuję obiektów których nie widać
@PrzemoVi: A to już nie moja bajka zupełnie. Ja głównie edytorami się zajmuje i teraz renderowaniem terenu, a później ocenu i wody. A właściwie ostatnio to przez większość czasu pisaniem unit testów w celu sprawdzenia czy compute shader dobrze wszystko liczy :P
Jeżeli chodzi o occlusion culling to fajnie to w AC Unity Ubisoft zrobił, ale z tego co widziałam to jest parę fajnych artykułów, gdzie ktoś to liczy już nawet
@Niraya To będzie mega zależne od platformy. Czasami ludzie kupują dowalone procesory i słabe grafiki lub odwrotnie więc warto zostawić możliwość wyboru czy nacisk na cpu czy gpu.