вторник, 7 июня 2016 г.

Расстановка объектов разной детализации в зависимости от расстояния до камеры.

Есть массив штор (быстро расставлена базовая заготовка).

Теперь надо поменять эту заготовку на высоко и низко детализированные шторы, в зависимости от расстояния до камеры:
Если расстояние от шторы до камеры меньше 2000 см, то - Hi, если больше - Mi шторы.

---------------------------------------------------------
 arBaseCur = selection as array

arHi = selection as array
arMi = selection as array

fn theDistAllFrames obj c = (
    b = false
    for j= animationRange.start to animationRange.end do(
       at time j (
           p1 = obj.pos
           pc = c.pos
           dist = length (p1 - pc)
           if dist <= 2000 do b = true
           )
    )
b
)

delAr = #()
nAr = #()
for i in arBaseCur do (
    _cam = for i in objects where classOf i == Targetcamera collect i
    if theDistAllFrames i _cam[1] then(
        RselFromAr = arHi[random 1 arHi.count]
        nobj = instance RselFromAr
        nobj.transform = i.transform
        nObj.wirecolor = RselFromAr.wirecolor
        append delAr i
        append nAr nobj
        )else (
                RselFromAr = arMi[random 1 arMi.count]
                nobj = instance RselFromAr
                nobj.transform = i.transform
                nObj.wirecolor = RselFromAr.wirecolor
                append delAr i
                append nAr nobj
        )
    )
delete delAr
select nAr
---------------------------------------------------------














Комментариев нет:

Отправить комментарий