Jak maxsymalnie i bezpiecznie przyspieszyć graphic w JFrame gdyż miałem zrobić silnik graficzny i chyba zbyt wolny by był...

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- 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:około 10 lat
- Ostatnio:prawie 9 lat
- Postów:231
Może LWJGL ?


- Rejestracja:prawie 12 lat
- Ostatnio:4 dni
Ale to ty masz napisac silnik


- Rejestracja:ponad 15 lat
- Ostatnio:prawie 7 lat
- Postów:274

- Rejestracja:ponad 11 lat
- Ostatnio:ponad 4 lata
- 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:ponad 15 lat
- Ostatnio:prawie 7 lat
- 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:około 10 lat
- Ostatnio:prawie 9 lat
- 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:około 10 lat
- Ostatnio:prawie 9 lat
- 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:ponad 11 lat
- Ostatnio:ponad 4 lata
- 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ść...

mov ax,012h
- czemu nie 13h? W trybie 13h będziesz miał więcej kolorów (aż 256!), oraz minimalistyczną rozdzielczość (320x200 FTW). A zapalać piksele będziesz mógł odwołując się bezpośednio do buforu grafiki, który znajduje się pod adresem A000 (tego adresu się nie zapomina!)




- Rejestracja:prawie 10 lat
- Ostatnio:4 miesiące
- 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:około 10 lat
- Ostatnio:prawie 9 lat
- Postów:231
Dobra decyduje się na razie na LWJGL.




- Rejestracja:prawie 20 lat
- Ostatnio:około godziny
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,
karolinaa