||/\|M/\

[jSat 3D]

(tätä projektia en enää jatka)

jSat

jSat, mikäs se on?

jSat, Java 3D-harjoitusengine. Testattu windows xp:llä ja pitäis toimia myös linuxilla ja macilla. Käyttää LWJGL kirjastoa. Vaatii vähintään Java5. MIT lisenssi.

AMD64 ongelma: huomasin 64-bittisen ubuntun asennuksen jälkeen ettei lwjgl (eikä jogl) demot aina toimi, näinollen ei myöskään jsat toiminu vaan kaatui lähes joka kerta ikkunan luonnissa. Sain korjattua asentamalla 32-bittisen javan ja käyttämällä sitä java-gl-ohjelmiin (/usr/lib/jvm/ia32-java-6-sun/jre/bin/java)

Päivitetty: 3.7.2008
jSat + esimerkit, käännetyt kirjastot ja esimerkit, lähdekoodit.

Käynnistä demo kirjoittamalla java -Djava.library.path=native/ -jar dist/jsat_demos.jar komentoriville. Myös
jsat_demos/startdemo.bat käynnistää esimerkkipaketin josta voit valita demon.
jsat_demos/demos/demos/ hakemistossa esimerkkien lähdekoodit.
jsat/src/jsat/ hakemistossa lähdekoodit.

Jotain jSatista:

Fonttikuvat on IrrFontToolilla luotu (tulee Irrlicht 3d-enginen mukana) jolloin kirjainten ei tarvitse olla saman levyisiä. Ohjelma löytyy myös (atm) täältä.

Yksinkertaisia esimerkkejä Liikkuminen

Esimerkeissä käytetään hiirtä ja näppäimistöä.

hiiri + vasen nappi vaihtaa suuntaa (kuten myös nuolinäppäimet)
W,S,A,D kamera
U,J,H,K valo
R, F ylös/alas
9, 0 sumu päälle/pois (ei toimi kaikissa esimerkeissä)
kala-demo:
O ja P liikuttaa 2 objektia
TAB vaihtaa 1st person ja 3th person moodin
suttukuva-demossa Z ja X pyörittää kameraa.
esimerkki15 näppäimet 1 ja 2 vaihtaa skenen 1objekti/jaettu huoneisiin.
esimerkki16 ja 17 (ode fysiikkatestit) välilyönti lisää objekteja.

Test(numero).java -tiedostojen alussa kerrottu näppäimet.

HUOM!
Ladatessa terraimeen textureita, ei voi käyttää pakattuja textureita.
Rajoituksia kuvaformaattien suhteen:
* Fonttikuva pitää olla .PNG
* Maasto pitää olla JPG/PNG
koska kuvadata tarvitaan taulukkoon purattuna joka käydään läpi pikseli pikseliltä.

Muistiinpanoja:

* Lightmapinfo, apuohjelma joka kirjoittaa tekstitiedostoon lightmapatun skenen uv:t ym infot. sitten ladataan skene ja tekstitiedosto ja saadaan lightmapattu skene tekstureineen.
* Input_NoCollisionCheck luokkaa ei ole enää, saman ajaa input=new Input(false); jolloin ei tarkisteta törmäyksiä. 6DOF kameralla nyt myös törmäystarkistukset.
* huonedemoissa: 9 ja 0 näppäimillä saa sumun päälle/pois. huomaa että niissä esimerkeissä joissa käytetään glsl:ää, sumua ei tule, pitäisi koodata itse. maaston glsl-koodiin lisätty jonkinlainen sumu.
* materiaalitiedostoa voi käsin värkätä jos haluaa normalmapit latautumaan automaattisesti:
lisäämällä map_Kd (diffusemap) alle map_Bump ja normalmapin nimi.
esim pätkä kaivo1.mtl:stä :
illum 2
map_Kd color_map.jpg
map_Bump normal_map.jpg
jos laittaa map_Bump WaterEffect ladataan vesi-shader.
jos laittaa map_Ks ToonShading ladataan toon shaderi.
* skeneen voi laittaa valoja jotka ladataan obj tiedostosta. normaalit valot ei käy vaan:
- tee plane ja anna nimeksi light. sille voi luoda materiaalin (saa värin) muttei texturea. myös kameran voi laittaa, samalla tavalla. luodaan plane, nimeksi camera.
* fonttilataajassa musta väri asetetaan läpinäkyväksi. objektin/kameran saa liikkumaan reittiä pitkin.

Muutamia linkkejä jotka olleet hyödyksi:

Javalle on tehty useita hyviä 3d-moottoreita. Pitkään kehitettyjä, hyvin toimivia, tässä muutama mieleen tuleva: