Jak maxsymalnie i bezpiecznie przyspieszyć graphic w JFrame gdyż miałem zrobić silnik graficzny i chyba zbyt wolny by był...
Szybkość Graphic
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Pisz bezpośredno po pamięci karty graficznej zapalając piksele które ci potrzebne. Szybciej nie będzie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Podajcie mi konkretny kod który mi pixela narysuje w okienku tą metodą :) Bo innaczej to pewnie nam dłułgo zejdzie na gadaniu a ja i tak nic z tego nie zrozumeim :)
- Rejestracja: dni
- Ostatnio: dni
Ale to ty masz napisac silnik
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Czy w końcu mi pomożecie ? Na początku to coś jeszcze mi pomagaliście...Rozumiem że bardzo się zżyliśmy na tym forum ale chce się też czegoś dowiedzieć... :)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 274
Odpowiedź jest prosta - Swing nie służy do tego typu aplikacji, ich koncepcja jest zupełnie różna. Propozycje czegoś innego już dostałeś, to m.in. LWJGL
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2442
No przecież @Shalom Ci napisał. Chcesz przyspieszać frameworki, które ktoś wcześniej optymalizował? Bierz ASM i pisz po pamięci karty. Przecież uczysz się ASM. Na jaką pomoc liczysz w ogóle? Że ktoś Ci przepisze całe biblioteki po to, żeby zrobić optymalizację czegoś co ktoś już dostatecznie zoptymalizował?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Czyli JFrame odpada ? No to gdzie tą grę napisać by była maxsymalnie szybka ?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Całkiem się już pogubiłem... Da się to zrobić w Java ?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 274
Może zacznijmy od początku... Jaki problem masz z obecnym rozwiązaniem które wykorzystujesz? Co w ogóle próbujesz na tym JFrame rysować?
Wydajne graficznie rzeczy w Javie da się zrobić, ale nie w Swingu czy innych podobnych frameworkach bardziej do aplikacji okienkowych niż do gier. Wysoko wydajną grafikę możesz osiągnąć wykorzystując LWJGL, JOGL, libGDX czy chociażby jMonkeyEngine.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
A jak zrobili LWJGL skoro to nie jest wbudowane w Java ? No to musi być jakiś sposób ! @Shalom musi wiedzieć jak przspieszyć grafikę !!!
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Dajcie mi gotowy kod który mi tymi waszymi metodami narysuje pixela. Wtedy będę szczęśliwy :) Nie chce z takich gotowców korzystać. No może to takie do końca gotowce nie są ale chyba da się to zrobić bez LWJGL. No bo w takim razie jak to w LWJGL zrobili ? Skoro bez gotowców w LWJGL zrobili to jest jakiś sposób :)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2442
Dajcie mi gotowy kod który mi tymi waszymi metodami narysuje pixela. Wtedy będę szczęśliwy
Proszzzzz...
org 100h
; Ustawienie trypu VGA 16 kolorow
mov ax,012h
int 10h
; Zapalenie piksela i ustawienie koloru
mov ah,0ch
mov al,12; 12 - kolor czerwony
int 10h
; Koniec programu
mov ax, 4c00h
int 21h
Zapalenie jednego piksela na ekranie (o wybranym kolorze, a co!)
Kompilujesz przez nasm -o plik.exe plik.asm gdzie plik.asm to plik z powyższym kodem. Najlepiej pod DOSBoxem.
A dalej... to już tylko Twoja kreatywność...
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Hong Kong
@Xix daj sobie spokoj z tym programowaniem moze, jest tyle ciekawych rzeczy ktore mozna robic w tym zakresie a ty akurat wybrales zakladanie niepowaznych tematow na forum, ja rozumiem za masz duzo wolnego czasu, ale sa pewne granice :)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Powiedzcie jak konkretnie to wszystko zrobić z użyciem bibliotek standardowych Java i czy tak się w ogóle da ?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: XML Hills
LWJGL korzysta z natywnych bibliotek poprzez interfejs JNI.
Obecnie nie pisze się bezpośrednio po pamięci karty graficznej z poziomu aplikacji, bo taki putpixel musi być:
- przetworzony przez sterownik,
- zapakowany w polecenie dla karty graficznej,
- przesłany przez szynę PCI-Express,
- polecenie musi być wykonane przez kartę graficzną,
- a następnie trzeba czekać na sygnał, że polecenie się zakończyło,
Narzut ogromny.
Kolejna sprawa to środowisko:
- system operacyjny ma własny kompozytor okien (czy jak to tam nazwać), który renderuje zawartość okien i to jemu trzeba zgłaszać polecenia do wykonania,
- można jednak użyć trybu pełnoekranowego, gdzie ma się pełną władzę nad ekranem, ale tu i tak są problemy typu synchronizacja,