Autor Wątek: [C++ i Allegro] Przezroczystosc i cienie.  (Przeczytany 5194 razy)

Offline MatiSSJ

  • Użytkownik

# Czerwiec 30, 2009, 11:54:57
Siemka. Tworzac silnik 2D, nie moze tam zabraknac przezroczystosci i cieni, wiec moje pytania to:
1. Jak mozna osiagnac bitmape np.: w polowie przezroczysta nie uzywajac poloczenia z OpenGL, czyli samym allegro?
2. Jak zrobic cienie? Jedyny sposob jaki wymyslilem to miec cienie narysowane w pliku graficznym xD, jakies pomysly?

Z gory THX.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline vax

  • Użytkownik

# Czerwiec 30, 2009, 12:26:55
1)

Kod: (cpp) [Zaznacz]
set_trans_blender(0,0,0, x);   //x - liczba z przedzialu 0-255, im wieksza tym bardziej widoczna
draw_trans_sprite(bufor,BITMAPA,x,y);   //tutaj za x y podstaw sobie wspolrzedne bitmapy, a zamiast BITMAPA podstaw nazwe swojej.


Pozdrawiam.

Offline MatiSSJ

  • Użytkownik

# Czerwiec 30, 2009, 12:51:05
A da sie wyswietlic blitem? Bo draw_sprite to nie zabardzo spelnia wszystkie moje wymogi :P.

Offline rm-f

  • Użytkownik
    • Tu trolluje

# Czerwiec 30, 2009, 13:09:45
A da sie wyswietlic blitem? Bo draw_sprite to nie zabardzo spelnia wszystkie moje wymogi :P.
Sczerze, odpuść sobie allegro jeśli masz zamiar robić ten "silnik 2D", musiałbyś w nim zaimplementować rysowanie tylko tego co się zmieniło, z racji iź allegro nie używa karty graficznej (nawet SDL to potrafi). Połączenie Allegro/SDL+OGL jest dużo szybsze i równie proste w napisaniu.


Odp. na drugie pytanie:
http://www.google.pl/search?client=opera&rls=en&q=2d+shadows&sourceid=opera&ie=utf-8&oe=utf-8
PIERWSZY LINK W GOOGLE! KUŹWA!
Używaj wyszukiwarki internetowej ;)
« Ostatnia zmiana: Czerwiec 30, 2009, 13:29:24 wysłana przez rm-f »

Offline dynax

  • Użytkownik

# Czerwiec 30, 2009, 14:29:48
Użyj biblioteki AllegroGL. To połączenie allegro i OpenGL (OpenGL do renderingu a allegro do inputu i tak dalej). Moim zdanie działa cudnie :)

Offline Liosan

  • Redaktor

# Czerwiec 30, 2009, 14:55:07
Co do cieni, to może zainteresuje Cię nasza dyskusja: http://www.assembla.com/spaces/gdpl/tickets/130. Jest też druga: http://www.assembla.com/spaces/gdpl/tickets/139-%C5%9Awiat%C5%82o-(bump-normal-parallax-mapping-), ale tego w allegro nie zrobisz :)

Liosan

Offline C'mons

  • Użytkownik

# Czerwiec 30, 2009, 16:35:33
Jeżeli masz wysokie oczekiwania to odpuść sobie allegro a przynajmniej jego starą wersje. Od niedawna jest już nowa wersja Allegro5 ( Na chwilę obecną 4.9.11 ). Renderowanie czyli rysowanie śmiga, jest blending(przeźroczystość). Opłaca się choć dużo czasu zajmie ci pewnie zmiana twojego silnika na tą wersja allegro. Aktualnie piszę kurs allegro5 dwie części już wrzuciłem na gamedev ale jeszcze nie zostały sprawdzone/zatwierdzone.
« Ostatnia zmiana: Czerwiec 30, 2009, 18:18:49 wysłana przez C'mons »

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Czerwiec 30, 2009, 17:01:38
Jest też druga: http://www.assembla.com/spaces/gdpl/tickets/139-%C5%9Awiat%C5%82o-(bump-normal-parallax-mapping-), ale tego w allegro nie zrobisz :)
Kurde, szkoda że wcześniej nie wiedziałem, że tego nie da się zrobić, bo swego czasu to zrobiłem. ;)

wine

  • Gość
# Czerwiec 30, 2009, 18:38:14
Kurde, szkoda że wcześniej nie wiedziałem, że tego nie da się zrobić, bo swego czasu to zrobiłem. ;)
mieszałeś w kolorach bitmapy? tzn. wyznaczałeś okrąg w pikselach i "rozświetlałeś" te części najbliżej? napisz trochę więcej ... imo może wprowadzę to do mojego rendera (co prawda w OGL'u) do renderowania scen statycznych (np. ekrany ładowania itd.)

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Czerwiec 30, 2009, 18:50:17
mieszałeś w kolorach bitmapy? tzn. wyznaczałeś okrąg w pikselach i "rozświetlałeś" te części najbliżej? napisz trochę więcej ... imo może wprowadzę to do mojego rendera (co prawda w OGL'u) do renderowania scen statycznych (np. ekrany ładowania itd.)
Klasyczny environment bump mapping, tyle że w postaci 2D. Jak masz OpenGL, to lepiej zrób to normalnie na normalmapach. :)

Offline MatiSSJ

  • Użytkownik

# Czerwiec 30, 2009, 22:17:13
No i w gruncie rzeczy nie wiem co robic :P, skonczyc silnik na tym poziomie bez cieni, czy moze zaczac pisac od nowa na czyms innym, to w koncu co polecacie?
-DirectX
-SDL
-Allegro5
?

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Czerwiec 30, 2009, 22:22:55
-DirectX
-SDL
-Allegro5
?
Zdecydowanie DirectX (a dokładniej Direct3D).

Offline MatiSSJ

  • Użytkownik

# Czerwiec 30, 2009, 22:27:41
Dobra, to moze inaczej, skoncze silniczek i biore sie za DirectX :D.

Offline C'mons

  • Użytkownik

# Czerwiec 30, 2009, 23:06:18
Jeżeli 2D to po co się męczyć z DirectX? Przecież allegro5 opiera się właśnie na nim ( do wyboru OpenGL lub DirectX ) a sam udostępnia wygodny interfejs. Właśnie ukazały się na stronie pierwsze dwie części mojego kursu. Za jakiś czas będzie więcej.

Nie chcę tu w jakiś sposób promować allegro5 ale jeśli chodzi o 2D to według mnie jest to dobry wybór.

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Czerwiec 30, 2009, 23:11:43
Jeżeli 2D to po co się męczyć z DirectX? Przecież allegro5 opiera się właśnie na nim ( do wyboru OpenGL lub DirectX ) a sam udostępnia wygodny interfejs.
Skoro udostępnia wygodny interface, to pewnie niezbyt efektywny. Chciałbym zobaczyć, jak tam rozwiązali batching obiektów. :)

Cytuj
Właśnie ukazały się na stronie pierwsze dwie części mojego kursu. Za jakiś czas będzie więcej.
Szukam i znaleźć nie mogę. :)