Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум .:3DCenter.ru:. _ 3ds Max _ Форестпак стандартными средствами.

Автор: Pomidoroff 03/12/2017, 19:46

Из естественной жадности и общего нежелания обрастать излишними плагинами пытаюсь лепить лес и прочие насаждения стандартными средствами. Врай как неизбежный плагин присутствует в процесе.

Сейчас остановился на методе работы через частици и врай-инстансер. Есть некоторые минусы этого метода:
1. Не видно во вьюпорте положение обьектов
2. Ограничение в милион частиц (это актуально для всякой травы).
3. Рисовать положение можно через Вьюпорт Канвас, но этот метод не кажется оптимальным, рисовать частицами через Плайсмент Паинт - тоже немного геморно и несовсем точно.

В принципе этот не принципиальные ложности и в общем этот метод можно использовать, но надо его оптимизировать, особенно 3 пункт. Есть у кого есть идеи?


Автор: Sl1m 03/12/2017, 20:13

полипэинт ?

Автор: Pomidoroff 03/12/2017, 20:37

Всмысле Обьект Паинт?
Спецефическая штука. Главный минус что надо всё руками рисовать и нельзя влиять на массу обьектов комплексно, ориентация на обьекте относительно нормалей - плохо подходит для рельефа. Частици в этом плане гибче, можно настраивать весь масив.

Конечно, из плюсов нужно отметить контроль обьектов поштучный и отоброжение во вьюпортах. нет гемора с масками.

Автор: Sl1m 03/12/2017, 20:57

я имел ввиду вертекс колор, но обж пэйинт наверное самое то для созданиия лесного массива, а еще ориентация модели отсносительно нормалей отключается

Автор: Pomidoroff 03/12/2017, 21:06

Цитата(Sl1m @ 03/12/2017, 19:57) *
а еще ориентация модели отсносительно нормалей отключается

О точно, нашёл )))


Автор: Jahman 03/12/2017, 22:43

ты ж через pflow делаешь, да?
через birth group добавляешь нарисованное
через shape instance цепляешь свою лоупольную геометрию.
ну и дисплей врубаешь type:Geometry

рисовать можно как на гриде так и на объекте, правда только на едитабл меше

CODE
struct mousePaint (
    
    minDistance   = 12,
    delay         = 17,
    lastPaintTime = 0,
    lastPoint     = [1e5,1e5,1e5],
    
    fn mouseTrackCallback msg ir obj faceNum shift ctrl alt = (
    
        ts = timeStamp()
        
        case msg of (
                        
            #freeMove:   () -- means the mouse is moved without a button being pressed
            #mousePoint: () -- means the left mouse button has just been pressed
            #mouseMove:  (  -- means the mouse is being dragged with the left button down
                
                if ir.pos != undefined and (ts - lastPaintTime) > delay do (
            
                    lastPaintTime = ts
                    
                    if distance lastPoint ir.pos > minDistance do (
                        
                        GeoSphere pos:ir.pos
                        lastPoint = ir.pos
                        
                    )
                
                )
                
                
            )
            #mouseAbort: ( return ok ) -- means the right mouse button was clicked, normally meaning cancel
                        
        )

        
        #continue
        
    ),
    
    fn start obj: = (
        
        if obj != unsupplied then (
                        
            mouseTrack on:obj trackCallback:mouseTrackCallback
            
        ) else (
            
            mouseTrack trackCallback:mouseTrackCallback
            
        )
        
    )
)

mp = mousePaint()
if isKindOf selection[1] Editable_mesh then mp.start obj:selection[1] else mp.start()




Автор: Pomidoroff 04/12/2017, 11:29

Цитата
ты ж через pflow делаешь, да?

Да
Цитата
через birth group добавляешь нарисованное

Нет. Незнаком с этой фукцией, ща гляну...
Цитата
через shape instance цепляешь свою лоупольную геометрию.

Нет. Цепляю через Врай Инстансер там можно несколько обьектов циплять.
Цитата
ну и дисплей врубаешь type:Geometry

Врай инстансер не показывает геометрию.

Что за скрипт? Аналог ОбьектПаинта?

Автор: Pomidoroff 04/12/2017, 11:38

Кароче ещё одна фича:
Можно партиклами геометрию раскидать, потом через скрипт перевести всё в геометрию и поштучно править, правда контроль над мосивом утрачивается (

Автор: Jahman 04/12/2017, 12:20

На большом количестве объектов пусть даже инстансных со сценой мне кажется уже будет невозможно нормально работать, либо выносить в отдельную сцену и xref'ом ее подключать.
Скаттеры тем и хороши, что это одна нода хранящая условно один меш и 100500 матриц транссформации и прочих аттрибутов учитываемых при самом рендере.

Можно рассадить по вершинам через data оператор. Пример приаттачил

 

 pflow_data_placeOnVerts.zip ( 32,24 килобайт ) : 11
 

Автор: Pomidoroff 04/12/2017, 15:51

Ребята, а есть способ в партиклах добавить несколько инстанс обьектов? Сделать список из нужной геометрии.

Цитата
Можно рассадить по вершинам через data оператор. Пример приаттачил

Надо посмотреть...

Автор: Jahman 04/12/2017, 17:04

можно из элементов объекта или из членов группы.

Автор: Pomidoroff 04/12/2017, 20:32

Класс! В группу обьеденить и катит... осталось ограничение на мильён партиклов обойти и считай форестпак ненужен!

Автор: mikinik 04/12/2017, 22:40

где ты там ограничение это нашел?

Автор: Pomidoroff 04/12/2017, 22:45

по факту... не рендерит больше. Поставить в настройках можно но рендерить не будет.
...бля нашёл! В систем менеджменте стоит ограничитель на стотыщь! Сёня день открытий ) правда система долго сцену под рендер готовит...ну это не страшно.


Так а какие там преймущества у форестпака отались? Готовые пресеты? Производительность во вьюпорте и и масочка ноиза?

Автор: cinic 05/12/2017, 00:11

Цитата(Pomidoroff @ 04/12/2017, 21:45) *
Так а какие там преймущества у форестпака отались?


С днем рождения!
http://dropmefiles.com/ieaYM




Автор: Pomidoroff 05/12/2017, 00:40

Цитата(cinic @ 04/12/2017, 23:11) *
Цитата(Pomidoroff @ 04/12/2017, 21:45) *
Так а какие там преймущества у форестпака отались?


С днем рождения!


Не, без виреевского инстансера памяти жрёт выше крыше... Циник, а ты прям всё знаешь, везде был... не выёбывайся.

Автор: cinic 05/12/2017, 00:47

Цитата(Pomidoroff @ 04/12/2017, 23:40) *
а ты прям всё знаешь, везде был... не выёбывайся.


"Не пей вина, Гертруда..."
P.S. И да, ты же кажеться потив мудаков?!

Автор: ProcXel.A 05/12/2017, 10:53

Можно сменить густой лес на пустыню с редкими вялыми кактусами. И норм будет вообще!

Автор: Pomidoroff 05/12/2017, 15:27

Можно от руки нарисовать и не мучится.

Автор: bizkitlimp1 06/12/2017, 09:38

Multiple Objects не работает?! Только на первом объекте в списке рассаживается.

Автор: Pomidoroff 06/12/2017, 12:03

Это где?

Автор: bizkitlimp1 06/12/2017, 16:34

Цитата(Pomidoroff @ 06/12/2017, 13:03) *
Это где?

В операторе Select Object:

Автор: Pomidoroff 06/12/2017, 18:38

Я так понял что большие масивы всё равно надо через врай инстансер пускать иначе памяти не напасёшся, для остольных случаев - шейп инстанс. Обьекты на которых распологаются обьекты - Позишн Обжект, там можно несколько обьектов выберать. А дата оператор... не юзал.

Автор: Jahman 06/12/2017, 19:26

да, я чет тоже забуксовал с тем как сделать чтоб через оператор узнать общее количество вертексов на выбранных мешах.

ps.. хотя не, гоню, как заспавнить понятно. осталось понять как на нужные места рассадить


Автор: bizkitlimp1 06/12/2017, 21:01

8 лет назад:

Цитата
You need to turn On "I3 Designates Objects" in the Object suboperator, and wire-in data from an Input Standard sub-op (with ID = Birth Index). This way to control the correspondence between particles and the objects.
Отсюда: http://www.orbaz.com/forum/viewtopic.php?t=2991

И чето не работает.

Автор: cinic 07/12/2017, 02:23

Цитата(bizkitlimp1 @ 06/12/2017, 08:38) *
Multiple Objects не работает?! Только на первом объекте в списке рассаживается.

Увы! Решил только "набрасыванием" поверх "первого в списке" edit poly modifier и пристегиванием к нему всех остальных требуемых.
https://ufile.io/ebkfb
Признаться, при использовании PF, про главный инструмент 3d-шника (бубен) нужно помнить постоянно. И я не склонен винить в этом Байбородина.
Пользуясь случаем, буду очень признателен всем, кто сможет внятно пояснить значение операций с векторами, подчеркнутые красным:
https://postimg.org/image/hmaqj3d0b/

Автор: Jahman 07/12/2017, 11:47

Пример некорректный но наглядный smile.gif


 pflow_data_op_deflection.zip ( 34,01 килобайт ) : 9
 

Автор: cinic 07/12/2017, 22:03

Спасибо громадное! Правда, у меня не отображаются частицы (причем как не вертел, даже при убитом data operator и принудительным shape-овании ) huh.gif
Тем не менее, ход мысли уловил! Триггер по времени изменил на расстояние от частицы до точки столкновения, плюс по мелочевке.
Вобщем, вот:

 pflow_data_op_deflection_myOwn.zip ( 58,89 килобайт ) : 20

Автор: 111 19/12/2017, 23:37

с партикл флоу естьещё засада с кручением партиклов (в том же лесу надо чтобы ёлки в разные стороны смотрели), как обычно в максе через кривые костыли сделано. для эпизодических вариантов или рендерфермы - вариант, кто осилит, а так лучше имхо поставить плагин и не париться.

Автор: Pomidoroff 19/12/2017, 23:40

Недопонял, вчём засада, крутить обьекты по оси Зед в разные стороны? Вроде работает нормально и постоянно стабильно.

зы. как это вы ухитрились написать комент без демонстрации абсалютного превосходства?

Автор: 111 20/12/2017, 00:10

когда есть ориентация партиклов по нормалям (а она есть всегда если поверхность не плоская) то ту же травку покрутить рандомно по локальной оси стандартными средствами не получится. но можно изгаляться через данные.

Автор: Pomidoroff 20/12/2017, 01:10

Ну так растительность растёт в глобальной системе, а не в локальной... горы тому подтверждение.

 

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)