[Java] 3d engine - framebuffer snel flushen

Pagina: 1
Acties:

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Topicstarter
Hey mensen!

Ik ben al langer bezig met een zelfgeschreven 3d engine in Java. Gewoon om te kijken hoe het allemaal werkt... niet om de perfecte engine te schrijven...

Nu ben ik al aardig ver en begin ik mij te irriteren dat het zo lang duurt de framebuffer (een int[1024*786])
a) te vullen met een achtergrondkleur (ik gebruik java.util.Arrays.fill )
b) op het scherm te toveren. Daarvoor gebruik ik een classe die ik ergens heb gevonden en gemod heb.

Mijn vraag is nu:
Weet iemand hoe je de framebuffer van je grafische kaart kan beschrijven? Ik heb al gezocht en wat spullen en tut's gelezen op j3d.org en de gl4java site.
Ik wil echter niet het hele programma in de standaard Java3d classes schrijven...

Alles wat ik wil is de framebuffer zo snel (en simpel) mogelijk naar de grafische kaart sturen.

Wie de engine eens wil draaien en bekijken kan hem hier downloaden.
Unzip dit in je classpath en start het met "java engine.GO"!
Ik heb een paar printlns eringezet zodat je kan zien hoe lang het allemaal duurt.

Oh, en een klein goodie voor de mensen die hem testen: Heb een deur uit Doom III handmatig (en slordig, als classe) geimporteerd! 8)

ASCII stupid question, get a stupid ANSI!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Vroeger deed ik dat altijd met een MemoryImageSource en een drawImage (), maar dat zal tegenwoordig met 1.4 wel beter/sneller kunnen :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
Kijk eens naar de delen van de Java-API die sinds versie 1.4 geintroduceerd zijn. Hier zit wat functionaliteit bij om dit soort dingen wat efficienter te kunnen doen. Het minste wat je zou kunnen doen is om in de buffer van een VolatileImage te tekenen en die vervolgens op het scherm zetten.