|
Come far "ingrassare" i modelli 3d
|
| Autore |
Messaggio |
Gringo
Member
Messaggi: 101
Registrato: Feb 2011
Offline
|
#1
Come far "ingrassare" i modelli 3d
Sto sviluppando un piccolo gioco 3d in cui si alleva un piccolo animale (un mostro in realtà) e voglio inserire la possibilità di farlo ingrassare dopo che ha mangiato tanto e farlo dimagrire dopo che ha fatto esercizio fisico.
La mia domanda è, come gestisco la crescita del modello 3d?
Lo sto sviluppando con Unity3D e C#.
Giacomo Antonelli
|
|
| 09-01-2012 16:25 |
|
arka80
Member
Messaggi: 224
Registrato: Jul 2011
Offline
|
|
| 09-01-2012 16:33 |
|
_tommo_
Mod nerdcore
Messaggi: 6,043
Registrato: Nov 2008
Online
|
#3
RE: Come far "ingrassare" i modelli 3d
Io farei due mesh, una magra e una grassa. Poi a runtime ti carichi entrambe e le usi per creare una mesh che interpola linearmente le posizioni di tutti i vertici di entrambie a seconda della "grassezza" 
Così hai il massimo controllo su com'è grasso e com'è magro, senza dover pensare ad algoritmi folli!
Se invece ti piacciono gli algoritmi folli, potresti mettere ad ogni vertice un vertex colour che rappresenta la normale di estrusione. A quel punto in uno shader fai position += extrude_normal*fatness e dovrebbe venire qualcosa di decente
Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
(Questo messaggio è stato modificato l'ultima volta il: 09-01-2012 16:36 da _tommo_.)
|
|
| 09-01-2012 16:35 |
|
_tommo_
Mod nerdcore
Messaggi: 6,043
Registrato: Nov 2008
Online
|
#5
RE: Come far "ingrassare" i modelli 3d
(09-01-2012 16:35)Gringo ha scritto: Avevo pensato a fare più modelli, ma se volessi gestire in maniera separata la crescita degli arti?
Ti conviene vedere come si fanno le skinned mesh allora
Allora, seguendo l'idea degli extrude_normal nel vertex color:
-ogni vertice sa a quali bone è attaccato e con quale peso;
-passi allo shader un float[] che contiene le "fatness" di tutti i bone;
-il vertice interpola la "fatness" di tutti i suoi bone
-come prima, local_position += extrude_normal*fatness;
-e poi trasformi in world
Dovrebbe funzionare
Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
|
|
| 09-01-2012 16:41 |
|