Как в 3Dmax можно создать фрактальную фигуру? Можно ли написать какой нить script для этого что бы например тыкнул на фигуру и по ней создалась фрактальная структура?
хоть какой нибудь алгоритм фрактала, например пирамида, состоящая из таких же пирамид при чем эти пирамиды выстраивают более большую пирамиду и в таком духе... но что бы это был скрипт который будет создавать такой фрактал из любой фигуры.
Например Script: который на отслеживает грани фигуры и на них наслаивает уменьшенные копии этой фигуры и таким образом получается некий фрактал.
И после 10-й итерации система у тебя зависнет
в книге "Deconstructing the elements with 3ds max" есть урок по созданию изморози на стекле, это тоже фрактал, причём без всяких формул, а как в природе, берётся PFlow, частицы случайным образом сталкиваются, размсножаются и происходит процесс кристаллизации, если у тебя суперкомпьютер, можешь повторить
пфе, алгоритм там очень простой, я делал программку на паскале(для 2д-фракталов, конечно) а подгонять его под конкретные нужды - типа строить пирамидки, никто не станет, надо учить скрипты, наверное, и самому...
Набросал скрипт для простейшего случая - размножает объекты по вершинам с заданной глубиной рекурсии.
Дальше сами поиграйтесь с настройками а алгоритмами.
fn getVNormal obj vnum =
(
local vertFaces = polyOp.getFacesUsingVert obj (#{vnum})
local tNormal = [0,0,0]
for i in vertFaces do tNormal += polyOp.getFaceNormal obj i
return (tNormal / vertFaces.numberSet)
)
fn objFractal obj scaleFactor isOrient depth =
(
if depth < 1 do return true
local num = polyop.getNumVerts obj
for i = 1 to num do
(
local obj2 = copy obj
local pos = in coordsys world polyop.getVert obj i
local normal = if isOrient == true then getVNormal obj i else [0,0,1]
obj2.wirecolor = obj.wirecolor
obj2.scale = obj.scale * scaleFactor
obj2.pos = pos
obj2.dir = normal
objFractal obj2 scaleFactor isOrient (depth - 1)
)
)
obj = $
depth = 4
scaleFactor = .5
isOrient = false
obj = convertToPoly obj
objFractal obj scaleFactor isOrient depth
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
SAS_RUS
Savin Denis
Можно, если знаеш алгоритм по которому будет строится данный фрактал.
PS.
Фракталы разные бывают.
http://pxfactory.eu/scripts/spherical/spherical.html
http://www.ylilammi.com/lorenzattractor.shtml
SAS_RUS
Например Script: который на отслеживает грани фигуры и на них наслаивает уменьшенные копии этой фигуры и таким образом получается некий фрактал.
вадим соболев (maiden666)
в книге "Deconstructing the elements with 3ds max" есть урок по созданию изморози на стекле, это тоже фрактал, причём без всяких формул, а как в природе, берётся PFlow, частицы случайным образом сталкиваются, размсножаются и происходит процесс кристаллизации, если у тебя суперкомпьютер, можешь повторить
Savin Denis
вадим соболев (maiden666)
Savin Denis
Дальше сами поиграйтесь с настройками а алгоритмами.
fn getVNormal obj vnum = ( local vertFaces = polyOp.getFacesUsingVert obj (#{vnum}) local tNormal = [0,0,0] for i in vertFaces do tNormal += polyOp.getFaceNormal obj i return (tNormal / vertFaces.numberSet) ) fn objFractal obj scaleFactor isOrient depth = ( if depth < 1 do return true local num = polyop.getNumVerts obj for i = 1 to num do ( local obj2 = copy obj local pos = in coordsys world polyop.getVert obj i local normal = if isOrient == true then getVNormal obj i else [0,0,1] obj2.wirecolor = obj.wirecolor obj2.scale = obj.scale * scaleFactor obj2.pos = pos obj2.dir = normal objFractal obj2 scaleFactor isOrient (depth - 1) ) ) obj = $ depth = 4 scaleFactor = .5 isOrient = false obj = convertToPoly obj objFractal obj scaleFactor isOrient depth