[#1] cybergraphics.library
Ma ktoś doświadczenia z tą biblioteką i mógłby się nimi podzielić? Chciałbym jej użyć do stworzenia statycznych i dynamicznych obiektów graficznych (2D bądź 3D).



Ostatnia modyfikacja: 11.01.2009 17:25:46
[#2] Re: cybergraphics.library

@Minniat, post #1

przecież są autodoce i w sdk masz program przykladowy. funkcji jest pare na krzyż

[#3] Re: cybergraphics.library

@rzookol, post #2

Pobrałem CGraphX-DevKit.lha z Aminetu i przestudiowałem go. Jednakże na forum chciałbym zapytać o doświadczenia innych koderów.

[#4] Re: cybergraphics.library

@Minniat, post #1

funkcje z tej biblioteki nie nadaja sie do tego.

[#5] Re: cybergraphics.library

@kiero, post #4

To jaką polecasz?

[#6] Re: cybergraphics.library

@Minniat, post #5

widzę, że nie czaisz motywu. Cybergraphix powstawło własnie w takim celu by korzystać ze zwykłego api amigowego ale na kartach graficznych. Funkcje są te same. Po prostu bitmapy są inne i tyle. Robisz wszystko tak samo.



Ostatnia modyfikacja: 11.01.2009 19:45:08
[#7] Re: cybergraphics.library

@rzookol, post #6

Problem polega tylko na tym, że rodzina BltBitMap() z graphics.library jest zbyt wolna na kartach graficznych - testowałem z danymi w formacie chunky. Potrzebuję szybkich funkcji blitujących w 8 bitach, a takie wymagania spełnia cybergraphics.library. Mam jeszcze jedno pytanie - jak użyć masek do stworzenia ruchomych obiektów 2D np. gdy mamy 3 prostokąty - tło, obiekt i maska i trzeba to wszystko połączyć? Czy CGX to umożliwia?

[#8] Re: cybergraphics.library

@Minniat, post #7

"Problem polega tylko na tym, że rodzina BltBitMap() z graphics.library jest zbyt wolna na kartach graficznych"

ta funkcja jest bardzo szybka na kartach graficznych. trzeba tylko umiec ja odpowiednio uzyc. najwidoczniej nie umiesz, co mnie nie dziwi czytajac twoje wypowiedzi. naucz sie uzywac funkcji do alokowania bitmap i wtedy sprawdz.

"Potrzebuję szybkich funkcji blitujących w 8 bitach, a takie wymagania spełnia cybergraphics.library."

podaj mi nazwe jednej "szybkiej funkcji blitujacej" z cybergraphics library.



Ostatnia modyfikacja: 11.01.2009 20:30:47
[#9] Re: cybergraphics.library

@kiero, post #8

Sprawdzałem z alokowaniem bitmapy i inicjowaniem danych chunky. MovePixelArray(). Proszę, odpowiedz na pytanie jakiej zatem biblioteki użyć do wymienionego przeze mnie celu.



Ostatnia modyfikacja: 11.01.2009 21:00:37
[#10] Re: cybergraphics.library

@Minniat, post #7

Minniat napisał(a):

> Problem polega tylko na tym, że rodzina BltBitMap() z
> graphics.library jest zbyt wolna na kartach graficznych

Nonsens. Na kartach graficznych rodzina BltBitMap() korzysta, jesli moze oczywiscie, bezposrednio z silnika 2D karty graficznej.

> testowałem z danymi w formacie chunky.

Pokaz kod, a wiele osob tutaj wskaze ci twoje bledy.

Lekcja nr 1:
Przeczytaj manual do funkcji AllocBitMap z graphics.library. Naucz sie, jak z tej funkcji korzystac i pocwicz.

Lekcja nr 2 (dla zaawansowanych):
Dowiedz sie, do czego sluzy ostatni parametr przekazywany funkcji AllocBitMap. Naucz sie z niego korzystac.

Po odrobieniu tych dwoch lekcji odpowiedz sobie sam na nastepujace pytanie: dlaczego twoje dotychczasowe doswiadczenia z BltBitMap byly tak fatalne.

Do lekcji, nasz ty amigowy profesjonalisto.

[#11] Re: cybergraphics.library

@Minniat, post #9

do prostego blitowania (szybkiego) BltBitMap. do blitowania przez maske BltMaskBitMapRastPort ale tutaj nie wiem czy jest ona w pelni akcelerowana. jezeli nie, to pozostaje uzycie akceleracji 3d (odpadaja wtedy ekrany w 8 bitach) lub rysowanie procesorem (to bedzie wolne, zalezy ile takich obiektow na ekranie). obie funkcje sa w graphics.library.

"Sprawdzałem z alokowaniem bitmapy i inicjowaniem danych chunky"

nie rozumiem co to zdanie znaczy. dalej obstawiam, ze nie umiesz zaalokowac bitmapy.



Ostatnia modyfikacja: 11.01.2009 21:05:12
[#12] Re: cybergraphics.library

@kiero, post #11

akceleracji 3d na os3 i bvision ?

[#13] Re: cybergraphics.library

@rzookol, post #12

tak. a dlaczego nie?

[#14] Re: cybergraphics.library

@kiero, post #13

ale w tym momencie odpada winuae

[#15] Re: cybergraphics.library

@rzookol, post #14

winuae tez ma api dla 3d. to samo co os3.

[#16] Re: cybergraphics.library

@Minniat, post #7

Problem polega tylko na tym, że rodzina BltBitMap() z graphics.library jest zbyt wolna na kartach graficznych - testowałem z danymi w formacie chunky.

Powiedz jeszcze że grzebałeś bezpośrednio w strukturze BitMap, powiedz, powiedz, powiedz!

[#17] Re: cybergraphics.library

@MinisterQ, post #16

No Brawo zamiast pomóc koledze to wy z niego b... robicie . Oj tej naszej Amidze źle wróże jak tak dalej pójdzie.
[#18] Re: cybergraphics.library

@Dziadziomiecio, post #17

Wszyscy staraja sie mu pomagac od miesiecy. Nie nasza wina, ze jest taki odporny. A prawidlowe rozwiazania zostaly mu juz dawno temu przekazane. Tak samo jak nie raz wytkiniete nieprawidlowe.

[#19] Re: cybergraphics.library

@kiero, post #18

Jeśli mogę się wypowiedzieć w tej kwestii ( prawidłowych rozwiązań ). Myślę, że może przydałoby się więcej przykładów ( źródełka ), co nie oznacza że to pomoże.
Ja nie jestem mocny w tym temacie ( w zasadzie to jestem waflem ) i nie znam żadnych takowych przykładów, ale coś tam wygrzebałem w aminecie ( http://aminet.net/game/think/multipuzzle.src.zip ), być może to się przyda ( w każdym razie jest tam AllocBitMap :) ).

[#20] Re: cybergraphics.library

@Dziadziomiecio, post #17

Dziadziomiecio napisał(a):

> No Brawo zamiast pomóc koledze to wy z niego b...
> robicie .

Przeczytaj sobie wszystkie wypowiedzi kolegi minniata, jakie pojawily sie na ppa. Wtedy zrozumiesz.

[#21] Re: cybergraphics.library

@asman, post #19

Na innym forum zaproponowano mi P96 jako natywny subsystem graficzny OS4, a nie CGX. Przyjrzę się temu, jako że katalog z systemem OS4 oraz Aminet zawierają dokumentację P96.

@kiero

BltMaskBitMapRastPort() działa tak samo wolno jak w OS3.x, nie nadaje się do szybkiej animacji. Zaalokowałem bitmapę za pomocą AllocBitMap(width, height, depth, flags, friend_bitmap). Jeszcze nie korzystałem z takich funkcji jak WritePixelArray().

@rzookol ^ asman

Dzięki za wykazanie się zaangażowaniem w sprawę (i odrobinę empatii). Przecież chodziło mi tylko o to by pozostali koderzy napisali o swoich doświadczeniach. Jeśli ktoś z Was napisał grę wymagającą szybkiej animacji to chętnie skorzystam z Waszej pomocy.

Przykładowy kod źródłowy czy wynikowy przedstawię być może tutaj.

Do pozostałych wypowiedzi się nie odniosę, bo są przesycone sarkazmem i aluzjami, i bezproduktywną krytyką której nie mogę tolerować.

[#22] Re: cybergraphics.library

@Minniat, post #21

Zaalokowałem bitmapę za pomocą AllocBitMap(width, height, depth, flags, friend_bitmap). Jeszcze nie korzystałem z takich funkcji jak WritePixelArray().

Pokaż jak otwierasz ekran. Pokaż skąd bierzesz friend_bitmap. Pokaż flags. Pokaż czy depth ekranu == depth przy alokowaniu bitmapy.

[#23] Re: cybergraphics.library

@Minniat, post #21

jakos nie widze zebys odniosl sie do tego co napisalem o BltBitMap. jezeli nie uslysze, ze sprawiles zeby BltBitMap bylo szybkie to mozesz sobie pisac co chcesz o powolnosci innych funkcji.

"WritePixelArray"

ta funkcja nie umie rysowac z uzyciem maski wiec jest bezuzyteczna. to co robi mozna za pomoca BltBitMap zrobic duzo szybciej.

[#24] Re: cybergraphics.library

@Minniat, post #21

Ja tylko jednego nie mogę zrozumieć. Chcesz uzyskać odpowiedź na pytania a sam nie odpowiadasz na nie. To conajmniej irytujące.

Po drugie można wysnuć wniosek z twojej wypowiedzi, że karta graficzna jest niepotrzebna bo funkcje związane z grafiką działają tak samo wolno jak bez karty. Jeśli by tak było to po co wydawać kasę na kartę graficzną. Przecież to nie ma sensu.

Przykładowy kod źródłowy czy wynikowy przedstawię być może tutaj.

Zrób to jak najszybciej to być może uzyskasz odpowiedzi na pytania a tak to będzie znowu kolejny niepotrzebny wątek ( bo podobny temat już był wałkowany - temat Pytania odnośnie grafiki pod OS4.0 ).

[#25] Re: cybergraphics.library

@asman, post #24

Załączam przykładowy kod (pisany pod OS4):

MAIN.C - Funkcja main()
LIBS.C - Otwiera biblioteki
DISPLAY.C - Otwiera ekran i okno
TIMER.C - Używa timer.device do opóźnienia
LOOP.C - Pętla główna - używa funkcji rysujących
MAKEFILE - Plik MAKEFILE

W przykładowym kodzie otwieram ekran zakładając, że ekran Workbencha jest w 8 bitach (używam SA_LikeWorkbench).

Następnie alokuję poprawnie bitmapę za pomocą p96AllocBitMap(), inicjuję własny RastPort, rysuję kilka punktów w tym RastPorcie za pomocą WritePixel() (tak jak radził MinisterQ i miał rację - wyczytałem w dokumentacji P96, że struktura BitMap jest w pełni prywatna!), a następnie w pętli wyświetlam na ekranie.

BltBitMap() i BltMaskBitMapRastPort() pod CGX i OS4.0 są strasznie wolne, szczególnie ta druga funkcja. Czy jest jakaś alternatywa dla tych funkcji??? BltBitMap() pod AGA jest wystarczająco szybka (używam m.in. w Robbo).

Przepraszam, nie wiedziałem, że cybergraphics.library służy tylko do blitowania w 16 i 32 bitach, więc nie jest mi potrzebna.

No nic, w końcu odkryłem po wielu wielu miesiącach pracy tajemnicę szybkiej animacji pod AGA (zobacz ten wątek). Moja praca nad kolejnymi grami po Robbo ruszy z kopyta, tym razem na dobre.



Ostatnia modyfikacja: 22.01.2009 13:25:04
[#26] Re: cybergraphics.library

@Minniat, post #25

Pierwszy rzut: po jaką cholerę używasz p96AllocBitMap()? AllocBitMap() jest bardziej wskazane:

AllocBitMap(width, height,depth, BMF_MINPLANES | BMF_CLEAR, friendbitmap)

[#27] Re: cybergraphics.library

@MinisterQ, post #26

Te funkcje się od siebie nie różnią gdy alokuję bitmapę 8-bitową.

[#28] Re: cybergraphics.library

@Minniat, post #25

"No nic, w końcu odkryłem po wielu wielu miesiącach pracy tajemnicę szybkiej animacji pod AGA (zobacz ten wątek). Moja praca nad kolejnymi grami po Robbo ruszy z kopyta, tym razem na dobre."

Bez urazy... , z pewnoscia jestes barwna, pozytywna postacia w tym zatechlym swiatku, ale to co zajelo ci AZ miesiace, moglo spokojnie zajac tygodnie... gdybys tylko byl lepszym sluchaczem i byl mniej oporny na sugestie/rady i opinie innych.
Nie wierze, ze nie bylo ani jednej osoby ktora nie znala sie na tym.
Pewnie gdybys tylko grzecznie poprosil, to gosc wytłumaczyl by ci to w 6 dni a nie w 6 miesiecy... do czego zmierzam?
Ano mysle, ze z twoim odkrywaniem 'Ameryki', ktora zostala odkryta jakies 20 lat temu, to z "kopyta ruszysz" za jakies 4-5 lat.. nie wiem czy do tego czasu, zostanie ktokolwiek kto bedzie gral jeszcze na Amidze..

Reasumujac , zamiast robic jakies tam "ecie, pecie...srutu, druttu" wez sie w garsc, skombinuj porzadna ekipe i wydaj wreszcie ta komercyjna Dune 3, (jak co to bede pierwszy, ktory zakupi egzemplarz bo sam jestem maniakem tej gry i mam ochote zagrac w jej nastepce)

Tylko wez tez pod uwage fakt, ze tak naprawde karty graficzne, turbo itp... ma % tych, ktorzy posiadaja A1200, wiec czy jest sens pisanie pod wypasiony sprzet kalsyczny ?
Jak nie chcesz doznac zawodu i smaku porazki, to pisz pod gola A1200 z ewentualnie jakimis 'bonusami' dla uzytkownikow z amiga w lepszej konfiguracji.
Jesli masz zamiar pisac cos pod amigowe systemy nowoczesne, to juz lepiej przerzuc sie na PC'ta. Mimo, ze konkurencja tysiac razy wieksza, to rynek zbytu o milion razy lepszy niz w przypadku jakichs tam fafik, pogozosuw i innych cuda-niewidow. I nie sluchaj grupki fanatykow, ktorzy beda ci wmawiac, ze jesli nowy soft to tylko pod nowoczesne Amigi... bo jest to moze maks 20 osob, ktore przy ilosci osob, jakie reprezentuje zagraniczna retro-spolecznosc amigowa wypada dosc blado, zeby nie powiedziec ze w ogole nie wypada.

AMENT
[#29] Re: cybergraphics.library

@selur, post #28

Witam,

Jak nie chcesz doznac zawodu i smaku porazki, to pisz pod gola A1200 z ewentualnie jakimis 'bonusami' dla uzytkownikow z amiga w lepszej konfiguracji.

Co rozumiesz przez bonusy ?


Pozdrawiam
asman

[#30] Re: cybergraphics.library

@asman, post #29

Rzeczywiscie nie wiem czy "bonus" to dobre okreslenie ale nie wiedzialem jak to nazwac.
Chodzi mi o dodatkowe rzeczy, ktore podniosa atrakcyjnosc gry.. np. w Dune 3 mogla by to byc digitalizowana mowa, wiecej dzwiekow, jakies dodatkowe obrazki budynkow etc.. dla posiadaczy wiekszej ilosci ramu.
Dla posiadaczy kart turbo, to moze jakies dodatkowe efekty graficzne liczone w czasie rzeczywistym ... cos by sie na pewno znalazlo.
No ale grunt to w ogole napisac tego klona Dune... bo filozofowac to sobie mozna ... OK
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem