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

Текстурные координаты, каналы и скрипты

Тема в разделе "Общие вопросы", создана пользователем -, 25 июл 2004.

Модераторы: Артер
  1. Guest

    Возникла необходимость переделать многоматериальную модель( много текстур - для каждой текстуры свои текстурные координаты(тк) в канале ) на однотекстурную. Я собрал все текстуры в одну и стал писать скрипт для преобразования и переноса текстурных координат в один канал... и столкнулся вот с какой проблеммой: даже просто перенос тк из одного канала в другой работает не правильно! Вот код, простой перенос тк из канала 2 в канал 10:
    Tmesh = convertToMesh $
    for i = 1 to Tmesh.numfaces do
    (
    id = getFaceMatID Tmesh i

    if id == 2 do
    (
    fuv1 = meshop.getMapFace Tmesh 2 i
    fuv2 = meshop.getMapFace Tmesh 10 i
    for j = 1 to 3 do
    (
    uvw = meshop.getMapVert Tmesh 2 fuv1[j]
    meshop.setMapVert Tmesh 10 fuv2[j] uvw
    )
    )
    )
    Update Tmesh
    Потом просто заменяю номер канала в материале 2 на 10( вроде не должно ничего изменится) но получается некоторое искажение, вот картинки:
    http://www.tora-bora.boom.ru/good.bmp
    http://www.tora-bora.boom.ru/bad.bmp
    Если кому лень смотреть, то часть координат переносится правильно, большая часть картинки не изменилась, но другая искажена.
    Заранее благодарен за ответ
     
  2. Guest

    Тебе скорее сюда:
    http://render.ru/forumlight/list.php?f=31

    или сюда:
    http://www.3dcenter.ru/forum/index.php?showforum=3
     
  3. Guest

    Я решил проблемму. Если кому интересно:
    У face'ов в 10 канале были смежные TVвершины надо было сбросить массив TVвершин и изменять face'ы. Вот правильный код:
    Tmesh = convertToMesh $
    nVtx = meshop.getNumMapVerts Tmesh 2
    meshop.setNumMapVerts Tmesh 10 nVtx
    for i = 1 to Tmesh.numfaces do
    (
    id = getFaceMatID Tmesh i

    if id == 2 do
    (
    fuv = meshop.getMapFace Tmesh 2 i
    for j = 1 to 3 do
    (
    uvw = meshop.getMapVert Tmesh 2 fuv[j]
    meshop.setMapVert Tmesh 10 fuv[j] uvw
    )
    meshop.setMapFace Tmesh 10 i fuv
    )
    )
    Update Tmesh
     
Модераторы: Артер

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