把Kinect扫描的点云数据导入Maya | Import Kinect point cloud to Maya

I used Skanect to scan my room down. The .ply file generated is like this:

0.614557 -0.0194625 -0.305274 -0.127814 -0.551592 0.824263 100 113 96
0.614418 -0.019946 -0.305417 -0.127814 -0.551592 0.824263 98 111 96
0.61429 0.00103368 -0.303381 0.0386538 -0.603242 0.796621 104 107 95

扫描用的工具叫Skanect,参见上一篇
导出的.ply文件大概是这样

0.614557 -0.0194625 -0.305274 -0.127814 -0.551592 0.824263 100 113 96
0.614418 -0.019946 -0.305417 -0.127814 -0.551592 0.824263 98 111 96
0.61429 0.00103368 -0.303381 0.0386538 -0.603242 0.796621 104 107 95

9 columns are x, y, z, xn(normal), yn, zn, r, g, b.
Took me a while to make it work because I didn’t know shit about Python itself or Maya Python. So if you’re in fog too I present you Python functions for Maya.

19_16_06
^result.

Notes:

Attributes have types, I forgot because Python fed me honey on this one. Stuck for a day.
emit() is buggy, it crashed the soul out of me when I used at=’rgbPP’ , use setParticleAttr() instead

Important, after importing, do ‘set current state to initial state’ and cache the first frame, otherwise the color will be gone next time you start it, this is some bullshit.

To hide part of the point cloud, select and cmds.setParticleAttr(at=’opacityPP’, fv=0).

[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z ,a ,a a, R, G, B for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=100 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)!=9:
rotted=True
if rotted:
continue

for a in range(6,9): #Just because it’s x y z bla bla bla r g b in my case
xyz[a]/=255

cmds.emit(object=p0,position=xyz[:3])
cmds.select(p0+’.pt[‘+str(pn)+’]’)
cmds.setParticleAttr(at=’rgbPP’, vv=xyz[6:9])
pn+=1

[/py]

Additional Python script to import particles, using only the first 3 numbers everyline as x,y,z and ignoring others.
There surely is way to make this more compatible but that’s too much effort..
[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=1 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)<3:
rotted=True
if rotted:
continue

cmds.emit(object=p0,position=xyz[:3])
pn+=1
[/py]
9行分别是 x, y, z, xn, yn, zn, r, g, b,xn是normal方向。
所以用个脚本从文件读数据-添加粒子就行了。
搜到这里的同学估计和我半斤八两,所以我present你Maya Python函数表
19_16_06
效果图(脚本见文末)

小记:
添加attribute注意类型,Python让我忘了这茬了,卡了我半天。
emit()函数有bug,直接 at=‘rgbPP’ 的话会崩溃,要用setParticleAttr()

5/1/2013 Update:
导入以后要先set current state to initial state 然后存下首帧cache,不然颜色会丢掉。
不要的部分可以选中然后 cmds.setParticleAttr(at=’opacityPP’, fv=0) 隐藏。

[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z ,a ,a a, R, G, B for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=100 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)!=9:
rotted=True
if rotted:
continue

for a in range(6,9): #Just because it’s x y z bla bla bla r g b in my case
xyz[a]/=255

cmds.emit(object=p0,position=xyz[:3])
cmds.select(p0+’.pt[‘+str(pn)+’]’)
cmds.setParticleAttr(at=’rgbPP’, vv=xyz[6:9])
pn+=1
[/py]

另外附加只看每行前3个数字作为xyz,忽略其他的python脚本
当然可以并成一个了但是没那闲情..
[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=1 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)<3:
rotted=True
if rotted:
continue

cmds.emit(object=p0,position=xyz[:3])
pn+=1
[/py]

288 thoughts on “把Kinect扫描的点云数据导入Maya | Import Kinect point cloud to Maya

  1. Reubencresy

    Конторы предоставляют шанс делать пари на спортивные матчи.
    Крайне важно отдавать предпочтение лицензированных букмекеров, а также тщательно изучать роспись до оформлением ставки.
    Ставки способны превратиться интересным досугом, однако необходимо соблюдать баланс ответственной игры и ограничивать бюджет.
    https://rosotels.ru/detail/2026-07-16-plyusy-i-minusy-ispolzovaniya-mobilnykh-prilozheniy-vs-veb-saytov-bukmekerov.htm

    Reply
  2. hasfaniyot.net

    האתר הזה מציע מבחר עשיר של מידע המותאמים למשתמשים הישראלי.
    כאן תוכלו לגלות תוכן מגוונים בנושא המבוגרים ברמה מעולה.
    הפלטפורמה מאפשרת אפשרות נוחה לחומרים אלה תוך הקפדה על אנונימיות הגולש.
    https://hasfaniyot.net/

    Reply
  3. sneaky

    Probldms inn penisBreeana tabuu fuckEscor servuce iin frankfurtNude swimming classees iin thhe 50’sFree amjatuer blowjob picsBiig brunette assPhtobucket titHoward stern nuude girlSlut n stringsPuss picture
    off likndsey lohanLaptop wiig bagg off dildosXoxoo
    lewh nude galleryBody mind nudeBantla privatte
    sexArsse fuhked bby trannyCuum pig gaay blowjobsMarrisa miller diamond bikini picAdult guidelinesSeexy menn iin showersWebcamm por tars hotmailNorgges 2 sexFreee nud greek picsNaked
    bizzar picHair hested men galleriesTiied uup iin heer pantyhosePhotfo gallery oof sdxy badass marineYooga porrn videoExtrme grannis asianOhiio ssex ffender lawsGay bars
    saatoga nyHoot uncut dickTeenn challenge soujth walesViintage surgical lightsBack hwiry momsHot famous womesn nakedHartpey justin nakedHoot sexx
    shenes metacafeLoyisiana ggay cha roomPregnancy ssymptoms vaginalAmyy fyturama charactr nakedElida centr facialCamerra
    hiddsn indian sex videoRougfh sexx glamour pornEscoirt adulot
    canadaSexyy young modeks tgpGayy weddijg clipFreshly waxed pussyDo
    you scream durfing sexCondine pornFiest tome ggay loversReall
    milfs no modelsLargess titsVideos exrait pornoVimtage advertisements
    foor carsBreawt ultrasounmd priceSexy bobble bodyBriannma taylor stripperI
    lov bbig blac cocxk shirtWomnen witth hughh natural boobsEricfa hustler
    outfitGroup adult vacationsHoow mawny hmosexuals in americaMfm pleasure swingin threesom wifePenus enlargement pill inn pakistanTinny dikck husbandsPemis size noseHmorous aduhlt pajamasShemalee dominattion mpegsHebtai biig
    ttit fuckTeeen dirtbagLadykikllers biig assCharacteeistics
    of the female orgasmAleex kingtkn nudeTomny porn styar canada
    milfFemaoe clitois teasingBlonde fuck betterBiizen irl sayopko slutPeadoo
    fuckAnaal porn reviewArea bay crai erotic list servicesFemkale
    escoorts iin lucknowAllegic to lqtex condomsCindxy craeford nnaked pictyure playboySoutherast assian chineseCarmn pena on cassting couch teensJodeies biig bottomMature butt licking websiteSexyy girl oon dvdFirre andd icee condoms commericalWomesn who like male
    cockWhatt penmis siize iss goodFreee porn vifeo ample wuthout membershipHiis first gayy dateCumshkt while lickig cock
    videoBroother sistr pornstarsSewing pattern forr ann axult bibVintage ibus journalsVenfure tape
    copper reinforcing stripCoasdt gurd seexual haraesment polpicy
    ofvd9wuaptxh9w30hszj

    Reply
  4. MichaelNoils

    A generic version is a formulation that is created to be equivalent a innovator drug in potency, purity, and performance.
    This product contains the same active ingredient as the branded drug, yet may differ in excipients and price.
    For market entry, a generic drug must demonstrate bioequivalence to the brand-name product, ensuring it is equally safe and potent.
    imedix review

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *