3DCenter.ru

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

82 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Я только начинаю изучать Maxscript
Desead
сообщение 05/07/2004, 08:17
Сообщение #31


Знаток
Иконка группы

Группа: Участник
Сообщений: 257
Регистрация: 16/05/2003
Из: SPb
Пользователь №: 2 235



луп я уже смотрю готов, эх неуспел я, ну да это и хорошо, остался подобный шринк сделать.
QUOTE
Ну и зря. Простой вариант не всегда лучше сложного. Мой алгоритм переберает все эджи полученные от ринга или лупа, т.е. чем больше плотность сетки, тем дольше будет происходить сравнение. В твоем алгоритме сравнивается фиксированное число точек и число сравнений не зависит от сложности сетки модели, что и сказывается(положительно) на производительности

согласен, но думаю современные машины с выделением рёбер справяться без проблем вне зависимости от тяжести модели...хотя это было бы неплохо проверить, мало ли какой будет результат :-)))
Go to the top of the page
 
+Quote Post
Shiva
сообщение 05/07/2004, 08:36
Сообщение #32


Красив как Бог, умен как Дъявол
Иконка группы

Группа: Хранители порядка
Сообщений: 4 478
Регистрация: 16/06/2002
Из: Одесса
Пользователь №: 8



pepper и Desead - молодцы! yes.gif
Только хорошо бы все скрипты доводить до полезной завершенности.
Loop я так понял тоже работет только в одну сторону?!..
Давайте все таки соберем этот набор из Selection Tool в нечто полноценное и отдадим народу в пользование. )
Сам с удовольствием буду пользоваться. laugh.gif
я это вижу как 4е инструмента - 4е иконки на тулзбаре..
иконки могу нарисовать..
1) Grow Ring
2) Shrink Ring
3) Grow Loop
4) Shrink Loop
Но не забывайте, это инструмет, а инструмент должен быть быстрым и надежным!
Если он будет тормозить работу или глючить - толку тогда от него?..
Вспоминаю (да именно вспоминаю) CleanCut... замечательный удобный инструмент... если бы не вылетал раз в 5 минут!! mad.gif

Сообщение отредактировал Shiva - 05/07/2004, 08:45
Go to the top of the page
 
+Quote Post
Eraser
сообщение 05/07/2004, 09:39
Сообщение #33


выпуклая бобышка
Иконка группы

Группа: Модераторы
Сообщений: 4 587
Регистрация: 05/07/2002
Из: верг
Пользователь №: 281



Странно что у тебя с клинкатом проблемы - у меня все путем, не знаю даже как без него сейчас было бы smile.gif
Go to the top of the page
 
+Quote Post
pepper
сообщение 05/07/2004, 10:27
Сообщение #34


Наш человек
Иконка группы

Группа: Участник
Сообщений: 415
Регистрация: 10/07/2003
Из: Киев, Украина
Пользователь №: 2 786



QUOTE
Loop я так понял тоже работет только в одну сторону?!..

Что значит "тоже" и в одну сторону?
Все работает как и просили: выделяется по 2 эджа смежных с выделенными эджами.

QUOTE
1) Grow Ring
2) Shrink Ring
3) Grow Loop
4) Shrink Loop

А что каждый должен выполнять?
Go to the top of the page
 
+Quote Post
C00PER
сообщение 05/07/2004, 13:18
Сообщение #35


Take him away!
Иконка группы

Группа: Модераторы
Сообщений: 2 575
Регистрация: 31/10/2002
Из: оттуда
Пользователь №: 1 040



имеется ввиду что неплохо бы иметь возможность как увеличивать выделение, так и уменьшать его
Go to the top of the page
 
+Quote Post
Shiva
сообщение 05/07/2004, 22:05
Сообщение #36


Красив как Бог, умен как Дъявол
Иконка группы

Группа: Хранители порядка
Сообщений: 4 478
Регистрация: 16/06/2002
Из: Одесса
Пользователь №: 8



Именнно! )
каждый из них должен выполнять свою аналогию..
1) Grow Ring - выделение увеличиваеться по кольцу <IIII>
2) Shrink Ring - выделение уменьшаеться по кольцу >IIII<
3) Увеличиваетьяс по "Смежным"??? <---->
4) уменьшаетсья по смежным. >----<
Go to the top of the page
 
+Quote Post
Desead
сообщение 07/07/2004, 10:17
Сообщение #37


Знаток
Иконка группы

Группа: Участник
Сообщений: 257
Регистрация: 16/05/2003
Из: SPb
Пользователь №: 2 235



QUOTE(Shiva @ Jul 5 2004, 23:05)
Именнно! )
каждый из них должен выполнять свою аналогию..
1) Grow Ring - выделение увеличиваеться по кольцу   <IIII>
2) Shrink Ring  - выделение уменьшаеться по кольцу   >IIII<
3) Увеличиваетьяс по "Смежным"???   <---->
4) уменьшаетсья по смежным.  >----<

я вроде наконец то понял как должен работат shrink ring и shrink loop, на выходных если получиться со временем то попробую написать :-)))
Go to the top of the page
 
+Quote Post
pepper
сообщение 07/07/2004, 10:56
Сообщение #38


Наш человек
Иконка группы

Группа: Участник
Сообщений: 415
Регистрация: 10/07/2003
Из: Киев, Украина
Пользователь №: 2 786



А я вроде уже сделал. cool.gif tongue.gif
С шринк лупом проблем почти нет.
А вот шринк ринг не работает только если веделенны ВСЕ грани рига(от одного края объекта до другого).....короче, тестим!
Если всё устроит, то заверну все скрипты, чтобы можно было хоткеи назначить
Прикрепленные файлы
Прикрепленный файл  shrink2.zip ( 930 байт ) Кол-во скачиваний: 474
 
Go to the top of the page
 
+Quote Post
Desead
сообщение 07/07/2004, 13:34
Сообщение #39


Знаток
Иконка группы

Группа: Участник
Сообщений: 257
Регистрация: 16/05/2003
Из: SPb
Пользователь №: 2 235



2 pepper: ...качаем, тестим, щас чё нить скажу :-)))

слегка глянул, при не 4 угольных полигонах работает loop странно, остальное пока не глядел :-)

Сообщение отредактировал Desead - 07/07/2004, 13:57
Go to the top of the page
 
+Quote Post
Desead
сообщение 07/07/2004, 15:37
Сообщение #40


Знаток
Иконка группы

Группа: Участник
Сообщений: 257
Регистрация: 16/05/2003
Из: SPb
Пользователь №: 2 235



пока не забыл, есть пару вопросов к общественности интересующейся скриптами :

1. на discreet есть документ - maxscript referense version four от января 2001 г, кто-нить встречал версию поновее ?

2. кто-нить знает насколько аккуратно скрипт работает с оперативной памятью, а то возникает ощущение что он всё очень сильно засоряет и за собой не убирает

3. кто-нить делал аналог майковского append polygon- а то строить полигоны по вертексам достало, по рёбрам быстрее.

4. в unwrap есть 2 очень полезные тулзы - stitch selected и pack uvs, но как и многое в максе до ума не доведённые. Кто нибудь их переделывал ? а то мне сейчас предстоит это делать. Проблема в следующем: при упаковке остаётся много свободного места, наверняка можно использовать более продуктивный алгоритм сортировки, а при склеивании(stitch) макс масштабирует только ребро, а не весь элемент - но ведь это же глупо, намного быстрей можно было раскладывать всё при наличии нормального ститча.

Опять же эти инструменты в первую очередь необходимы гейм разработчикам.

уххх... ну вроде всё, надеюсь хоть кто-то с чем-нить сталивался
Go to the top of the page
 
+Quote Post
111
сообщение 07/07/2004, 20:34
Сообщение #41


фломастер
Иконка группы

Группа: Участник
Сообщений: 5 701
Регистрация: 19/06/2002
Из: минск
Пользователь №: 98



ага, посмотрим как вы shrink победите smile.gif
Go to the top of the page
 
+Quote Post
Desead
сообщение 09/07/2004, 12:46
Сообщение #42


Знаток
Иконка группы

Группа: Участник
Сообщений: 257
Регистрация: 16/05/2003
Из: SPb
Пользователь №: 2 235



2 pepper: вообщем просидел я с твоим шринком 2 дня, ничего не понял как ты пытался его реализовать, понял только что ищешь бордюры, и их удаляешь, что происходит дальше, то есть для чего ты сравниваешь одни и теже фейсы в циклах while я не понял. Если оттолкнуться от того что в обычном массиве номера фэйсов будут повторяться, то это можно как-то использовать и кроме определения бордюра, что наверное ты и старался сделать, вообщем если ты объяснишь суть вот этого кусочка, то был бы рад. И кстати на мой взгляд просто удалять бордюр нельзя не ссылаясь на соседние рёбра, так можно и лишнего наубирать, но это уже зависит от того как мы понимаем алгоритм работы шринка.

а вот и непонятный кусочек:

i=1
while i<=pa.count-1 do
(
j=i+1
b=0
clearlistener()
format "i=% j=% b=%\n" i j b
while j<=pa.count do
( ----- while 2
if pa[i]==pa[j] then
(
deleteItem pa j

b=1
j-=1 --cause we deleting 1 element
)
j+=1
) ----- end while 2
if b==1 then
(
deleteItem pa i
i-=1
)
i+=1
)

и ещё чуть не забыл, если выделено всё, то шринк и не должен работать, ему не отчего отнимать :-)

чё то все молчат....и в аськах тоже

to 111: а почему ты думаешь что со шринком могут быть проблемы?
это вроде обычный алгоритм поиска решений
Go to the top of the page
 
+Quote Post
pepper
сообщение 09/07/2004, 13:40
Сообщение #43


Наш человек
Иконка группы

Группа: Участник
Сообщений: 415
Регистрация: 10/07/2003
Из: Киев, Украина
Пользователь №: 2 786



Алгоритм едж шринка:
1.выделенные ребра преобразуем в полигоны
2.создаем массивчик в который записываем полигоны, пренадлежащие данному еджу
Если выделенны 2 соседних еджа, то полигон в таком массиве встретится 2 раза.
Если полигон встречается 1 раз, то он являлется "крайним"(из которого мы получим крайние еджи))

Теперь непонятный кусок:
3.елси полигоны совпадют(их может быть >2) удаляем их из массива
(т.к. нам нужны полигоны, которые встречаются 1 раз)
CODE

i=1
while i<=pa.count-1 do--перебираем до предпоследнего елемента
(
j=i+1--наинаем сравнивать с позиции следующего элемента
b=0 --а было ли совпадение
clearlistener()
format "i=% j=% b=%\n" i j b
while j<=pa.count do --перебор до последнего елемента
( ----- while 2
if pa[i]==pa[j] then--совпали
(
deleteItem pa j--удаляем

b=1--отмечаем что совпали
j-=1 --массив уменьшился,значит счетчик тоже уменьшаем
)
j+=1--следующий елемент
) ----- end while 2
if b==1 then --если было совпадение
(
deleteItem pa i--удаляем елемент
i-=1--уменьшаем счетчик
)
i+=1 --следующий елемент
)

Я не использовал цикл for т.к. он не позволяет уменьшать счетчик.
Поэтому выбрал while.

4.выделяем полученные "крайние" полигоны
(их можно увидеть перейдя на уровень полигонов после выполнения скрипта)
5.конвертим их в еджи
6.вычитаем: (первоначально выделенные еджи)-(еджи от "крайних" полигонов)

Особенность конвертации еджей в полигоны(пункт 1) состоит в том, что
если едж крайний, то один из его полигонов будет с индексом 0!
Значит 4 пункт не работает(в объектах нет полигона с индексом 0).
То есть он работает(я удаляю 0 элементы), но не учитывается
.............
.............
у-у-у....появилась идея....
если едж крайний и он выделенный, то он однозначно должен быть не выделенным(после шринка)
.....надо замутить.....
Go to the top of the page
 
+Quote Post
111
сообщение 09/07/2004, 13:46
Сообщение #44


фломастер
Иконка группы

Группа: Участник
Сообщений: 5 701
Регистрация: 19/06/2002
Из: минск
Пользователь №: 98



так изложите алгоритм шринка на человеческом языке
Go to the top of the page
 
+Quote Post
pepper
сообщение 09/07/2004, 14:32
Сообщение #45


Наш человек
Иконка группы

Группа: Участник
Сообщений: 415
Регистрация: 10/07/2003
Из: Киев, Украина
Пользователь №: 2 786



QUOTE
так изложите алгоритм шринка на человеческом языке

Это на каком? blink.gif biggrin.gif

Короче вот. Теперь шринк ринг роботает как надо!
Лип шринк в предыдущем файле.
Прикрепленные файлы
Прикрепленный файл  ring_shrink2.zip ( 600 байт ) Кол-во скачиваний: 478
 
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






82 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic

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

 



RSS Текстовая версия Сейчас: 28/03/2024 - 16:27