Jak mogę uzyskać trawę PagedGeometry, aby otrzymywać cienie?

23

Zmieniłem Ogre3D (v1.7) i korzystałem z PagedGeometry . Staram się stworzyć prostą scenę z ukształtowaniem terenu, drzewami i trawą. W skrócie, chciałbym osiągnąć taki efekt w Ogre:

Cienie odbierające trawę

Przezroczyste / wycinane cienie są implementowane w demach PagedGeometry, ale nie mogę znaleźć żadnego rozwiązania, jak prawidłowo rzucać cienie na trawę, jak w powyższym przykładzie.

Jakiej techniki mogę użyć, aby to osiągnąć?

scottyp
źródło
1
Jakiego rodzaju materiału / shadera używa trawa? Aby cieniowanie działało, moduł cieniujący do trawy musi czytać mapy cieni i wykonywać obliczenia cieni w oparciu o to ...
VB_overflow
1
Doceń swój wkład w ten @VB_overflow, ale komentarz z rzeczywistym rozwiązaniem kodu lub przykładem naprawdę by pomógł. W każdym razie przeszedłem na lepszy silnik z wbudowaną funkcjonalnością oferującą tę funkcję. Być może pomogłoby to innym entuzjastom ogrów, którzy są ze mną na tej samej łodzi, jak pokazano tutaj w komentarzach.
scottyp
1
Jeśli są to billboardy, mają tendencję do zachowywania się nieco funky, gdy próbujesz na nich cieniować piksel. Możesz użyć trawnika, który wygląda jak jakiś podciągnięty wydłużony i skręcony samolot. Tekstura sprawi, że będzie wyglądać jak trawa. Następnie siatka powinna być w stanie odbierać mapy cienia.
bimber
Czy ten post opisuje (i rozwiązuje) problem? ogre3d.org/addonforums/14/t-8945.html
Tim Holt

Odpowiedzi:

3

To nie jest moja odpowiedź, ale odniesienie do tego, co według mnie jest rozwiązaniem tego pytania.

Post, do którego odsyłam poniżej (zatytułowany „drzewa i cienie geometrii stronicowanej”) bezpośrednio opisuje rozwiązanie problemu umieszczania cieni drzew na trawie z geometrią stronicowania. Dotyczy to w szczególności wywołania m_sceneMgr-> setShadowTechnique (SHADOWTYPE_TEXTURE_ADDITIVE) za pomocą niestandardowego modułu cieniującego dla cieni.

https://www.ogre3d.org/addonforums/14/t-8945.html lub wersja Archive.org .

Ten samouczek odwołuje się również do geometrii stronicowania, drzew, trawy i cieni. Stosuje lightmap do trawy, użyj funkcji setColorMap ().

https://ogrecave.github.io/ogre-pagedgeometry/tut3.html lub wersja Archive.org . W szczególności stosuje lightmap do trawy, użyj funkcji setColorMap ().

Tim Holt
źródło
Ta odpowiedź byłaby lepsza, jeśli weźmiesz odpowiednie informacje z witryn, do których prowadzisz link, i podsumujesz je w treści samej odpowiedzi. W obecnej sytuacji, jeśli linki kiedykolwiek się zepsują, odpowiedź zostanie całkowicie pozbawiona przydatnych informacji.
DMGregory
1
Zastanawiałem się nad zawartością postów, ale nie chciałem po prostu powielać czyichś treści i nazywać to odpowiedzią. Rozwiązania są również nieco obciążone kodem, a cytowanie ich wymagałoby dużej ilości skopiowanych treści, co znowu nie jest moim dziełem. Zastanawiałem się również nad zainstalowaniem Ogra i próbą jego zduplikowania, ale to jest dużo pracy dla kilku punktów powtórzeń. Niezależnie od tego, uważam, że te linki pomogłyby OP i każdemu, kto próbował rozwiązać te problemy. Chyba, żeby zapobiec martwym linkom. Mogę linkować do wersji archive.org ...
Tim Holt