Voxel

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Magneettikuvauksissa käytetään 3D mallinnusta, joka kuvataan
tietokoneen näytölle voxelina.

Miten esim. yksi tai enempi voxelia tehdään?
Ja mikä olisi yksinkertaisin basic ohjelma koodi.
Kun minä amatöörinä olen kahlannu internetin, ja löytäny
jotain juttua, mutta jotka ovat kovin korkealla. C, C++, assembler yms.
Ja joista puuttuu headerit yms. Mutta ei basic'ina

Sitten, minkälainen olisi basic'illa toteutettu ray-tracing,
ja lopuksi jos saisi basic'illa tehtyä Lindermayerin systeeminen,
elikkä sen parserin.

Olen kahlannu läpi monenlaista tutoriaalia, mutta ne on kovin akateemisia
monimutkaisilla matemaattisilla kaavoilla höystettynä, ilman
esimerkkiä, josta olisi päässy alkuun.

Jospa tämä tästä sitten kehittyy virtuaali kalastukseksi.

Kommentit (11)

Vierailija
Reuwen
Magneettikuvauksissa käytetään 3D mallinnusta, joka kuvataan tietokoneen näytölle voxelina.

Miten esim. yksi tai enempi voxelia tehdään?

Hassusti pohjustettu, ja siksipä en yhtään saanut pointtiasi. Varmastikaan en ole oikea henkilö sinua koodien kanssa auttamaan, mutta jospa ensin hieman tarkentaisit mitä haet takaa.

MRI:n vokselit ovat todellisia mittauksia kolmessa spatiaalisessa dimensiossa, mutta MRI kuvat ovat pikseleistä koostuvia 2D kuvia, joissa pikseleiden arvo on vokseleista saatujen signaalien intensiteettejä (näin siis hyvin pelkistettynä). Voihan kuvaa toki n mm paksuna leikkeenäkin pyöritellä, jos siitä jotain kumman hyöytyä on.

Eli siis, en saanut yhtään mitään irti siitä, että millaiseen käytännön sovellukseen tarvitset vokselin käsitettä.

Vierailija

Reuwen, sinänsä mielenkiintoinen keskustelun aihe, josta jopa tiedän hieman. Kysyit miten voisi tehdä yhden tai useamman vokselin. Yleensähän vokseleilla ei ole varsinaisia koordinaatteja, vaan niiden sijainti määritetään suhteessa muihin vokseleihin. Kuulostaako epämääräiseltä? Jos tämä jo tuntuu hieman vieraalta, ehkä kannattaa odottaa muutama vuosi. Matematiikka vokseleiden "takana" ei suinkaan ole sitä kaikkein yksinkertaisinta tasoa. Kolmiulotteisen pikselin käyttäminen kun ei ole ehkä mielekkäin tapa oppia ohjelmointia, ainakaan Basicilla.

Jos ajatuksesi on tehdä Basicilla kolmiulotteista grafiikkaa, suosittelen lämpimästi opettelemaan C-kieltä tai Assembleria. Basic on moniin tarkoituksiin sopiva kieli, - varsinkin yksinkertaisiin sovelluksiin, jotka pitää ohjelmoida nopeasti - mutta sen rajoitukset tulevat hyvin esille esimerkiksi grafiikan käsittelyssä. Periaatteessa voit kuitenkin luoda vokselin vaikka Basicilla, jos näin jostain syystä haluat tehdä.

Vokseli on pienin mahdollinen laatikon muotoinen palanen kolmiulotteisesta kuvasta. Tietokonepeleissä niitä käytetään, jotta 3D-kiihdytystä ei tarvittaisi. Tätä ilmeisesti ajat takaa Basic-ohjelmallasi. Jos ajatuksissasi on jokin muu kuin akateeminen mielenkiinto Basic-ohjelmointiin, suosittelen tosiaankin jonkun toisen ohjelmointikielen käyttämistä. Mielestäni sanoit varsin kuvaavasti.

Reuwen
Olen kahlannu läpi monenlaista tutoriaalia, mutta ne on kovin akateemisia monimutkaisilla matemaattisilla kaavoilla höystettynä, ilman esimerkkiä, josta olisi päässy alkuun.

Näin se tuppaa olemaan. Ei suhteellisuusteoriaakaan voi oikein ymmärtää, jos ei ensin tutustu matematiikkaan, joka siihen liittyy. Yritä opetella tuota vokseleihin liittyvää matematiikkaa ja sen jälkeen mieti uudelleen ohjelmaasi. Onnea aivoja kehittävän harrastuksen jatkossa!

Vierailija
Reuwen
Magneettikuvauksissa käytetään 3D mallinnusta, joka kuvataan
tietokoneen näytölle voxelina.

Miten esim. yksi tai enempi voxelia tehdään?
Ja mikä olisi yksinkertaisin basic ohjelma koodi.
Kun minä amatöörinä olen kahlannu internetin, ja löytäny
jotain juttua, mutta jotka ovat kovin korkealla. C, C++, assembler yms.
Ja joista puuttuu headerit yms. Mutta ei basic'ina :(

Kolmiulotteinen taulukko jossa jokainen elementti sisältää halutut tiedot. Joskus pelkän arvon, joskus muutakin tietoa. Ei se sen kummempaa ole.

Tehokkuuden suhteen sitten voi tehdä monimutkaisempia algoritmeja jos haluaa.

Tuossa esimerkiksi yksi nätti kuva voxeleilla piirreltynä:
http://feenix.iqs.fi/pics/woman2.jpg

Ja hieman lisämainintaa tekijän sivuilta, vuosikausien vanha sivu vain. Tuo sovellus on ollut Heurekassakin käytettävissä ja kiertänyt maailmaa.
http://feenix.iqs.fi/trevor.html

Vierailija

Niin, tässä ilmeisesti pitää keksiä ruuti ja pyörä tms. uudestaan.
Ajatukseni olisi luoda jonkinlainen virtuaali maailma, josa voi vaeltaa
sinne ja tänne ynnä kalastaa jos osuupi meren tai joen rantaan.

Se olisi isohko fraktaali saari josa olisi montaa eri sorttia maata,
siis puuta, puskaa, niittyjä, suota ynnä kallioista

Linnun laulua, tuulen suhinaa, aaltojen kohinaa ja virtaavan veden
solinaa. Unohtamatta miljoonaa verenhimoista sääskeä bonuksena,
jotka tulevat sitten talkoisiin kalastukseen.

Uskoisin että voxeli + L-sys olisi tässä tapauksesa parempi kuin
polygoni + textuurit joka on kuin vaneriin maalattua. Olen opetellu
3D studion polygoni ynnä textuurin käyttöä ja ei hyvältä näytä.
Mutta passaa ehkä paremmin rakennusten, autojen yms. rakenteluun.

Tavoitteeni olisi mahdollisimman luonnonmukainen ja kevyt grafiikka

Vierailija
Luumuvaras

Vokseli on pienin mahdollinen laatikon muotoinen palanen kolmiulotteisesta kuvasta. Tietokonepeleissä niitä käytetään, jotta 3D-kiihdytystä ei tarvittaisi. Tätä ilmeisesti ajat takaa Basic-ohjelmallasi.

Niin, minun täytyy ottaa huomioon oma kone joka ei ole athlonin athleetti.
Eikä ole 3D grafiikka syklotronia, jolla sais pixeliin vauhtia, tai toisaalta,
ei kai sitä välttämättä tarvi kun olisi tarkoitus saada luontevasti
luonnollinen ympäristö ja liikkuminen olisi vaeltelu kävellen turhaa
hoppua pitämättä tuonne, sinne ja tänne ja samalla vois kompastua
johonkin malmiin tms. tai exsoottiseen kasviin, eikä sitten kissaa
isompaa mehtänpetoa hätyyttään pelaajaa, sääsket tuli toisaalla mainittua.

Olen hommannu Dark Basic'in ja se vaikuttaa lupaavalta,muita
basic rotuja on sitten enemmälti kaupassa (el gigante ynnä muut).

Kesäloma rahat meni ja nyt pitäisi tehdä elämääkin suurempi ja
megalomaanisin peli, tavoitteita pitää olla.

Vierailija
beeta
mutta jospa ensin hieman tarkentaisit mitä haet takaa.

MRI:n vokselit ovat todellisia mittauksia kolmessa spatiaalisessa dimensiossa, mutta MRI kuvat ovat pikseleistä koostuvia 2D kuvia, joissa pikseleiden arvo on vokseleista saatujen signaalien intensiteettejä (näin siis hyvin pelkistettynä). Voihan kuvaa toki n mm paksuna leikkeenäkin pyöritellä, jos siitä jotain kumman hyöytyä on.

Eli siis, en saanut yhtään mitään irti siitä, että millaiseen käytännön sovellukseen tarvitset vokselin käsitettä.

Pointti tässä olisi luoda 3D peli maan kuvaukseen esim. limestone
layer, joka on sedimentti kiveä josta voi löytää fossiileja ynnä
t-rex'in ja sitten muitakin kallioperä rotuja ynnä lajeja, graniitti,
gneissi, kvartsi, malmit etc.

Ja maalajeja multa, turve, hiekka, moreeni ja niiden päälle
L-sys plant, siis heinät, rikkaruohot, puut, petäjät, hongat, männyt
ja joulukuuset etc.

Ajattelen voxelin ratkaisevan paljon ongelmia mitä tulee em.
seikkoihin.

Heksu
Seuraa 
Viestejä5463
Liittynyt16.3.2005

Ei 3D-grafiikkaan tarvita välttämättä C-kieltä saatikka assembleria. 3D-grafiikkaa kannattaa opetella koodaamaan esim. OpenGL-rajapinnan kautta, se on suhteellisen ymmärrettävää. Kun perus 3D-tauhaka onnistuu, voisin kuvitella että jonkunlaisia vokseleitakin osaa piirrellä.

Lähinnä herää kysymys mitä tarkalleen ottaen tarkoitit Basicilla? VisualBasicia? VB.Nettiä? Esimerkiksi VB.Netille ja Visual Basic 6:lle saa komponentin, jonka avulla voi helposti piirtää normaalia 3D-grafiikkaa opengl-rajapinnalla.

Vierailija
Heksu
Ei 3D-grafiikkaan tarvita välttämättä C-kieltä saatikka assembleria. 3D-grafiikkaa kannattaa opetella koodaamaan esim. OpenGL-rajapinnan kautta, se on suhteellisen ymmärrettävää. Kun perus 3D-tauhaka onnistuu, voisin kuvitella että jonkunlaisia vokseleitakin osaa piirrellä.

Lähinnä herää kysymys mitä tarkalleen ottaen tarkoitit Basicilla? VisualBasicia? VB.Nettiä? Esimerkiksi VB.Netille ja Visual Basic 6:lle saa komponentin, jonka avulla voi helposti piirtää normaalia 3D-grafiikkaa opengl-rajapinnalla.

Niin, minulla on nyt Dark Basic joka voisi olla erinomainen sovellus
kehitin 3D grafiikkaan. Olen tutkistellut sen tutoriaaleja ja on
polygoneja jokseenkin täynnään, mitä tulee 3D grafiikkaan.
Polygonit + textuurit ovat liikuntavälineitä kuten autot,
polkupyörät, traktorit, junat, helikopterit, ufot yms. kuvatessa
paikallaan.

Mutta jos on vimma mallintaa maat ynnä mannut, puut ja puskat,
niin voxel ynnä L-sys voisi ray trace'tuksella avittaa
luonnonkauneuden ilmaantumista näyttöön, jolloinka maisemat
näyttää maisemalta niin että sielua riipasee, josa pääpaino olisi.
Mutta kun Dark Basic'in tutoriaaleja selaa, niin ei niistä
voxeleista ole näköhavaintoja mikroskoopillakaan.

Mahtaisko Dark Basic'ille olla opengl tukea jossakin?

Vierailija
beeta

MRI:n vokselit ovat todellisia mittauksia kolmessa spatiaalisessa dimensiossa, mutta MRI kuvat ovat pikseleistä koostuvia 2D kuvia, joissa pikseleiden arvo on vokseleista saatujen signaalien intensiteettejä (näin siis hyvin pelkistettynä). Voihan kuvaa toki n mm paksuna leikkeenäkin pyöritellä, jos siitä jotain kumman hyöytyä on.

Yllä mainittuna on suurinpiirtein pelkistettynä kaikki se mitä haen.
Siis 3D maisemat raytracettuna 2D videokuvaksi, animaatiot
mukaan luettuna. Ja josa vaelletaan sinne, tänne, tuonne ynnä minne.

Ikäänkuin se Robinson Crusoe, joka sitten sai asutettavaksi
aution saaren, pois lukien kasvit ja eläimet ja geologia.
Ja se Perjantai. Kun siitä ei nyt varmaankaan kovin paljon
apua ollu jälkikasvun suhteen.

Heksu
Seuraa 
Viestejä5463
Liittynyt16.3.2005
Reuwen
Niin, minulla on nyt Dark Basic joka voisi olla erinomainen sovellus
kehitin 3D grafiikkaan. ... Mahtaisko Dark Basic'ille olla opengl tukea jossakin?

Tutustuin vähän tuohon DarkBasiciin. Huh voi järkytys mikä viritys! Kyseessä on ennemminkin ohjelmointia vähemmän osaaville suunnattu ja pelinkehitykseen tarkoitettu skriptialusta kuin varsinainen ohjelmointikieli. Näemmä tuolla kirjoitetaan karmaisevan näköistä kengurukoodia, tulee ihan 80-luku mieleen. Suosittelen lämpimästi, että opettelet ihan oikeaa ohjelmointia, esimerkiksi Visual Studio.Net Expressin saa ilmaiseksi.

Dark Basic non nähtävästi Direct3D-rajapinnan päälle tehty sovellus, joten siihen ei saa luonnollisestikaan OpenGL-tukea. Suosittelen lämpimästi, että kokeilet suoraan esimerkiksi OpenGL-ohjelmointia ilman tuollaista apuohjelmaa, ei se todellakaan ole niin vaikeaa. Samalla opit oikeasti paljon enemmän ja ymmärrät miten 3D-grafiikka toimii. Lisäksi nykyaikaista olio-ohjelmointia soveltamalla saa paljon selkeämpää ja ymmärrettävää koodia aikaiseksi kuin tuollaisella antiikkisella hyppykäskyihin perustuvalla syntaksilla.

Toki on niin, että ihmisillä on erilaiset tarpeet; ei siinä ole luonnollisestikaan mitään väärää jos ei ole kiinnostunut varsinaisesta ohjelmoinnista vaan haluaa vain saada nopeasti jotain aikaan.

Mitä tulee ray tracingiin, muistuttaisin että nykyisilläkään tietokoneiden tehoilla ei liene mahdollista tehdä reaaliaikaisesti ruudulla pyörivää sovellusta, joka perustuu ray tracingiin. Toki olen ollut joskus aiemminkin väärässä.

Uusimmat

Suosituimmat