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

Offline Charibo

  • Redaktor

# Czerwiec 30, 2009, 23:13:42
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. :)
W XNA rozwiązali to i efektywnie i wygodnie. :)

Offline Mr. Spam

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

Offline C'mons

  • Użytkownik

# Czerwiec 30, 2009, 23:20:07
Krzysiek.K:
pierwsza część: http://www.warsztat.gd/tutorials.php?x=view&id=322
druga część: http://www.warsztat.gd/tutorials.php?x=view&id=323

Nie znam XNA ale co mogę jeszcze dodać o allegro5 to fakt, że sposób renderowania czegokolwiek nie zmienił się wiele od allegro 4.2 ci, którzy znali i używali starsze allegro wiedzą o czym mowa, wystarczy się po prostu nauczyć nowych nazw funkcji itp. a różnica w wydajności jest duża.

Offline Oti

  • Użytkownik

# Czerwiec 30, 2009, 23:29:43
Hmm.. Zerknąłem na te tutki, i stwierdzam, że nie chce mi się przenosic całej mojej gry z allegro 4.2 do 5. :/ Tą grę jeszcze przeboleję w allegro, ale później to już chyba zabiore się za czystego OGL'a lub DX'a, bo przecież jak będę umiał robic gry tylko w allegro to do żadnej firmy mnie nie przyjmą. :D

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Lipiec 01, 2009, 02:21:10
Krzysiek.K:
pierwsza część: http://www.warsztat.gd/tutorials.php?x=view&id=322
druga część: http://www.warsztat.gd/tutorials.php?x=view&id=323
Istnienie al_set_pixel wyklucza optymalność użycia API.

Offline C'mons

  • Użytkownik

# Lipiec 01, 2009, 10:07:48
Oti: Aż mnie zatkało. Teraz już nie wiem czy po aktualnym projekcie zająć się za alleg5. Jeszcze się zastanowię ale przytoczyłeś mocny argument, bo w sumie racja, będę mógł sobie napisać jakąś grę działa szybko ok ale to mi na przyszłość nic nie da.

Krzysiek K.: Jest tylko al_draw_pixel, al_put_pixel do rysowania piksela. Pierwsza działa szybko a druga wolno to można używać tej pierwszej.
« Ostatnia zmiana: Lipiec 01, 2009, 10:15:04 wysłana przez C'mons »

Offline MatiSSJ

  • Użytkownik

# Lipiec 01, 2009, 12:03:12
Poczytam te tutki C'monsa, ale sadze, ze i tak przerzuce sie na D3D. Tyle, ze teraz takie pytanie, jest jakas roznica miedzy wersja 8 a 9, bo mam zajefajna ksiazke na DirectX 8 i nie wiem czy z niej korzystac.

EDIT 1: Nie no, teraz to sie zawiodlem :/. W allegro5 juz jest na stale dodane wczytywanie czcionek z pliku, a ja mialem taka frajde jak sam to zrobilem :D.
« Ostatnia zmiana: Lipiec 01, 2009, 12:06:55 wysłana przez Zucz3k »

wine

  • Gość
# Lipiec 01, 2009, 12:06:06
głównie numerkiem i obsługiwanym pozomem shaderów (8 - 1.*, 9 - 3.0 [dobrze mówie?])

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Lipiec 01, 2009, 12:19:57
Cytuj
Krzysiek K.: Jest tylko al_draw_pixel, al_put_pixel do rysowania piksela. Pierwsza działa szybko a druga wolno to można używać tej pierwszej.
No właśnie mnie zastanawia, jak taka funkcja może działać szybko, skoro ani w OpenGL, ani w Direct3D nie ma prostego sposobu na szybkie rysowanie pojedynczych pikseli? ;)

Cytuj
Poczytam te tutki C'monsa, ale sadze, ze i tak przerzuce sie na D3D. Tyle, ze teraz takie pytanie, jest jakas roznica miedzy wersja 8 a 9, bo mam zajefajna ksiazke na DirectX 8 i nie wiem czy z niej korzystac.
Nie korzystać. DirectX 8 to już przeżytek, a w dodatku w oficjalnym SDK nie ma już do niego libów i nagłówków (nie wspominając o dokumentacji), więc musiałbyś skombinować SDK z jakiegoś dzikiego źródła i siłą rzeczy nie mógłbyś przechodzić do nowszych wersji.

Offline cybek

  • Użytkownik
    • Strona domowa!

# Lipiec 01, 2009, 12:21:43
No właśnie mnie zastanawia, jak taka funkcja może działać szybko, skoro ani w OpenGL, ani w Direct3D nie ma prostego sposobu na szybkie rysowanie pojedynczych pikseli? ;)
a GL_POINT ?

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Lipiec 01, 2009, 12:28:22
a GL_POINT ?
Przy dzisiejszych rozdzielczościach ilości pikseli na ekranie szybko idą w miliony. Każdy punkt jest de facto wierzchołkiem, więc jeżeli chcesz renderować dynamiczny obiekt z milionem wierzchołków przy dobrym FPS, to powodzenia. Po prostu nie tędy droga. :)

wine

  • Gość
# Lipiec 01, 2009, 12:29:48
a GL_POINT ?
Przy dzisiejszych rozdzielczościach ilości pikseli na ekranie szybko idą w miliony. Każdy punkt jest de facto wierzchołkiem, więc jeżeli chcesz renderować dynamiczny obiekt z milionem wierzchołków przy dobrym FPS, to powodzenia. Po prostu nie tędy droga. :)
a kto tu mówi renderowani całych figur? Chodzi o to że OGL ma tryb współpracy z pikselami.

Offline cybek

  • Użytkownik
    • Strona domowa!

# Lipiec 01, 2009, 12:34:58
a GL_POINT ?
Przy dzisiejszych rozdzielczościach ilości pikseli na ekranie szybko idą w miliony. Każdy punkt jest de facto wierzchołkiem, więc jeżeli chcesz renderować dynamiczny obiekt z milionem wierzchołków przy dobrym FPS, to powodzenia. Po prostu nie tędy droga. :)
No nie wątpie, ale funkcja do rysowania pixeli jest ;) Poza tym kto normalny by chciał rysować figurę/obiekt z pikseli :P
Ale na pewno jest to szybsze niż software'owe PutPixel ;P

Offline Oti

  • Użytkownik

# Lipiec 01, 2009, 12:43:40
Oti: Aż mnie zatkało. Teraz już nie wiem czy po aktualnym projekcie zająć się za alleg5. Jeszcze się zastanowię ale przytoczyłeś mocny argument, bo w sumie racja, będę mógł sobie napisać jakąś grę działa szybko ok ale to mi na przyszłość nic nie da.
Teraz zastanawiam się, czy to czasem nie była ironia.. :P Z jednej strony, robiąc gry w allegro, w stosunkowo łatwy sposób uczymy się robic logikę gry, możemy poznawac jak się robi to i to, jak zrobic chodzenie, skakanie, strzelanie itp.. Można tak zrobic kilka(naście/dziesiąt) gierek i bardzo dużo się przy tym nauczyc, albo nie nauczyc się już nic, w zależności od naszego zaawansowania. Z drugiej zaś strony, allegro(przynajmniej ta wersja z której korzystałem, 4.2) jest bardzo wolne, ma mało możliwości, często trzeba kombinowac różne efekty na własne sposoby, a ta mieszanka wydajności allegro i zdolności programisty może nieźle zamulic. Nie przeszkadzało mi to wcześniej, jak korzystałem z timerów, teraz jednak zacząłem korzystac z dt, i zobaczyłem, że pusty ekran allegro ma ~28 FPS na kompie, na którym śmigał NFS U2 i GTA:SA.. Już mnie to irytuje, dlatego w te wakacje ukończę tą gierkę i odrazu się za siebię zabiorę, zaczne korzystac z OGL'a lub D3D, narazie nie wiem co wybrac.. Nie wiem jak to jest w Twoim przypadku, ale mi się poprostu wydaje, że swoje już w allegro zrobiłem, więcej nie muszę używac takich.. ekhm.. wspomagaczy, czas przejśc na wyższy poziom. Chcę byc omnibusem jak Vipa i robic samemu kompletne gry(może zasoby do nich również), możliwe, że nawet na nich zarabiac. :D

P.S. Pisząc 'tą gierkę' mam na myśli Kill or die :P
« Ostatnia zmiana: Lipiec 01, 2009, 12:48:58 wysłana przez Oti »

Offline C'mons

  • Użytkownik

# Lipiec 01, 2009, 13:36:51
Pisałem te zdanie na 3 sposoby i za każdym razem też brzmiało mi trochę jak ironia ale nią nie jest. Twoje słowa rzeczywiście dały mi do myślenia. Ale w sumie jestem w dość młodym wieku więc mógłbym jeszcze posiedzieć trochę w allegro5 i nauczyć się różnych nowych algorytmów, których jeszcze nie znam itp.

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Lipiec 01, 2009, 13:53:28
Pisałem te zdanie na 3 sposoby i za każdym razem też brzmiało mi trochę jak ironia ale nią nie jest. Twoje słowa rzeczywiście dały mi do myślenia. Ale w sumie jestem w dość młodym wieku więc mógłbym jeszcze posiedzieć trochę w allegro5 i nauczyć się różnych nowych algorytmów, których jeszcze nie znam itp.
Jeśli się wahasz, to raz dwa przeskakuj na OpenGL/Direct3D (jeżeli ma się przydać w pracy w gamedev, to z silnim wskazaniem na Direct3D). Z doświadczenia powiem, że szkoda czasu na zajmowanie się rzeczami, po których już teraz widzisz, że Ci nie wystarczą. Ja w Allegro siedziałem chyba kilka dobrych lat, sporo doświadczenia nabrałem, ale nabrałbym jeszcze więcej, gdybym od początku siedział w OpenGL lub Direct3D. :)