3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

80 страниц V  « < 78 79 80  
Reply to this topicStart new topic
> Я только начинаю изучать Maxscript
mikola
сообщение 26/04/2018, 17:25
Сообщение #1186


Ученик
Иконка группы

Группа: Пользователи
Сообщений: 25
Регистрация: 29/05/2007
Пользователь №: 53 407



Приветствую . Друзья помогите разобраться почему скрипт не работает. Он должен удалять дублирующиеся полигоны но при запуске Макс выдает ошибку.
CODE

(
--change this value if the script is deleting too few or too many faces
local limit = 0.01
local obj = selection

fn p3Equal p3a p3b = —"close enough" for point3 values
(
local pm = limit / 2.0
if (p3b > (p3a - pm)) and (p3b < (p3a + pm)) and
(p3b > (p3a - pm)) and (p3b < (p3a + pm)) and
(p3b > (p3a - pm)) and (p3b < (p3a + pm))
then
true
else
false
)

(
local polyList = #{}
polyCount = polyOp.getNumFaces obj
polyList.count = polyCount
for p = 1 to polyCount - 1 do
(
if not polyList
then
(
polyLoc = polyOp.getFaceCenter obj p
for np = p + 1 to polyCount do
(
npolyLoc = polyOp.getFaceCenter obj np
if p3Equal polyLoc npolyLoc then
polyList = true
)
)
)
--could be replaced with a setFaceSelection if required
polyOp.deleteFaces obj polyList
)
)

Источник https://forums.autodesk.com/t5/3ds-max-modeling/how-d..
Go to the top of the page
 
+Quote Post
RGhost
сообщение 01/07/2018, 11:30
Сообщение #1187


Рыцарь форума
Иконка группы

Группа: Участник
Сообщений: 2 200
Регистрация: 01/04/2003
Из: Moscow/Russia
Пользователь №: 1 802





Привет!

Что то не могу понять как проецировать картинку на текстуру (так как работают stamp кисти), не поможете?

Дано:
1. Точка в x,y,x пространстве.
2. Картинка для stamp'а.
3. 3d объект с UV
4. Картинка текстуры.

Нужно: Спроецировать stamp картинку на текстуру используя развертку (u,v,w) объекта.

На схеме:
1. Проецирование точки из xyz в uvw и отрисовка пикселя на текстуре. Работает.
2. Проецирование точки из xyz в uvw и отрисовка stamp изображения используя в качестве центра точку проецирования на текстуре (x,y). Работает в случае если stamp картинка не выходит за рамки треугольника на развертке относительно которого получена спроецированная точка.
3. Как быть если stamp изображение выходит за пределы треугольника?!

Сообщение отредактировал RGhost - 01/07/2018, 11:57
Go to the top of the page
 
+Quote Post
igorznag2
сообщение 01/07/2018, 16:29
Сообщение #1188


Бывалый
Иконка группы

Группа: Пользователи
Сообщений: 146
Регистрация: 14/08/2015
Пользователь №: 109 394



Цитата(RGhost @ 01/07/2018, 11:30) *
Нужно: Спроецировать stamp картинку на текстуру используя развертку (u,v,w) объекта.


Нужно использовать скрипт или это можно сделать без использования скрипта?
Если не нужно использовать скрипт, тогда попробуйте такой вариант:
Пример: https://youtu.be/1XjqjDZ3yWI

Выделяем объект с текстурой.
Создаем текстуру Composite используя текстуру объекта и картинку stamp.
Применяем к объекту модификатор UVW Mapping и выбираем второй канал.
В карте с картинкой stamp устанавливаем второй канал и отключаем Tile.
Если нужно получить спроецированную картинку, тогда используем Render To Texture.
Если нужно привязать Gizmo модификатора UVW Mapping к объекту Point, тогда испольуем скрипт Gizmo Control.

Такой вариант подходит для вас?
Go to the top of the page
 
+Quote Post
RGhost
сообщение 01/07/2018, 18:04
Сообщение #1189


Рыцарь форума
Иконка группы

Группа: Участник
Сообщений: 2 200
Регистрация: 01/04/2003
Из: Moscow/Russia
Пользователь №: 1 802



@igorznag2 Спасибо, с канала на канал идея мне приходила в голову, пока это как запасной план. Проецировать нужно будет тысячи точек.

Хотелось бы понять как в теории такое делается. Если по честному то надо трейсить каждый пиксель я так понимаю. Но может я что то упускаю, может есть методы проще...

Можно еще создать plane'ы со stamp в точках пересечения с объектом и потом или их attach'ить->RTT или трейсить на объект. И то и другое не быстро будет работать.

Мне интересны пока любые идеи.
Go to the top of the page
 
+Quote Post
Jahman
сообщение 01/07/2018, 21:29
Сообщение #1190


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 388
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



имхо, трейсить.
У тебя там разрыв между двумя кусками, на которые наложен один штамп, а в реальности это будет куча разрозненных uv-шеллов, на которых под разными углами, в разном масштабе наложены разные штампы. Поэтому для каждого треугольника придется по отдельности учитывать его поворот/масштаб и то какие из штампов на него наложены, а это куча операций. Ну и само собой получится, что все пиксели штампа, которые не попадают в треугольник нужно каждый раз отбрасывать как ненужные.
С трейсингом же независимо от количества штампов нужно лишь width*height раз узнать попал ли луч в треугольник развертки и если попал, то в какую точку штампа он попал и какой пиксель текстуры штампа соответствует этой точке. А вот как antialiasing между соседними пикселями делать это даже наверное посложнее вопрос.


Сообщение отредактировал Jahman - 01/07/2018, 21:39
Go to the top of the page
 
+Quote Post
igorznag2
сообщение 03/07/2018, 14:35
Сообщение #1191


Бывалый
Иконка группы

Группа: Пользователи
Сообщений: 146
Регистрация: 14/08/2015
Пользователь №: 109 394



Цитата(RGhost @ 01/07/2018, 18:04) *
@igorznag2 Спасибо, с канала на канал идея мне приходила в голову, пока это как запасной план. Проецировать нужно будет тысячи точек.

Почему для вас не подходит такой план?
Я написал скрипт, который делает Render To Texture для множество точек.
Пример: https://youtu.be/5tEC1qztvPU
Такой вариант подходит для вас?
Go to the top of the page
 
+Quote Post
RGhost
сообщение 03/07/2018, 16:32
Сообщение #1192


Рыцарь форума
Иконка группы

Группа: Участник
Сообщений: 2 200
Регистрация: 01/04/2003
Из: Moscow/Russia
Пользователь №: 1 802



Цитата(igorznag2 @ 03/07/2018, 14:35) *
Цитата(RGhost @ 01/07/2018, 18:04) *
@igorznag2 Спасибо, с канала на канал идея мне приходила в голову, пока это как запасной план. Проецировать нужно будет тысячи точек.

Почему для вас не подходит такой план?
Я написал скрипт, который делает Render To Texture для множество точек.
Пример: https://youtu.be/5tEC1qztvPU
Такой вариант подходит для вас?


Спасибо за участие @igorznag2!

Интересно сколько займет проецирование таким методом при условии что текстура 8192x8192 (или больше) а точек 600 000 (или больше).

Я так понимаю Ваш скрипт рендерит для каждого стампа текстуру а потом она добавляется к уже отрендереной?

Вообще я думаю совмещу два метода. Мой второй вариант хорошо (и быстро) работает где нет разрывов в развертке, а краевые (там где разрывы) стампы уже можно посчитать через RTT. Разрывов в геометрии будет немного.

Сообщение отредактировал RGhost - 03/07/2018, 16:33
Go to the top of the page
 
+Quote Post
vinigor
сообщение 15/07/2019, 20:40
Сообщение #1193


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 9
Регистрация: 19/05/2007
Пользователь №: 52 191



Я правильно понимаю что эта штука позволяет запускать работающие только в Editable Poly скрипты в Edit Poly?
http://www.scriptspot.com/3ds-max/scripts/polymodop
Подскажите, как это нужно применять, например к этому скрипту (align Pivot to selection), помимо того что скопировать .ms в папку stdscripts?
Код
(
    function FnSetPivot =
    (
        delta = [0,0,0]
        
        for verts in $.selectedVerts do
            delta += verts.pos
    
        delta /= $.selectedVerts.count
        $.pivot = delta
    )
    case subobjectLevel of
    (
        2:$.ConvertSelection #Edge #Vertex
        3:$.ConvertSelection #Border #Vertex
        4:$.ConvertSelection #Face #Vertex
        5:$.ConvertSelection #Element #Vertex
    )
    if subobjectLevel == 0 then
        for i in selection do (i.pivot = ((i.max + i.min)/2))
    else
        FnSetPivot()
)
Go to the top of the page
 
+Quote Post
RGhost
сообщение 15/07/2019, 23:14
Сообщение #1194


Рыцарь форума
Иконка группы

Группа: Участник
Сообщений: 2 200
Регистрация: 01/04/2003
Из: Moscow/Russia
Пользователь №: 1 802



Цитата(vinigor @ 15/07/2019, 20:40) *
Я правильно понимаю что эта штука позволяет запускать работающие только в Editable Poly скрипты в Edit Poly?
http://www.scriptspot.com/3ds-max/scripts/polymodop
Подскажите, как это нужно применять, например к этому скрипту (align Pivot to selection), помимо того что скопировать .ms в папку stdscripts?
Код
(
    function FnSetPivot =
    (
        delta = [0,0,0]
        
        for verts in $.selectedVerts do
            delta += verts.pos
    
        delta /= $.selectedVerts.count
        $.pivot = delta
    )
    case subobjectLevel of
    (
        2:$.ConvertSelection #Edge #Vertex
        3:$.ConvertSelection #Border #Vertex
        4:$.ConvertSelection #Face #Vertex
        5:$.ConvertSelection #Element #Vertex
    )
    if subobjectLevel == 0 then
        for i in selection do (i.pivot = ((i.max + i.min)/2))
    else
        FnSetPivot()
)


Нет, эта штука унифицирует функции по работе с editable poly и editpoly и позволяет прогеру писать скрипты быстрее. Тоесть код который у вас есть нужно переписать используя эту штуку или просто под editpoly modifier.
Go to the top of the page
 
+Quote Post
kuirp
сообщение 08/10/2019, 16:56
Сообщение #1195


Уже не новичок
Иконка группы

Группа: Пользователи
Сообщений: 21
Регистрация: 20/04/2013
Пользователь №: 89 988



Здравствуйте

Проблемка - создал файл скриптом:

Src = "D:\\art"
file = (createFile (Src + "\\text.bat"))

При запуске файла(через проводник) ошибка - файл используется(очевидно открытым 3ds MAX)
Вопрос:
Какой командой отвязать макс от файла, чтобы стало возможным запустить файл не закрывая макс? huh.gif

Сообщение отредактировал kuirp - 08/10/2019, 17:00
Go to the top of the page
 
+Quote Post
igorznag2
сообщение 08/10/2019, 19:14
Сообщение #1196


Бывалый
Иконка группы

Группа: Пользователи
Сообщений: 146
Регистрация: 14/08/2015
Пользователь №: 109 394



Цитата(kuirp @ 08/10/2019, 16:56) *
Какой командой отвязать макс от файла, чтобы стало возможным запустить файл не закрывая макс?

Код
close file
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






80 страниц V  « < 78 79 80
Reply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 11/12/2019 - 14:14