Dell Studio XPS 16
Project: BavBierSub 1.0 BavBierSub 2.0
met Swift 3D is dit makkelijk te doen.
alleen is het programma niet gratis....
http://www.swift3d.com/
alleen is het programma niet gratis....
http://www.swift3d.com/
Uhm swift3d is wel handig voor mensen zonder 3d engine kennis enzo, maar anders, lijkt het me handig als je jezelf er wat in verdiept, 3d in flesj enzo
Script requests doen we hiet niet aan.
offtopic:
Met swift 3d moet het wel kunnen denk ik ja
keek net eventjes en in 2.0 was het mogelijk voor mij een basis "molecuul" dingetjes te maken
Met swift 3d moet het wel kunnen denk ik ja
|{ brrr }] |
Verwijderd
Eerlijk gezegd denk ik niet aan kennis van 3d engines in flash zal liggen, maar eerder een gebrek aan kennis van of:
3d engines.
Flash.
Geef eens aan welke van beiden de bottleneck is, piel eens wat in flash ermee, en laat weten wat wel/niet lukt.
Voor scriptrequests zijn we inderdaad niet, daarvoor zijn er freelancers/bedrijven die je er rijkelijk voor kan betalen.
Btw, een nieuwe internetsite? Wow, is dat internet nou nog niet af?
3d engines.
Flash.
Geef eens aan welke van beiden de bottleneck is, piel eens wat in flash ermee, en laat weten wat wel/niet lukt.
Voor scriptrequests zijn we inderdaad niet, daarvoor zijn er freelancers/bedrijven die je er rijkelijk voor kan betalen.
Btw, een nieuwe internetsite? Wow, is dat internet nou nog niet af?
Verwijderd
Hmm.. Zo had ik er nog niet tegenaan gekeken. Flashen gaat wel, ActionScript matig en 3D engines niet. Nu begrijp ik dat je met Flash/ActionScript moet beginnen en ik weet wel waar ik die info vandaan moet halen, maar waar staat iets over 3D engines?Verwijderd schreef op 14 November 2002 @ 23:34:
Eerlijk gezegd denk ik niet aan kennis van 3d engines in flash zal liggen, maar eerder een gebrek aan kennis van of:
3d engines.
Flash.
Werkt 't in Flash ongeveer 't zelfde als met volwaardige programmeertalen?
Verwijderd
Positief om mee te beginnen:Verwijderd schreef op 15 November 2002 @ 01:15:
[...]
Hmm.. Zo had ik er nog niet tegenaan gekeken. Flashen gaat wel, ActionScript matig en 3D engines niet. Nu begrijp ik dat je met Flash/ActionScript moet beginnen en ik weet wel waar ik die info vandaan moet halen, maar waar staat iets over 3D engines?
Werkt 't in Flash ongeveer 't zelfde als met volwaardige programmeertalen?
Flash trigonometry
Ik zou als ik jou was het met SVG (Scalable Vector Graphics) doen.
http://www.adobe.com/svg/demos/main.html
Dan kun je aan de hand van coordinaten een molekuul model maken. En eventueel laad je de gegevens in vanuit een database waarin alle molekuul structuren staan omschreven.
http://www.adobe.com/svg/demos/main.html
Dan kun je aan de hand van coordinaten een molekuul model maken. En eventueel laad je de gegevens in vanuit een database waarin alle molekuul structuren staan omschreven.
Verwijderd
Ik zou hem best willen zien, die demo, maar dan heb ik een 2,7Mb plugin nodig, die ik nu niet hebYogho schreef op 15 November 2002 @ 10:03:
Ik zou als ik jou was het met SVG (Scalable Vector Graphics) doen.
http://www.adobe.com/svg/demos/main.html
Dan kun je aan de hand van coordinaten een molekuul model maken. En eventueel laad je de gegevens in vanuit een database waarin alle molekuul structuren staan omschreven.
Verwijderd
ftp://ftp.hornet.org/pub/demos/code/3d/docs/fh-3dtut.zip
Staat een redelijk makkelijke 3d rotatie tutorialtje in...is wel interresting.
Staat een redelijk makkelijke 3d rotatie tutorialtje in...is wel interresting.
nou, als je de bolletjes zelf al zo op 't scherm kan krijgen (met een hoop actionscripting) is het tekenen van de staafjes makkelijk. moet het een pseudo-3d engine zijn of moet 't -echt- 3d zijn?
als 't maar pseudo hoeft te zijn : gebruik de wiskundige formule voor een cirkel. x(coord) = cos(x), y(coord) is sin (x). wat je dan hebt is (als je een lus van 0 tot 2pi laat lopen) niets anders dat een punt dat tegen de klok indraait. het ligt er een beetje aan hoe vloeiend je de stappen maakt, en stapgrootte zou je kunnen pakken als pi/128 of zo. nu moet je die cirkel nog afplatten : dat doe je door een factor voor de y-coordinaat te zetten, zoals 0.4sin(x). nu moet je ook nog het balletje zelf verkleinen als het 'de diepte ingaat', en dat kun je doen door de grootte afhankelijk te maken van nog een functie.
als je balletje begint (rechts), dan is de afstand tot het middelpunt de straal, en de hoogte t.o.v. het middelpunt is dan 0. links : precies hetzelfde, alleen met een negatieve straal.
als je balletje achteraan is, is de hoogte 0.4 (zie factor voor sinus), en de afstand 0. zit je balletje helemaal vooraan, dan is de hoogte -0.4, en de afstand ook 0. je moet dus een functie vinden die beide getallen in gedachten houdt, en er een goed resultaat mee bereikt. desnoods combinaties van lineaire functies (if-constructies).
dan heb je een balletje dat ronddraait in 1 vlak. meerdere vlakken zijn ook cos/sin combinaties, maar die liggen dan hoger (er wordt dus een getal bij het sin-gedeelte opgeteld). verder is het voor een realistischer effect slim om de ooghoogte mee te nemen - een 'maximaal' uitgerekte cirkel die onder je ligt heeft een sin-factor van 0.5, en een cirkel op ooghoogte heeft een sin-factor van 0 (gaat dus alleen heen & weer). een cirkel die boven je ligt moet in feite met de klok meedraaien - negatieve sin-factor dus. stel het geheel nu voor als een cylinder, waar de hoogte van 0.5 tot -0.5 loopt, waar de diepte bepaalt wordt door de verkleining/vergroting van het bolletje, en de ronddraaisnelheid door de stapgrootte.
laatste : wil je balletjes in een vierkante vorm hebben draaien, geef een dergelijk object dan een zgn. 'faseverschuiving' mee. ipv op 0 te beginnen, laat je hem op 1/4e pi beginnen. en een op 3/4e pi, en een op -1/4e pi, en -3/4e pi. de totale sinusfunctie is dus ooghoogte*sin(omloopversnelling*(x+fase))+hoogteverschuiving.
kwestie van weten wat de eenheidscirkel doet. ik weet dat dit een gruwelijk inefficiente oplossing is t.o.v. een 'echte' 3d engine, en programmeertechnisch hoogstwaarschijnlijk een nachtmerrie, maar het werkt zelfs op een TI-82 rekenmachine, en het is super-eenvoudig om met z-factors te werken zodat je weet welk object op de voorgrond moet (afhankelijk van de x), en je kunt de kleur van het object (donker naar licht voor nog betere diepte-effecten) op dezelfde manier aanpassen. het is echter nog niet direct mogelijk om die cylinder te draaien, waardoor je rotatie misschien niet -zo- interessant wordt als je zelf wilt. daar valt echter ook een mouw aan te passen, maar vraag me niet hoe - het is dan weer makkelijker om van een 'echte' 3d engine gebruik te maken.
hou in de gedachten dat het dwaasheid is om complete polygonen uit te rekenen, maar dat je gewoon een bolletje met een wit-naar-grondkleur circular gradient wilt verplaatsen - m.a.w., een punt, geen polygoon.
als 't maar pseudo hoeft te zijn : gebruik de wiskundige formule voor een cirkel. x(coord) = cos(x), y(coord) is sin (x). wat je dan hebt is (als je een lus van 0 tot 2pi laat lopen) niets anders dat een punt dat tegen de klok indraait. het ligt er een beetje aan hoe vloeiend je de stappen maakt, en stapgrootte zou je kunnen pakken als pi/128 of zo. nu moet je die cirkel nog afplatten : dat doe je door een factor voor de y-coordinaat te zetten, zoals 0.4sin(x). nu moet je ook nog het balletje zelf verkleinen als het 'de diepte ingaat', en dat kun je doen door de grootte afhankelijk te maken van nog een functie.
als je balletje begint (rechts), dan is de afstand tot het middelpunt de straal, en de hoogte t.o.v. het middelpunt is dan 0. links : precies hetzelfde, alleen met een negatieve straal.
als je balletje achteraan is, is de hoogte 0.4 (zie factor voor sinus), en de afstand 0. zit je balletje helemaal vooraan, dan is de hoogte -0.4, en de afstand ook 0. je moet dus een functie vinden die beide getallen in gedachten houdt, en er een goed resultaat mee bereikt. desnoods combinaties van lineaire functies (if-constructies).
dan heb je een balletje dat ronddraait in 1 vlak. meerdere vlakken zijn ook cos/sin combinaties, maar die liggen dan hoger (er wordt dus een getal bij het sin-gedeelte opgeteld). verder is het voor een realistischer effect slim om de ooghoogte mee te nemen - een 'maximaal' uitgerekte cirkel die onder je ligt heeft een sin-factor van 0.5, en een cirkel op ooghoogte heeft een sin-factor van 0 (gaat dus alleen heen & weer). een cirkel die boven je ligt moet in feite met de klok meedraaien - negatieve sin-factor dus. stel het geheel nu voor als een cylinder, waar de hoogte van 0.5 tot -0.5 loopt, waar de diepte bepaalt wordt door de verkleining/vergroting van het bolletje, en de ronddraaisnelheid door de stapgrootte.
laatste : wil je balletjes in een vierkante vorm hebben draaien, geef een dergelijk object dan een zgn. 'faseverschuiving' mee. ipv op 0 te beginnen, laat je hem op 1/4e pi beginnen. en een op 3/4e pi, en een op -1/4e pi, en -3/4e pi. de totale sinusfunctie is dus ooghoogte*sin(omloopversnelling*(x+fase))+hoogteverschuiving.
kwestie van weten wat de eenheidscirkel doet. ik weet dat dit een gruwelijk inefficiente oplossing is t.o.v. een 'echte' 3d engine, en programmeertechnisch hoogstwaarschijnlijk een nachtmerrie, maar het werkt zelfs op een TI-82 rekenmachine, en het is super-eenvoudig om met z-factors te werken zodat je weet welk object op de voorgrond moet (afhankelijk van de x), en je kunt de kleur van het object (donker naar licht voor nog betere diepte-effecten) op dezelfde manier aanpassen. het is echter nog niet direct mogelijk om die cylinder te draaien, waardoor je rotatie misschien niet -zo- interessant wordt als je zelf wilt. daar valt echter ook een mouw aan te passen, maar vraag me niet hoe - het is dan weer makkelijker om van een 'echte' 3d engine gebruik te maken.
hou in de gedachten dat het dwaasheid is om complete polygonen uit te rekenen, maar dat je gewoon een bolletje met een wit-naar-grondkleur circular gradient wilt verplaatsen - m.a.w., een punt, geen polygoon.
teveel zooi, te weinig tijd
Verwijderd
Juist Yoozer klopt helemaal.
Had in Flash 5 een 3d engine gemaakt gebaseerd
op World Coordinaten. Functie gemaakt die die 3 punt x,y,z om
deed zetten in x en y.
Het heeft me heel wat zweet gekost maar is toch gelukt.
Had in Flash 5 een 3d engine gemaakt gebaseerd
op World Coordinaten. Functie gemaakt die die 3 punt x,y,z om
deed zetten in x en y.
Het heeft me heel wat zweet gekost maar is toch gelukt.
Verwijderd
Bedankt voor de uitleg (Yoozer) en de links. Ik snap 't principe van Yoozer, maar waar ik nog wel nieuwsgierig naar ben, hoe werkt een echte 3D engine dan? En is ie na te bouwen met ActionScript.
offtopic:
Niet dat ik de intensie heb om die te gaan bouwen, maar ik wil 'r wel meer over weten.
Niet dat ik de intensie heb om die te gaan bouwen, maar ik wil 'r wel meer over weten.
echte 3d engines.. heh, leuk onderwerp. ik heb daar ooit eens een mooi url-etje voor gehad. waar je mee zou kunnen beginnen is een raycasting engine. dan kun je al zoiets als wolfenstein of doom namaken.
maar dat valt een beetje buiten de scope van je originele opdracht. anyway, de puntjes.
http://gpp.netfirms.com/cgi-bin/resource.cgi?graph_3drotate
kijk daar maar eens. er zijn tonnen aan white-papers geschreven over 3d engines. als het goed is heeft flash mx er echter een ingebouwde, dus daar zou je er wel mee moeten komen.
maar dat valt een beetje buiten de scope van je originele opdracht. anyway, de puntjes.
http://gpp.netfirms.com/cgi-bin/resource.cgi?graph_3drotate
kijk daar maar eens. er zijn tonnen aan white-papers geschreven over 3d engines. als het goed is heeft flash mx er echter een ingebouwde, dus daar zou je er wel mee moeten komen.
teveel zooi, te weinig tijd
oww vertel?er zijn tonnen aan white-papers geschreven over 3d engines. als het goed is heeft flash mx er echter een ingebouwde, dus daar zou je er wel mee moeten komen.
JavaScript:
1
| var my3Dengine = new 3DEngine(); |
"You're only as good, as what you did last week."
Verwijderd
ik gebruik deze routine om een 3d punt te vertalen naar een 2d scherm positie..
3d punt - 3dx, 3dy, 3dz
scale - moet groter zijn dan nul in ieder geval
schermpositie - voor positioneren van je 3d objectje.
scherm_x=Math.floor(((3dx/scale)*(1.0/(2.5+(3dz/scale)))*schermpositie));
scherm_y=Math.floor(((3dy/scale)*(1.0/(2.5+(3dz/scale)))*schermpositie));
daar begint het allemaal zo mee..
3d punt - 3dx, 3dy, 3dz
scale - moet groter zijn dan nul in ieder geval
schermpositie - voor positioneren van je 3d objectje.
scherm_x=Math.floor(((3dx/scale)*(1.0/(2.5+(3dz/scale)))*schermpositie));
scherm_y=Math.floor(((3dy/scale)*(1.0/(2.5+(3dz/scale)))*schermpositie));
daar begint het allemaal zo mee..
Pagina: 1