Skocz do zawartości

Nad czym aktualnie pracujesz?


ANtY

Rekomendowane odpowiedzi

@I am Lord Jasne, w czołgach używam właśnie metody "surface" żeby połączyć elementy otoczenia w teksturę, ale w Godocie działa to odrobinę inaczej. Viewporty w Godot to nic innego jak OpenGL'owe Framebuffery, ale aktualizują się dopiero po wyświetleniu kolejnej klatki, nie da się rysować bezpośrednio na Viewportach ze względu na VisualServer, który odpowiedzialny jest za interpretowanie komend rysowania np. VisualServer.canvas_item_add_line jest podpięte bezpośrednio pod CanvasItem.draw_line (Node2D, Sprite etc.), dotyczy to wszystkich funkcji rysowania. Dlatego Godot też udostępnia taką funkcję jak VisualServer.request_frame_drawn_callback, dzięki niej można nasłuchiwać, kiedy Viewporty zostały zaktualizowane. Żeby nie aktualizować Viewporta co klatkę, polecam ustawić parametr Viewport.render_target_update_mode na UPDATE_ONCE (ten parametr potem jest ustawiany na UPDATE_DISABLED przez VisualServer, także każda kolejna aktualizacja wymaga przełączenie tego parametru). Zalecałbym też przełączenie tej flagi Viewport.render_target_v_flip na True, bo standardowo obraz będzie odwrócony. Nie zapomnij też o parametrze Viewport.size.

 

Dodatkowo wspomnę, że Viewport.get_texture zwraca referencję na teksturę i wystarczy pobrać teksturę jednorazowo np. w funkcji _ready i narysować ją raz w metodzie _draw bez wywoływania metody update. Ale nie można wtedy usunąć Viewporta, bo usunie nam też teksturę.

 

Jakbyś chciał "ukryć" Node'y z drzewa sceny nie musząc dodawać Viewport node'ów, możesz użyć bezpośrednio metod z VisualServer tj. VisualServer.viewport_createVisualServer.viewport_set_activeVisualServer.viewport_get_textureVisualServer.viewport_attach_canvasVisualServer.canvas_createVisualServer.canvas_item_set_parentVisualServer.free_rid itd. np. do obsługi roboczych Viewportów.

 

Jeszcze wspomnę o OpenGL ES na mobilkach - Texture.get_data nie działa ze względu na limity samego OpenGL ES, które uniemożliwiają przepływu danych z GPU do RAM, także nie da się pobrać pikseli z Viewporta czy jakiejkolwiek tekstury do zmiennej, natomiast na desktopach działa bez problemu.

Odnośnik do komentarza
Udostępnij na innych stronach

24 minuty temu, I am Lord napisał:

kurcze, wygląda na trudne coś jednak nic dziwnego że sam na to nie wpadłem. 

 

Nie jest to tak trudne, po prostu wymaga trochę innego myślenia niż GM-owe surface'y, podsyłam też niewielki przykład:

render-target.zip

 

Nie jestem pewien, czy z forum działa pobieranie plików, ale wgrałem też na inny hosting:
https://www23.zippyshare.com/v/xXpprq1O/file.html

 

- LPM "niszczy" surface

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dnia 11/20/2018 o 21:27, Chell napisał:

mam nadzieje na Fuaru 2 B)

 

Ta gra to.. Puru.

Ale tak, ciągle będzie "purowata" jeśli chodzi o historię i nasze zadania.

Walka to bardzo podrasowana wersja tego co było w Dragon Quest IX. System walki powstawał prawie rok :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Kinecta 2.0 można dostać za jakieś 250zł, albo nawet taniej, chociaż nie go już nie produkują. Reszta to jakiś program Delicode NiMate 2 i tutorial gościa który to fajnie rozkminił.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...
  • Filar Społeczności

Mnóstwo ogarniania rozmaitych przykładów ale w końcu coś zaczyna mi wychodzić. Łódką można na razie sterować i sprawić żeby zaczęła tonąć/przewróciła się na bok.

Napisałem też w końcu własnoręcznie vertex shader, czyli to co widać na wodzie. Blenduję dwie tekstury w zależności od wysokości vertexa i jednej z nich dodatkowo zmieniam pozycję mapy uv żeby się poruszała lekko w kierunku fali. Teksturki na razie trochę robocze, chyba dodam też jaśniejsze szczyty fali.

 

PyrKr8R.gif

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...