Buon Natale!
Se qualcuno è così folle da stare qui, è possibile applicare una texture ad un triangolo col 3D di gm? Quando lo faccio me lo colora tutto di un colore
Edit:
Se si come? XD
Applicare texture a un triangolo?
- doom13
- Moderatore
- Messaggi: 2093
- Iscritto il: 31/08/2012, 15:40
- Specialità: Programmazione
- Uso: GM:Studio 2
- Contatta:
Applicare texture a un triangolo?
Spoiler
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"
Re: Applicare texture a un triangolo?
È un po' una rottura ma si può, devi usare d3d_primitive_texture_begin e dare le coordinate che dovrebbe rappresentare ogni vertice del triangolo nella texture. È più difficile a dirsi che a farsi,quindi faccio un esempio
Mettiamo che hai questi 3 punti per fare il vertice e una texture 64x64 con disegnato sopra un triangolo e il resto è spazio vuoto, questo triangolo è isoscele e i suoi 3 vertici sono nelle posizioni X:0 Y:64(in basso a sinistra), X:64 Y:64(basso a destra) e X:32 Y:0(in alto in mezzo), per applicare una texture devi fare le coordinate di ogni vertice rispetto alla texture, cioè il vertice in alto in mezzo avrebbe coordinate x:32 y:0, quello in basso a sinistra x:0 y:64 etc. Problema è che serve dare un numero compreso tra 0 e 1 dove 1 rappresenta la largezza della texture, ergo per indicare le coordinate X:32 Y:0 si mette 0.5 e 0, per rappresentare 0 64 si mette 0 1 etc. Esempio in codice:
Disegna un triangolo rivolto verso l'alto con applicata una texture
Mettiamo che hai questi 3 punti per fare il vertice e una texture 64x64 con disegnato sopra un triangolo e il resto è spazio vuoto, questo triangolo è isoscele e i suoi 3 vertici sono nelle posizioni X:0 Y:64(in basso a sinistra), X:64 Y:64(basso a destra) e X:32 Y:0(in alto in mezzo), per applicare una texture devi fare le coordinate di ogni vertice rispetto alla texture, cioè il vertice in alto in mezzo avrebbe coordinate x:32 y:0, quello in basso a sinistra x:0 y:64 etc. Problema è che serve dare un numero compreso tra 0 e 1 dove 1 rappresenta la largezza della texture, ergo per indicare le coordinate X:32 Y:0 si mette 0.5 e 0, per rappresentare 0 64 si mette 0 1 etc. Esempio in codice:
Codice: Seleziona tutto
texture=background_get_texture(tex_test);
d3d_primitive_begin_texture(pr_trianglelist, texture);
d3d_vertex_texture(0,64,0,0,1);
d3d_vertex_texture(32,0,0,0.5,0);
d3d_vertex_texture(64,64,0,1,1);
d3d_primitive_end();
- doom13
- Moderatore
- Messaggi: 2093
- Iscritto il: 31/08/2012, 15:40
- Specialità: Programmazione
- Uso: GM:Studio 2
- Contatta:
Re: Applicare texture a un triangolo?
Grazie cash, comunque io facevo così, il problema potrebbe essere perché creavo un modello?
Ma se sballo le larghezze della texture mettendo ad esempio tutti 0, 1? Dovrebbe andare lo stesso?
Ma se sballo le larghezze della texture mettendo ad esempio tutti 0, 1? Dovrebbe andare lo stesso?
Spoiler
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"
Re: Applicare texture a un triangolo?
meglio se usi i modelli...
fai d3d_model_primimitive_begin...
fai d3d_model_primimitive_begin...
Re: Applicare texture a un triangolo?
Se metti tutto 0 non dovrebbe mostrare niente, se metti tutto 1 non sono sicuro ma penso che anche così non mostri niente. Se metti valori casuali vedrai qualcosa ma sarà roba indecente da guardare(credo)doom13 ha scritto:Grazie cash, comunque io facevo così, il problema potrebbe essere perché creavo un modello?
Ma se sballo le larghezze della texture mettendo ad esempio tutti 0, 1? Dovrebbe andare lo stesso?
- doom13
- Moderatore
- Messaggi: 2093
- Iscritto il: 31/08/2012, 15:40
- Specialità: Programmazione
- Uso: GM:Studio 2
- Contatta:
Re: Applicare texture a un triangolo?
Lo faccio ma le texture se ne vanno a quel paese...Tizzio ha scritto:meglio se usi i modelli...
fai d3d_model_primimitive_begin...
Se riesco dopo copio il codice che ho scritto.
Spoiler
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"
Chi c’è in linea
Visitano il forum: Nessuno e 4 ospiti