Ограничение на количество теней. Можно ли обойти?
12 января 2018 21:09
В мануале к движку написано, что тень могут давать максимум 4-ре источника (либо 3 + Ambient occlusion).
Я подсвечиваю объект 6-ю прожекторами.
Мне нужно не столько кастовать тени, а не подсвечивать закрытые плоскости одного и того же объекта.
Ниже пример.
Взял трубу, свечу на неё сбоку. На внешней стенке блик - отлично. Но что он делает внутри?
Есть ли какой-нибудь способ ограничить проникновение света на закрытые участки объекта для 6-ти прожекторов (ну, 5-ти и более в общем виде)?
P.S. Инверсия нормалей и другой внутренний материал не подойдут.
Я подсвечиваю объект 6-ю прожекторами.
Мне нужно не столько кастовать тени, а не подсвечивать закрытые плоскости одного и того же объекта.
Ниже пример.
Взял трубу, свечу на неё сбоку. На внешней стенке блик - отлично. Но что он делает внутри?
Есть ли какой-нибудь способ ограничить проникновение света на закрытые участки объекта для 6-ти прожекторов (ну, 5-ти и более в общем виде)?
P.S. Инверсия нормалей и другой внутренний материал не подойдут.
13 января 2018 00:39
4ре источника отбрасывают тень. Свет внутри трубы это отсутствие тени от какого-то источника, который не первый,2й,3й или 4й, а, скорее всего, он 5й или 6й и т.д.
Можно в материале трубы подкрутить хаки, чтобы игнорировать внутри трубы действие ноды Material (Extended Material), если материал объекта нодовый, тогда не будет засвета. Но скорее всего, это не то, что вам нужно
Можно в материале трубы подкрутить хаки, чтобы игнорировать внутри трубы действие ноды Material (Extended Material), если материал объекта нодовый, тогда не будет засвета. Но скорее всего, это не то, что вам нужно
13 января 2018 15:01
Ну а если через front/back не рисовать спекуляр на обратной стороне полигонов? Материал тот же будет
13 января 2018 20:42
Ответ на сообщение пользователя Никита Корнеев
Можно в материале трубы подкрутить хаки, чтобы игнорировать внутри трубы действие ноды Material (Extended Material), если материал объекта нодовый, тогда не будет засвета. Но скорее всего, это не то, что вам нужно
Ответ на сообщение пользователя sunsetrain
Ну а если через front/back не рисовать спекуляр на обратной стороне полигонов? Материал тот же будет
Дело в том, что трубу я показал для примера. Ситуация "осложняется" 2-мя обстоятельствами
1. Модель может быть абсолютно любой геометрии
2. Модель автоматически конвертируется блендером (питон), без моего участия. Ну максимум я могу поставить пару галочек в свойствах через тот же питон. Так что "ручного" доступа к модели нет. т.е. стоит задача не конкретной модели, а решения задачи в общем виде.
Коллеги по продукту подсказали что это можно решить через three.js и deffered rendering/shading , но я так понимаю у разработчиков b4w нет четких планов. ( Почитал комменты здесь https://www.blend4web.com/ru/community/article/172/ )
Поскольку deferred shading-а нет в Blender, мы его так же не внедряем. Сейчас идет довольно активное обсуждение планов по будущему Viewport-y (в котором мы тоже участвуем). Тема отложенного рендеринга так же поднимается. Но он не будет стандартом де-факто. Потому что помимо очевидных плюсов в виде возможности использовать большое количество "быстрых" источников света у deferred shading-а есть и серьезные минусы, которые не позволят к примеру с нынешней гибкостью настраивать материалы.
С удовольствием бы пожертвовал гибкостью материалов при deffered.
А можно ли вручную\через костыль реализовать это в приложении? Может системой камер, работой с буфером, рендерингом в текстуру и т.д. ?
13 января 2018 22:50
14 января 2018 01:18
Ответ на сообщение пользователя Никита КорнеевВсё просто. Демонстрируется не столько объект, сколько рисунок светом на нём. Отсюда и необходимость множества источников с тенями. Свет здесь первичен, объект вторичен.
А для какой задачи это необходимо? Если не секрет. Просто я не совсем представляю сцену для загрузки в неё объектов, при этом для демонстрации обязательно нужно использовать больше 4х источников света, допустим, еще enviroment lighting
14 января 2018 11:25
С удовольствием бы пожертвовал гибкостью материалов при deffered.
А можно ли вручную\через костыль реализовать это в приложении? Может системой камер, работой с буфером, рендерингом в текстуру и т.д. ?
deffered можно написать самим, но это сложная задача. Нужно хорошо знать blend4web изнутри. У нас тоже на проекте есть такие сложности и мы пока не решили что будем делать.
В blender 2.8 или в 2.8.1 будет clustered deferred rendering или одна из его вариаций. Так что думаю там и blend4web тоже обзаведется чем то похожим.