Render.ru

Свет и Тени

#1
Привет.
Можно в рендермане непосредственно в МТОР поставить источник света с тем условием что он не светит но тень отбрасывает ?
Спасибо.
 
#2
Поставь цвет источника - черный, а цвет тени - белый, вот и получишь белые тени на неосвещенном объекте...
 
#3
Тогда источник ваще не нужен.
Нужна только координатная система или камера которая
генерит эту тень.
Впоследствии эта тень цепляется на тот источник который все же светит.
Такова уж природа рендерменовских теней что она помнит где ее генерили.
Так что светящий источник будет бросать тень как бы от того самого...несветящего
 
#4
Тогда источник ваще не нужен.
Нужна только координатная система или камера которая
генерит эту тень.
Впоследствии эта тень цепляется на тот источник который все же светит.
Такова уж природа рендерменовских теней что она помнит где ее генерили.
Так что светящий источник будет бросать тень как бы от того самого...несветящего
 
#5
Так просто непосредственно - сразу и не скажу. Но можно отрендерить тень в отдельный слой, а потом просто скомпозитить с рендерером без тени и без источника света.
 
#6
Меня интересует возможно ли бобиться подобного эффекта в один проход или же нет ?
Спасибо.
 
#7
A na skol`ko ya pomnyu PRMan voobshe teni v odin prohod ne delaet. On v nachale SHADOWMAP a potom kartinku. A esli eto pro BMRT i podobnye to v odin prohod s raytraced shadows. A potom berem i pishem shader dlya sveta i smeshyaem teni kuda nado. A voobshe chego aftor voprosa dobit`sya hochet. Ato tak i ne ponyat` na chto otvechyat`. Esli vopros pro mojno, to otvet DA tol@ko ostorojno.
 
#8
Хех... все очень просто... переписываем немного лайтшейдер: в конце illuminate вставляем
Cl -= color(intensity, intensity, intensity);
То есть там где свет, Cl будет 0, а в тени - минус intensity, то есть будет "вычитать" из того, что другие лампочки "насветили" :)
 
#9
Чото я ничо не понял. На кой что то переписывать?
Тень есьм порождение света...нет света - нет тени.
Просто подсунь лампочке которая СВЕТИТ (ну хоть одна то должна быть)
тень от любой другой лампочки которая не светит...которая посути и не нужна...вместо которой поставь
шэдов генератор...получиш все за один проход....без переписок шейдеров...
вот....
 
#10
Да нет, это все понятно, в случае, когда у тебя 2 лампочки, можно и так. А если у тебя там два десятка других светильников, и еще каждый со своими тенями и аттенюейшенами, то может оказаться, что проще один раз _вычесть_ тень из всего, чего они насветили...
 
#11
Попытаюсь осветить вопрос.Тоесть к примеру ставим сферу на план , с одной стороны ставим один спот с другой другой , оба отбрасывают тень но светит только первый.
Тоесть то что ты сказал может к этому подойти ? Попробую. Спасибо.
 
#12
Аааааа....понятна.....
Мдасс...клинит порой...нужно всетаки иногда спать:)
 
#13
> Мдасс...клинит порой...нужно всетаки иногда спать:)

Я пробовал, не помогает :)))
 
#15
даже не знанию как это воспринимать...озадачил.
Типа диагноз поставил?
На кой этот пост был?
 
#16
Я чего-то тоже не понял.. Наверно это так витиевато благодарность выражена была..
 
#17
"Хех... все очень просто... переписываем немного лайтшейдер: в конце illuminate вставляем Cl -= color(intensity, intensity, intensity);
То есть там где свет, Cl будет 0, а в тени - минус intensity, то есть будет "вычитать" из того, что другие лампочки "насветили" :)"

Подожди, Алекс, а как ты узнаешь, _сколько_ свету насветили другие лампочки? Ну, откуда это "intensity" возьмётся? Ведь ты не можешь даже сказать, какой по счёту будет твоя лампочка в цикле....или я чего-то не тово....?
 
#18
intensity - это просто интенсивность самого источника света, к которому подцеплен этот модифицированный шейдер, а, следовательно и глубина "тени". И нам, по идее, абсолютно наплевать на остальные источники, просто эта intensity будет _вычтена_ из суммарного света на поверхностях, как была бы _прибавлена_ в случае обычного, немодифицированного, лайтшейдера.
 
#20
Я не знаю как народ эту задачу решал (надо поковыряться, небось чего-нить интересненькое придумали:)), а я переписал shadowMap (float), добавив туда несколько (конкретно четыре) имени файла, а потом использовал MapGen( Shadow), назначил этот мапген на источники, которые светят, но не отбрасывают тени (я у них закрутил intensity в 0), а далее в своем shadowMap сделал референсные ссылки на те камеры, которые генерят тени например [shdmap cam1], а тень от моего источника отключил (frequency>Never) и усе (так можно сделать много теней).


P.S. А спать действительно не помогает :)))) Сам пробовал :)))
 
Сверху