2016-02-09 1 views
0

Je veux mettre en œuvre une fonctionnalité dans laquelle la couleur d'une zone particulière sera sélectionnée par le modèle 3D. J'utilise vuforia et unity3d et implémenté avec succès la détection de cible. Dans l'étape suivante, je veux choisir la couleur de l'image et mettre cette couleur sur le modèle 3D.Coloriage 3d modèle Vuforia Unity

Beaucoup de gens l'ont déjà implémenté mais je ne suis pas capable de trouver un tutoriel complet à ce sujet.

Je suis fatigué d'utiliser la région Cature aussi, mais sans succès.

Répondre

2

Je voudrais prendre la zone de l'écran que vous recherchez, puis placez-le dans un tableau de pixels et faites la moyenne de ce tableau.

public Color GetColorFromScreen(int x, int y, int width, int height){ 
    Texture2D tex = new Texture2D(1, 1); 
    tex.ReadPixels(new Rect(x, y, width, height), 0, 0); 
    tex.Apply(); 
    Color [] pix = tex.GetPixels(x, y, width, height); 
    float r,g,b,a; 
    foreach (Color col in pix){ 
     r += col.r; 
     g += col.g; 
     b += col.b; 
     a += col.a; 
    } 

    r /= pix.Length; 
    g /= pix.Length; 
    b /= pix.Length; 
    a /= pix.Length; 
    return new Color(r,g,b,a); 
} 

Ensuite vous prenez le matériel de votre modèle et appliquez cette couleur

GetComponent<Renderer>().material.color = GetColorFromScreen(x,y,w,h); 
+0

assez chouette ... – Fattie

+0

Cet homme est génial! @Everts –