Render.ru

displace mesh - в обе стороны как ?

#1
Hi all !

при попытках применения модификатора displace mesh получаю формирование ногово меша _над_ плоскостью, к которой применяется модификатор, и в мануале по максу также написано "данный модификатор смещает/выдавливает вершины меша в соотв с яркостью пикселов дисплейсящей карты, чем ярче тем больше смещение/выдаливание" т.е. ничего не написано про _двустороннее_ смещение вершин меша относительно например уровня/яркости 128 в дисплейсящей карте... в результате при применеии этого хозяйства к одной плоскости получаем вполне приличный эффект но !
при применении этого модификатора к двум плоскостям (полигонам с одним общим ребром) под углом друг к другу получается что вершины нового меша смещаются по нормалям к каждой плоскости _индивидуально_ ! в результате появляется ЩЕЛЬ на месте бывшего общего ребра :( ... кроме того если задавать достаточно большое значение дисплейса то хорошо видно, что на одной плоскости все получившиеся выступы торчат в одну сторону а на другой - в другую (по нормалям к плоскостям)- некузяво как-то ... вообщем можно ли устроить дисплейс в _обе_ стороны от исходной плоскости ? т.к. бмп с отрицательными значениями яркости как-то трудно представить или надо использовать какие-то другие карты ?
 
#3
а где этот замечтельный параметр ? если это map - > amount то это мультипликативный параметр - при <0 дисплейсит _все_ в другую сторону от плоскости ... а нужен аддитивный - для равномерного сдвига всего нового меша вдоль нормали к исходной плоскости ... в крайнем случае это придется как-то руками делать но уж очень неудобно когда в модели ок 70 плоскостей :/
 
#5
спасибо - заработало ... жалко токо что максскриптом почему-то эти операции не поддерживаются т.е. когда в роллауте ставлю Enable Color Map и меняю положение линии с (0,0 1,0) на (0,-0.5 1,0.5) в макрорекодере ничего не показывается :( ... да и в хелпе по максскрипту ничего не нашел пока ...
 
#6
максскриптом эти операции поддерживаются:

meditMaterials[1].displacementMap.output.Mono_Color_Map.curve_1.point_1
[0,-0.5,0]

meditMaterials[1].displacementMap.output.Mono_Color_Map.curve_1.point_2
[1,0.5,0]

в хелпе по максскрипту набери в указателе: TexOutputClass - material

"<texturemap.output.Mono_Color_Map>.curve_1 SubAnim

The curve_1 SubAnim contains the monochrome color mapping curve points. You cannot create or access these points unless the point is animated. If a point is animated, you can access the point position using the .Point_X property of curve_1, where X in the point number."

обрати внимание на "if point is animated"

удачи ;)
 
#7
ох ... ну с анимацией точек я попробую разобраться но вот беда похоже с :

Notes
The following properties are not accessible by MAXScript in 3ds max 4: Invert, Clamp, Alpha from RGB Intensity, and Enable Color Map checkboxes, and the RGB/Mono radio-button

т.е. у меня битмапы конечно идут с неотмеченым чекбоксом Enable Color Map и похоже средствами 4го максскрипта их неотметить :( ... а пока этот чекбокс не отмечен то операции с точками ен будут выполняться :/ ... а почему написано именно 4го ? т.е. может в 3м максе это было ? может как-то можно облегчить ситуацию методом копирования - у меня по умолчанию вообще нету дисплейс карт и я их планирую загружать при помощи скрипта во все десятки/сотни субматериалов ... так может можно сначала загрузить карту для первого субматериала и пойти руками отметить этот чекбокс а потом делать копии этой карты т.к. различаются они для всех субматериалов только собственно файлом .bmp на который ссылется текущая карта (для каждого субматериала - своя карта) ... собственно вопрос - при копировании карт их настройки сохранятся ?
 
#8
попробуй руками создать материал, настроить его карту дисплейс и сохранить в сцене или библиотеке, а потом, используя его, как субматериал, создать скриптом сложный материал
 
Сверху