1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Помогите ускорить считывание данных с геометрии.

Тема в разделе "MAXScript", создана пользователем Александр Якушев, 8 июн 2015.

Модераторы: Savin Denis
  1. Александр Якушев

    Александр Якушев Активный участник

    С нами с:
    13.08.2009
    Сообщения:
    77
    Симпатии:
    1
    Баллы:
    7
    Код:
    start1 = timestamp()   
    obj =  snapshotasmesh (Sphere radius:100 segs:200 pos:[0,0,0])
    ObjNumFaces = obj.numfaces
    arrayMeshData = #()  --index face, normal, face area, center face
    
    --zapishem dannie v massivy
    for f = 1 to ObjNumFaces do
    (
        VertUseFaces = getFace obj f
        arVert =  #(getVert obj VertUseFaces[1], getVert obj VertUseFaces[2], getVert obj VertUseFaces[3])
        append arrayMeshData #(getFaceNormal obj f, meshop.getFaceArea obj f, meshop.getFaceCenter obj f, arVert)
        )
    delete obj
    end1 = timestamp()
    format "changecones() took % seconds\n" ((end1-start1)/1000.0)    

    На выходе должен быть массив данных arrayMeshData.
    У меня получается changecones() took 6.548 seconds.
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Код:
    start1 = timestamp()
    obj =  snapshotasmesh (Sphere radius:100 segs:200 pos:[0,0,0])
    ObjNumFaces = obj.numfaces
    arrayMeshData = #()  --index face, normal, face area, center face
    
    --zapishem dannie v massivy
    for f = 1 to ObjNumFaces do
    (
        VertUseFaces = getFace obj f
        v1=getVert obj VertUseFaces[1]; v2=getVert obj VertUseFaces[2]; v3=getVert obj VertUseFaces[3];
        arVert =  #(v1,v2,v3)
        a=length(v2-v1); b=length(v3-v1); c=length(v3-v2);
        s=(a+b+c)/2.0; s=s*(s-a)*(s-b)*(s-c); fa=pow s 0.5
        append arrayMeshData #(getFaceNormal obj f, fa, meshop.getFaceCenter obj f, arVert)
        )
    delete obj
    end1 = timestamp()
    format "changecones() took % seconds\n" ((end1-start1)/1000.0)
     
    Александр Якушев нравится это.
  3. Александр Якушев

    Александр Якушев Активный участник

    С нами с:
    13.08.2009
    Сообщения:
    77
    Симпатии:
    1
    Баллы:
    7
    Невероятно! Спасибо igorznag!
    changecones() took 0.777 seconds :D
     
Модераторы: Savin Denis

Поделиться этой страницей