Yo!
Ik ben bezig een 3d engine in Java te programmeren. Het moelijkste tot nu toe is helaas de pixels op het scherm te brengen, iets wat zelfs in QBasic zooo makkelijk is.
Heb gesearched, de meeste topics gaan over Applets of de snelheid is niet echt belangrijk. Hier wel!
Maar goed, het probleem:
Ik heb dus een JFrame met daarin een JPanel jp als display. Verder gebruik ik
Graphics g = jp.getGraphics() om het Graphics object te krijgen.
Dan ga ik met g.fillRect( x, y, width, height ) de pixels tekenen.
Werkt prima. Als je maar één plaatje moet tekenen...
Zodra ik hem constant nieuwe frames laat renderen gaat het echt heeeel erg langzaam (en mijn systeem draait Doom III best aardig
)...
Op dit moment maakt de engine zodra hij alle pixels klaar heeft een int[][] en stuurt hij deze door naar de renderer. Die pakt dan uit het array (waar alleen "bestaande" pixels in staan) en gaat elk pixel renderen met fillRect.
En dit is dus langzaaaaam.
Oh, en dan blijven zelfs de oude pixels gewoon op het scherm. Als ik ook nog eens elke keer een fillRect over het hele scherm moet trekken om het te "clearen" heeftie meer dan een seconde nodig voor een frame met 16 pixels...
Wie mijn overheerlijke (
)code wil zien kan hem hier gezipped downloaden.
Is er een betere manier om plaatjes te tekenen en weer te geven? Misschien niet in awt of zelfs swing maar gewoon in de prompt? In QBasic was dat een kwestie van Screen12 en gaan!
Zou het kunnen dat Java gewoon niet het geschickte platform is om een simpele 3d engine te maken? Raden jullie aan om even de syntax van C++ te leren en daar verder te gaan?
Ik ben bezig een 3d engine in Java te programmeren. Het moelijkste tot nu toe is helaas de pixels op het scherm te brengen, iets wat zelfs in QBasic zooo makkelijk is.
Heb gesearched, de meeste topics gaan over Applets of de snelheid is niet echt belangrijk. Hier wel!
Maar goed, het probleem:
Ik heb dus een JFrame met daarin een JPanel jp als display. Verder gebruik ik
Graphics g = jp.getGraphics() om het Graphics object te krijgen.
Dan ga ik met g.fillRect( x, y, width, height ) de pixels tekenen.
Werkt prima. Als je maar één plaatje moet tekenen...
Zodra ik hem constant nieuwe frames laat renderen gaat het echt heeeel erg langzaam (en mijn systeem draait Doom III best aardig
Op dit moment maakt de engine zodra hij alle pixels klaar heeft een int[][] en stuurt hij deze door naar de renderer. Die pakt dan uit het array (waar alleen "bestaande" pixels in staan) en gaat elk pixel renderen met fillRect.
En dit is dus langzaaaaam.
Oh, en dan blijven zelfs de oude pixels gewoon op het scherm. Als ik ook nog eens elke keer een fillRect over het hele scherm moet trekken om het te "clearen" heeftie meer dan een seconde nodig voor een frame met 16 pixels...
Wie mijn overheerlijke (
Is er een betere manier om plaatjes te tekenen en weer te geven? Misschien niet in awt of zelfs swing maar gewoon in de prompt? In QBasic was dat een kwestie van Screen12 en gaan!
Zou het kunnen dat Java gewoon niet het geschickte platform is om een simpele 3d engine te maken? Raden jullie aan om even de syntax van C++ te leren en daar verder te gaan?
ASCII stupid question, get a stupid ANSI!