ma se primi li disegni e poi dici dove vuoi mettere la telecamera come pensi che possano essere visti "dalla telecamera"?
la proiezione va configurata sempre come prima azione nel draw. Crea un oggetto telecamera con depth maggiore di tutti e nel suo draw (se sei in modalità 3d) inizializza tutto quanto ti serve, ma soprattutto la telecamera!
poi in altri oggetti esegui tutti i disegni che vuoi.
PS: non ho verificato assolutamente i parametri che hai messo nelle funzioni, ho solo visto dove stava la projection.
problemino con d3d [risolto]
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: problemino con d3d
Schiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: problemino con d3d [risolto 1/2]
Prerequisiti: hai letto il manuale a riguardo? conosci l'argomento matematico?
d3d_transform_set_identity(); //a meno che tu non abbia trasformazioni che pendono da prima non serve, perhcè inizia sempre in identity
d3d_transform_add_rotation_x(45) //ruoti il tuo nuovo sistema di riferimento attorno attorno all'origine...
d3d_transform_add_translation(-5,0,0); //ok, ora trasli la tua orgine (definisci un nuovo sistema di riferimento il cui centro, ripsetto al sistema originale è in -5,0,0
d3d_draw_ellipsoid(x-15,y-15,z-15,x+15,y+15,z+15,background_get_texture(tBall),2,2,32);
//ed ecco la sfera di diametro 30 disegnata nel nuovo sistema di riferimnento (al centro dato che il boundingbox è sviluppato simmetricalmente rispetto il centro).
disegni una sfera... graficamente cosa ti aspetti di vedere? una sfera ruotata! che notoriamente è invariante a rotazioni centrate all'origine.
Oltre alla rotazione hai aggiunto la traslazione di -5, quindi la tua sfera rispetto all'iniziale sistema di riferimento è centrata in -5,0,0 e ruotata di 45° (ma ovviamente la rotazione, che c'è, non ha un effetto visibile su di una sfera)
per la traslazione ... non capisco
settandole (parola "rubata" all'inglese) significa in questo contesto impostarle come valore
aggiungerle significa sommarle.
0-5 = -5
setto a -5 quindi ho -5
cerca traslazione, rotazione e rototraslazione nel piano cartesiano con google, forse dopo ti sarà più chiaro.
d3d_transform_set_identity(); //a meno che tu non abbia trasformazioni che pendono da prima non serve, perhcè inizia sempre in identity
d3d_transform_add_rotation_x(45) //ruoti il tuo nuovo sistema di riferimento attorno attorno all'origine...
d3d_transform_add_translation(-5,0,0); //ok, ora trasli la tua orgine (definisci un nuovo sistema di riferimento il cui centro, ripsetto al sistema originale è in -5,0,0
d3d_draw_ellipsoid(x-15,y-15,z-15,x+15,y+15,z+15,background_get_texture(tBall),2,2,32);
//ed ecco la sfera di diametro 30 disegnata nel nuovo sistema di riferimnento (al centro dato che il boundingbox è sviluppato simmetricalmente rispetto il centro).
disegni una sfera... graficamente cosa ti aspetti di vedere? una sfera ruotata! che notoriamente è invariante a rotazioni centrate all'origine.
Oltre alla rotazione hai aggiunto la traslazione di -5, quindi la tua sfera rispetto all'iniziale sistema di riferimento è centrata in -5,0,0 e ruotata di 45° (ma ovviamente la rotazione, che c'è, non ha un effetto visibile su di una sfera)
per la rotazione ok...apparte che non ruota... mi trasla la palla alle coordinate -5,0,0 settandole invece di aggiungerle
per la traslazione ... non capisco
settandole (parola "rubata" all'inglese) significa in questo contesto impostarle come valore
aggiungerle significa sommarle.
0-5 = -5
setto a -5 quindi ho -5
cerca traslazione, rotazione e rototraslazione nel piano cartesiano con google, forse dopo ti sarà più chiaro.
Schiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: problemino con d3d [risolto 1/2]
non capisco perchè dovrebbe fare altrimenti.rimane il fatto che quando non premo i tasti praticamente la rotazione si ferma mentre la palla decellera
quando non premi i tasti la variabile rot dove la modifichi?
poi c'è un'altra cosa perchè se metto set_translation (con _add funziona) la palla non ruota, eppure i valori sono diversi ogni volta e non uguali
traduzione: IMPOSTA la trasformazione come una traslazione indicata dal vettore.manual ha scritto:d3d_transform_set_translation(xt,yt,zt) Sets the transformation to a translation over the indicated vector.
<- ave al manuale.
Se vuoi fare trasformazioni complesse devi impostare solo la prima, e sommare le altre.
esempio con le variabili:
x= 3;
x+= 2; //x == 5
x= 3;
x= 2; //x == 2
set_transf_blabla(); //la trasformazione è "blabla"
set_transf_nabbo(); //la trasformazione è "nabbo"
mentre
set_transf_blabla(); //la trasformazione è "blabla"
add_transf_nabbo(); //la trasformazione è "blabla" + "nabbo"
Schiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
Chi c’è in linea
Visitano il forum: Nessuno e 35 ospiti