Wpis z mikrobloga

kurczę #pasta wyszła, ale taki był zamiar.

Dawno nie programowałem, ale coś mi się zachciało zrobić program do zapuszczania brody w komputerze, ogólnie na początek zabrałem się za OpenGL ES 3.1 na tablecie (na razie na javie, bo nie chciało mi się ndk instalować). Kolor jest, trójkącik też, kręci się, mogę go wymacierzować żeby się nie rozciągał na podłużnym ekranie czy żeby z niego zrobić figurę przestrzenną. No więc wziąłem się za właściwe kodzenie.

Już mam pełno śmieci w kodzie typu jedna wartość jest zwracana przez funkcję, a drugą funkcja ta modyfikuje bezpośrednio, bo potrzebowałem żeby funkcja zostawiła po sobie dwie wartości a nie chciałem przerabiać wszystkich odwołań.. i tego typu rzeczy.

NIe wspomnę, że żeby broda renderowana w sposób realistyczny (każdy włosek z osobna), potrzebowałaby z 256x SSAA żeby jakoś wyglądać, bo tyle szczegółów w jednym pixelu. Do tego jakaś teselacja żeby można ją było pogłaskać, pociągnąć, podmuchać, nastroszyć itd. Ale ma być to broda, jak najwierniejsza rekonstrukcja, a nie jakaś tekstura, zdjęcie brody. O ile filtry wykorzystujące 256 próbek nie powinny stanowić problemy gdy w tle nie renderują się żadne stare baby, wieże, bitwy ani inne potwory, to jakby pomyśleć, że trzeba będzie każdą klatkę renderować po kawałkach 128 na 128 pixeli za każdym przebiegiem - zwiecha zwietrzona.

No ale trzeba iść dalej, jak się uda to może kupię se lepszego tableta za kilka lat jak jakieś nowinki techniczne będą, i może spróbuję włosy na głowie wyrenderować, bo one mają większe wymagania.

Jak już mechanizm będzie działać, to może z nudów nałożę go na swoją twarz. Wprawdzie nie zamierzam ścinać swojej prawdziwej brody tylko po to żeby se zrobić skan 3D, ale w Elder Scrolls Online powinienem mieć postać która wygląda jak ja 10 lat temu jak jeszcze nie miałem brody (bo nie było w grze żadnej ciekawej brody która by mi pasowała).

Potem się zacznę bawić w robienie loków, warkoczyków, albo taka długa broda (dłuższa od ciała) przewiązana dookoła głowy, może gdzieś eksperymentalnie dam krótszą, gdzieś nad oczami podmienię skórę na brodatą czy coś żeby nie kolidowała z tym co już mam, i zacznę eksperymentować z gęsią skórką. Albo se porobię elfickie zawijasy przy uszach z bokobrodów... cóż, najpierw trzeba napisać podstawowy mechanizm. A na razie męczę się z tym jak by wyrenderować prostopadłościan mając jego wymiary, bez zaśmiecania kodu danymi o każdym wierzchołku z osobna... tak więc przede mną długa droga.

#opengl #grafika3d #programowanie
  • 14
  • Odpowiedz
@alfasamiec: Myślisz o zaplątywaniu brody a na razie jesteś na etapie prostopadłościanu... o stary.
Wiesz, ze będziesz musiał napisać particle simulator? I to porządny? Tworzyć krzywe za pomocą cząsteczek a potem z tych krzywych robić figury? zrobić jakiś porządny mechanizm cieniowania, żeby nie wyglądało jak kupa?
Jesteś całkowicie pewien, ze podołasz? To jest poziom pracy doktorskiej.
Plus real time włosy nie oparte na teksturze? Wątpię.
  • Odpowiedz
@Naxster: no ja to chciałem robić trójkątami o mikroskopijnej średnicy i stąd ten SSAAx256, a krzywe przez teselację. No chybaże chodzi o fizykę to już gorsze, chyba trzeba będzie jakiś serwer dedykowany dokupić XD.

A real time włosy nie oparte na teksturze to pisałem że może za 10 lat jak technika się posunie, na razie tylko broda i to taki real time że z 10 fps wystarczy (tak czy tak powyżej
  • Odpowiedz
@Naxster: a co do cieniowania to se walnę jakieś normalmapy czy cuś i do tego ambient + diffuse + specular, w mikroskali i tak nie będzie dużej różnicy. Gorzej z shadowmapami z każdego włoska... XD
  • Odpowiedz
@Naxster: mówię o takiej długiej że z Katowic do Warszawy wszy mogą przejść bez stąpania po ziemi.

A właśnie w takiej mikroskali co liczy średnią z 256 próbek to akurat Blinn-Phong może być najlepszy...
  • Odpowiedz
@alfasamiec: to jest bez sensu, tesselacja nie rozwiązuje magicznie problemu ilości punktów a jedynie ich generacji. Żeby zrobić długi włos z trójkąta tesselacją to trzeba by jakichś dziwnych tekstur. Lepiej już zrobić kilkustopniowy walec od początku. Można wzorem opisać jak spada jego średnica, wybierać sobie ile razy ma być przeciety...
  • Odpowiedz
@alfasamiec: No to o tym mówię od początku XD Tylko nie rozumiałem o co ci chodzi z tymi mikro trójkątami, myślałem, ze jeden włos - jeden trójkąt. Przy czym na włos nie potrzeba wielu zazwyczaj cztery zgięcia a obwód tak z 6 punktów i jest git
  • Odpowiedz