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

Импорт моделей, проблема с развёрткой.

Тема в разделе "MAXScript", создана пользователем Душелов, 15 май 2009.

Модераторы: Savin Denis
  1. Душелов

    Душелов Активный участник

    С нами с:
    16.10.2006
    Сообщения:
    155
    Симпатии:
    0
    Баллы:
    11
    имеется скрипт для импорта моделей формата IMD в макс. Это модели из игры. К самим моделям притензий нет, экспортируются правильно, но вот координаты текстурных развёрток экспортируются не правильно. Если применить анврап и посмотреть что в нем творится. то все точки лежат в одной и той же координате, их не возможно увеличить. Возможно проблема в создании модельки через макс скрипт? вот что там написано

    Я создавал так:
    mesh name:("OBJ") vertices:vert faces:face material:material tverts:tvert
    Как видишь, я при этом передавал координаты вершин, список вершин, материал и текстурные координаты.
    Читал координаты так:
    local x,y,z,u,v
    x = ReadFloat bstream
    y = ReadFloat bstream
    z = ReadFloat bstream
    u = ReadFloat bstream
    v = 1 - ReadFloat bstream -- Здесь координаты перевернуты...
    append points (IMD_point x:x y:y z:z u:u v:v)

    Т.е. текстурные координаты читаются

    А потом создавал массив текстурных координат так:
    x=gvtx[j].points.u
    y=gvtx[j].points.v
    z=0
    append tvert ([x,y,z])

    Тут только последняя координата нулевая - z

    ну это с пояснениями)

    Интересует макс 9 или 2010
     
  2. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Сейчас так не работает
    Код:
    The optional tverts array feature is currently broken. The texture vertices are set correctly, but no texture faces are built internally. Until this gets fixed, you can work around by building the texture faces yourself:
     
    
    WORKAROUND EXAMPLE:
    
    mnode = mesh vertices:#([0,0,0],[10,0,0],[0,10,0],[10,10,0]) tverts:#([0,0,0],[10,0,0],[0,10,0],[10,10,0]) faces:#([1,2,3],[2,4,3])
    mmesh = mnode.mesh
    buildTVFaces mmesh 
    for i = 1 to mmesh.numfaces do (setTVFace mmesh i (getFace mmesh i))
    
    PS
    Умористы они конечно.
     
  3. megavitus

    megavitus Пользователь сайта

    С нами с:
    07.06.2006
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    2
    Вот работающий кусочек аналогичного импортёра из бинарного формата, полученный после плясок с бубном.

    Код:
    --build mesh
    mm = mesh vertices:arrv faces:arrf
    --set UV
    setNumTVerts mm numtvert
    for i = 1 to numtvert do (setTVert mm i arrtv[i])
    buildTVFaces mm false
    for i = 1 to numfaces do (setTVFace mm i arrf[i])
    
    Здесь
    arrv -массив вершин
    arrf -массив фейсов
    arrtv -массив текстурных вершин
    numtvert - количество текстурных вершин
    numfaces - количество фейсов
     
  4. Душелов

    Душелов Активный участник

    С нами с:
    16.10.2006
    Сообщения:
    155
    Симпатии:
    0
    Баллы:
    11
    Savin Denis , megavitus, спасибо, уже все исправил и все работает.
     
Модераторы: Savin Denis

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