Render.ru

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

#1
Возникла необходимость переделать многоматериальную модель( много текстур - для каждой текстуры свои текстурные координаты(тк) в канале ) на однотекстурную. Я собрал все текстуры в одну и стал писать скрипт для преобразования и переноса текстурных координат в один канал... и столкнулся вот с какой проблеммой: даже просто перенос тк из одного канала в другой работает не правильно! Вот код, простой перенос тк из канала 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
Тебе скорее сюда:
http://render.ru/forumlight/list.php?f=31

или сюда:
http://www.3dcenter.ru/forum/index.php?showforum=3
 
#3
Я решил проблемму. Если кому интересно:
У 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
 
Сверху