Blender (jusqu'à 2.49)
Python 
Trucs et Astuces(5)
Description: utiliser le vertex painting 
pour effectuer un effacement des faces
sélectionnées par une valueur de gris limite .
(mise à jour le 14/08/2008)
    Début   Index
précédentScript Python: displacement painting
Couleurs Basées sur la normal Suivant

#!BPY

""" Registration info for Blender menus: <- these words are ignored
Name: 'Painted faces erazer'
Blender: 232
Group: 'Mesh'
Tip: 'remove vertex colored faces beyond a limit.'
"""
#----------------------------------------------
# jm soler  08/2005 :  'reorganize_buildeffectmesh'
#----------------------------------------------
# Page officielle :
#   http://jmsoler.free.fr/util/blenderfile/py/cpl_PaintedFacesErazer.htm
# Communiquer les problemes et erreurs sur:
#   http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender
#--------------------------------------------- 
#-------------------------------------------- 
#  Reorganize faces from the selected one
#  for a built effect
#  Jm Soler  august 2005

#  This script is under  GPL licence.
#-------------------------------------------- 
import Blender
from Blender import *
import sys

def removecoloredfaces(niveaudegris,all=None):
 mesh=Blender.Scene.getCurrent().getActiveObject().getData()
 LF=[]
 if all: 
  SF=[f for f in mesh.faces if f.sel==1]
 else : 
  SF=[f for f in mesh.faces]
 for f in SF:
  color=0
  for n in range(len(f.col)):
   color=color+(f.col[n].r+f.col[n].g+f.col[n].b)/3
   if color/len(f.v)>niveaudegris:
    LF.append(f) 
 NewMESH=NMesh.GetRaw()
 print len(LF)
 for f in LF:
  for v in f.v :
   if v not in NewMESH.verts:
    NewMESH.verts.append(v)
  NewMESH.faces.append(f)
 NewMESH.materials=mesh.materials[:]
 NMesh.PutRaw(NewMESH,mesh.name,1) 
if 1:#try:
 EDITMODE=Blender.Window.EditMode()
 Blender.Window.EditMode(0)
 removecoloredfaces(100) 
 Blender.Window.EditMode(EDITMODE) 
#except:
# print 'perhaps not a mesh or no object selected' 
Blender.Redraw() 

 

Variation
 

import Blender
from Blender import *
#la somme des couleurs des sommets d'une face
niveaudegris=100
me=Blender.Scene.getCurrent().getActiveObject().getData()
for f in me.faces:
   color=0
   print len(f.col)
   try:
     for n in range(len(f.col)):
        color=color+(f.col[n].r+f.col[n].g+f.col[n].b)/3
        if color/len(f.v)>niveaudegris:
           me.removeFace(f)
   except:
    pass
me.update() 
précédentScript Python: displacement painting
 Couleurs Basées sur la normal Suivant
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender


 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube