||/\|M/\
[jSat 3D]
(tätä projektia en enää jatka)

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.
- jsat kuvia
- yksinkertaisen skenen luonti -tutoriaali (inkscape+blender)
- OBJ ja MD5 tiedostoformaattien lataus (md5 rendaus bugaa)
- objektien liittäminen toisiinsa
- frustum culling
- 2d-kuvat ja billboardit
- fonttien renderointi
- maaston renderointi
- lathe / extrude, luo 3d-objekteja 2d-viivoista
- GLSL
- texturen projisoiniti skeneen
- shadow volumet
- shadow mapping
- pakatut texturet (dds)
- bumpmapping (KESKEN, ei toimi oikein)
- lightmapping
- fysiikka (odejava)
- reitin seuraus
- collision detection
- sumu
- picking
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ä- test1 stencil shadows
- test2 projisointi testi
- test3 shadow mapping, 1pass
- test4 shadow mapping, 2pass
- test5 terrain
- test6 ray-triangle testaus
- test7 make 3d object -testi (lathe, extrude, box, sphere)
- test8 kamera seuraa objektia. kloonaaminen, liittäminen
- test9 fbo testi, 6dof kamera
- test10 dds-lataus, bumpmapping
- test11 pyörittelyä, muutama pallo liitetty toisiinsa ja pyöritellään
- test12 skybox
- test13 lightmapit (blenderilla renderoidaan)
- test14 terrain2, maastossa puita
- test15 isompi skene, useita huoneita
- test16 2d
- test17 odejava testi
- test18 reitti demo
- test19 shadereita eri objekteille
- test20 picking, object callback
- SetBoundings ohjelma, millä voi katsella
obj-tiedostoja. Piti tulla apuohjelma jolla asetetaan
objektien asetukset fysiikkamoottorille.
* voi ladata obj, md5 ja bounding (obj) tiedostot. Valita objektista meshin hiiren vasemmalla ja kehikkoalueen hiiren oikealla.
* todo: liittäminen ym ym ym.
--kesken--
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.