Vai al contenuto
archigius

Sistema Di Mappatura Intelligente Anti-tiling

Recommended Posts

Inviata (modificato)

Ciao ragazzi, stasera mi è capitato di dover mappare delle canne di bamboo, e per non far vedere il tiling ho dovuto mappare e modificare la posizione del gizmo una per una (erano diverse decine...).

Che voi sappiate esiste in Max un modo veloce per mappare oggetti ripetitivi differenziando la mappatura in modo casuale?

Spero di essermi spiegato bene e che qualcuno possa darmi suggerimenti.

Grazie a tutti.


Modificato da archigius

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
Ciao ragazzi, stasera mi è capitato di dover mappare delle canne di bamboo, e per non far vedere il tiling ho dovuto mappare e modificare la posizione del gizmo una per una (erano diverse decine...).

Che voi sappiate esiste in Max un modo veloce per mappare oggetti ripetitivi differenziando la mappatura in modo casuale?

Spero di essermi spiegato bene e che qualcuno possa darmi suggerimenti.

Grazie a tutti.

uhm... sto studiando un po' di maxscript e ho fatto qualche prova

seleziona l'oggetto a cui vuoi cambiare posizione del gizmo e digita nel listener:

in coordsys local $.modifiers[1].gizmo.position = [(random -100 100),(random -100 100),(random -100 100)]
l'1 tra parentesi quadre indica la posizione del modificatore uvw mapping; se ci sono altri modificatori applicati all'oggetto devi cambiare il numero e mettere quello relativo alla posizione del modificatore ad es. se hai: Displace UVW Mapping Edit Mesh Box dovrai piazzare [2] perchè l'uvw mapping è sulla seconda riga nel caso volessi applicare il posizionamento random a più oggetti selezionati puoi utilizzare questo script:
for obj in selection do (
in coordsys local obj.modifiers[1].gizmo.position = [(random -100 100),(random -100 100),(random -100 100)]
)[/code]

vai nel menù maxscript, selezioni new script, incolli il codice dentro, lo selezioni e lo trascini sulla barra dei pulsanti così ti compare un nuovo pulsante

non devi fare altro che selezionare le geometrie e schiacciare il bottone

PS

(random -100 100) indica il range nel quale lui pesca le coordinate casuali; in questo caso prende un numero tra -100 e 100

puoi modificarlo come ti pare ;)


Modificato da philix

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Si conosco textureshaker ma quello varia la mappature di una singole texture applicata ad un oggetto.

Quello che io vorrei ottenere, però. è una variazione non tanto della tessitura ma delle sue coordinate.

Per essere più chiaro vi mostro un pezzo del render che ho fatto stasera, (non posso mostrarlo tutto perchè il progetto non è mio, solo un favore fatto alla mia ragazza).

cabine20ti.jpg

Qui si vede come (se tralasciamo qualcuna che m' è sfuggita) tutte le canne, benchè siano state mappate con 2 sole textures, risultino abbastanza differenti fra loro.

A variare sono le coordinate di mappatura ed il tiling.

Questa cosa ho dovuto farla canna per canna, perdendo molto tempo.

Ora mi chiedo se esista un sistema per velocizzare questo tipo di operazioni che io non conosco.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
uhm... sto studiando un po' di maxscript e ho fatto qualche prova

seleziona l'oggetto a cui vuoi cambiare posizione del gizmo e digita nel listener:

in coordsys local $.modifiers[1].gizmo.position = [(random -100 100),(random -100 100),(random -100 100)]
l'1 tra parentesi quadre indica la posizione del modificatore uvw mapping; se ci sono altri modificatori applicati all'oggetto devi cambiare il numero e mettere quello relativo alla posizione del modificatore ad es. se hai: Displace UVW Mapping Edit Mesh Box dovrai piazzare [2] perchè l'uvw mapping è sulla seconda riga nel caso volessi applicare il posizionamento random a più oggetti selezionati puoi utilizzare questo script:
for obj in selection do (

in coordsys local obj.modifiers[1].gizmo.position = [(random -100 100),(random -100 100),(random -100 100)] 

)

vai nel menù maxscript, selezioni new script, incolli il codice dentro, lo selezioni e lo trascini sulla barra dei pulsanti così ti compare un nuovo pulsante

non devi fare altro che selezionare le geometrie e schiacciare il bottone

PS

(random -100 100) indica il range nel quale lui pesca le coordinate casuali; in questo caso prende un numero tra -100 e 100

puoi modificarlo come ti pare ;)

Philix sei un grande!

Domani appena mi riprendo dalla catalessi in cui sono ora provo il tuo script.

Grazie infinite, la cosa può tornare molto utile nei lavori con mappature ripetitive! :)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
Philix sei un grande!

Domani appena mi riprendo dalla catalessi in cui sono ora provo il tuo script.

Grazie infinite, la cosa può tornare molto utile nei lavori con mappature ripetitive! :)

spero funzioni :D

a me funziona ma siccome sono alle prime armi mi fido ancora poco del codice che invento ;):D

fammi sapere

PS

mi sono dimenticato di specificare che il primo codice funziona per un solo oggetto selezionato mentre il secondo funza su una selezione di più oggetti

occhio che non ci sono controlli di errore e se nella selezione anche un solo oggetto non ha il modificatore uvwmap o non sta nell'ordine specificato lo script si blocca e non funza


Modificato da philix

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
PS

mi sono dimenticato di specificare che il primo codice funziona per un solo oggetto selezionato mentre il secondo funza su una selezione di più oggetti

occhio che non ci sono controlli di errore e se nella selezione anche un solo oggetto non ha il modificatore uvwmap o non sta nell'ordine specificato lo script si blocca e non funza

Si, si capiva.

A me interessa soprattutto quello su + oggetti.

In pratica se lo conoscevo 3 ore fa selezionavo le mie 130 canne, applicavo un uvw map con mappatura cilindrica e col secondo script posizionavo in maniera casuale le textures!

Certo avrei anche dovuto modificare il tiling, ma almeno per il gizmo mi salvava dalla quella palla pazzesca di lavoro ripetitivo!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

ultima cosa prima di andare a nanna :D

nel caso volessi intervenire su una sola coordinata (ad es. la Z) puoi usare questa variante:

for obj in selection do (
 in coordsys local obj.modifiers[1].gizmo.position.z = (random -100 100)
 )[/code] per modificarne due puoi usare questa:
[code]for obj in selection do (
 in coordsys local obj.modifiers[1].gizmo.position.z = (random -100 100)
 in coordsys local obj.modifiers[1].gizmo.position.x = (random -100 100)
 )

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Mitico philix tra un po modellerà direttamente in maxscript, e vedrà il mondo fatto da numeri e caratteri strani... :D

ah no quello era matrix :D

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Cavolo se funziona (e sono sicuro di questo anche se al volo non posso sperimentare) ci dobbiamo assolutamente beccare al prossimo raduno che ti pago da bere.

Sei veramente un grande! :D

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Mitico philix tra un po modellerà direttamente in maxscript, e vedrà il mondo fatto da numeri e caratteri strani... :D

ah no quello era matrix :D

è quello che sto cercando di fare per la mia tesi in architettura :D

generazione e posizionamento di geometrie secondo regole prestabilite e/o parametri casuali; il tutto realizzato e studiato sotto i millemila aspetti relativi all''architettura

non so neanche io dove mi porterà sta cosa ;)

@altri

sono contento che quel codice vi risulti utile

man mano che mi addentro nei meandri del maxscript mi accorgo di quanto sia potente O_O

ho scoperto che, con semplici linee di codice riesco a risparmiare minuti preziosi durante il setup di scene anche comuni

se avete critiche, suggerimenti o richieste non esitate a comunicarmele perchè sono ancora in fase di studio approfondito e qualsiasi esercizio concreto su cui lavorare è ottimo per l'apprendimento

tenete però conto che sono ancora alle prime armi e quasi sicuramente non sarò in grado di soddisfare le vostre richieste ;)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
è quello che sto cercando di fare per la mia tesi in architettura :D

generazione e posizionamento di geometrie secondo regole prestabilite e/o parametri casuali; il tutto realizzato e studiato sotto i millemila aspetti relativi all''architettura

non so neanche io dove mi porterà sta cosa ;)

@altri

sono contento che quel codice vi risulti utile

man mano che mi addentro nei meandri del maxscript mi accorgo di quanto sia potente O_O

ho scoperto che, con semplici linee di codice riesco a risparmiare minuti preziosi durante il setup di scene anche comuni

se avete critiche, suggerimenti o richieste non esitate a comunicarmele perchè sono ancora in fase di studio approfondito e qualsiasi esercizio concreto su cui lavorare è ottimo per l'apprendimento

tenete però conto che sono ancora alle prime armi e quasi sicuramente non sarò in grado di soddisfare le vostre richieste ;)

stai usando il reference maxscript ufficiale per imparare ? è difficile?

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
stai usando il reference maxscript ufficiale per imparare ? è difficile?

ho iniziato con un videotutorial reperito in giro per la rete poi però, non trovando materiale decente, ho acquistato due dvd su questo sito. ben realizzati anche se parlano un inglese un po' "masticato"

i tutorial sono rivolti agli utenti "normali" di max ovvero a chi pensa che la programmazione sia quella che trova sul televideo la sera prima di vedersi un film :D

I videotutorial partono dai concetti base fino ad arrivare alle "cose complicate"

Durante il videocorso ti insegnano anche ad utilizzare l'help e ti illustrano come meglio reperire le informazioni dall'help ufficiale; la cosa, a sentirla dire sembra sciocca come cosa ma si rivela molto utile

Per me, fino ad ora, è stato relativamente semplice apprendere la maggior parte delle dinamiche di 'sto linguaggio; forse aiutato anche dalla buona conoscenza che ho dell'action script di macromedia flash

forse tra un due settimane inizierò a studiarmi la marea di script che si trovano in giro per la rete... non so ancora se sarò in grado di comprenderli :D

@archigius

purtroppo per il tiling non conosco la soluzione ("scripticamente" parlando)

come alternative ci sono Texture Shaker che ti hanno già consigliato oppure una smanettata approfondita di photosop unita ad un uso magistrale delle MIX maps


Modificato da philix

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Molto interessante Phil... vedo che procedi bene con lo scripting!! Magari quando te la sentirai potrebbe scapparci anche un tutorial.

Mi vedo già il tiolo: "MaxScript tutorial: fragga Gtsix in sole 10 righe di codice" :blink::w00t:

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
@archigius

purtroppo per il tiling non conosco la soluzione ("scripticamente" parlando)

come alternative ci sono Texture Shaker che ti hanno già consigliato oppure una smanettata approfondita di photosop unita ad un uso magistrale delle MIX maps

Thanks.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
philix mi puoi consigliare un buo testo per studiare il max script??  :D

non adoro i dvd  :(

di testi ne esiste soltanto uno, è in inglese e non so dirti se si limita all'elenco dei singoli comandi (come spesso accade con questo tipo di manualistica) o ti insegna le metodologie

io nell'indecisione ho preferito i videotutorial

se il libro non ti convince in questa pagina trovi parecchi link interessanti


Modificato da philix

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Non so se la soluzione è stata proposta durante il thread (non l'ho letto tutto) ma avete provato con il material by element?

Daniel.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
uhm... sto studiando un po' di maxscript e ho fatto qualche prova

seleziona l'oggetto a cui vuoi cambiare posizione del gizmo e digita nel listener:

in coordsys local $.modifiers[1].gizmo.position = [(random -100 100),(random -100 100),(random -100 100)]
l'1 tra parentesi quadre indica la posizione del modificatore uvw mapping; se ci sono altri modificatori applicati all'oggetto devi cambiare il numero e mettere quello relativo alla posizione del modificatore ad es. se hai: Displace UVW Mapping Edit Mesh Box dovrai piazzare [2] perchè l'uvw mapping è sulla seconda riga nel caso volessi applicare il posizionamento random a più oggetti selezionati puoi utilizzare questo script:
for obj in selection do (

in coordsys local obj.modifiers[1].gizmo.position = [(random -100 100),(random -100 100),(random -100 100)] 

)

vai nel menù maxscript, selezioni new script, incolli il codice dentro, lo selezioni e lo trascini sulla barra dei pulsanti così ti compare un nuovo pulsante

non devi fare altro che selezionare le geometrie e schiacciare il bottone

PS

(random -100 100) indica il range nel quale lui pesca le coordinate casuali; in questo caso prende un numero tra -100 e 100

puoi modificarlo come ti pare ;)

scusa philip, sicuramente te lo hanno gia chiesto.

mi è capitato anche a me di mappare dei bamboo ed ho usato il tuo scipt, la mappatura la cambia solo che la cambia in ugual modo in tutte le canne, mi spiego meglio in termini terra terra, quando eseguo lo script si vede che cambia, ma cambiano allo stesso modo tutte le canne, questo accade solo assegnando un uvw mapping a tutte le canne, mentre assegnando un uvw map ad ogni canna il problema non c'è.

per cui il mio problema è questo: c'è un modo per assegnare contemporaneamente un uvw mapping a tutti i bamboo e far si che poi l'uvw map risulti separato per ogni canna.

spero di essere stato chiaro a presto grazie.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×