Форум

Фон в прозрачность

19 октября 2015 12:55
Здравствуйте.

А возможно ли сделать режим псевдопрозрачности, чтобы на прозрачном месте объекта не просвечивались грани находящихся за ним предметов (или продолжение самого объекта), а просто рисовался фон?

Ковыряю ноды, хочу нечто похожее на мультяшное, рисованное штрихами или мазками, или вообще только контурами (как, например, ландшафт в мультике про бегемота, который боялся прививок). для этого приходится сильно извращаться, поскольку приходится проецировать текстуру фона на "прозрачные" места, поскольку прозрачность в блендере и блендфовебе на такое не рассчитана. Перепробовал все типы Альфа, всё равно просвечиваются поверхности находящиеся за прозрачным (извините за тавтологию).

А вот бы было бы такое возможно бы? Программировать шейдеры не умею, но подозреваю, что это очень просто, но ведь ещё лучше озадачить разработчиков, чтобы они запилили эту псевдопрозрачность для всех :)
19 октября 2015 17:52

А возможно ли сделать режим псевдопрозрачности, чтобы на прозрачном месте объекта не просвечивались грани находящихся за ним предметов (или продолжение самого объекта), а просто рисовался фон?
Нужно сделать всем объектам обязательно Blend тип прозрачности и выставить например ему z-offset -1000 тогда даже если он будет находиться перед ними он будет вырезать их по контуру и рендерить фон.

Ковыряю ноды, хочу нечто похожее на мультяшное, рисованное штрихами или мазками, или вообще только контурами (как, например, ландшафт в мультике про бегемота, который боялся прививок). для этого приходится сильно извращаться, поскольку приходится проецировать текстуру фона на "прозрачные" места, поскольку прозрачность в блендере и блендфовебе на такое не рассчитана. Перепробовал все типы Альфа, всё равно просвечиваются поверхности находящиеся за прозрачным (извините за тавтологию).
То что вам нужно похоже на блендеровский Freestyle Render который к сожалению не поддерживается движком Blend4Web, да как бы пока и в планах нет. А другим способом процедурно реализовать данный тип отрисовке не представляется возможным, точнее говоря пока никак.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
20 октября 2015 11:36
Не-не-не, Фпистайл это не то. Нужен интерактив. На самом деле, нечто похожее на разные техники, получается и довольно сносно. Я вот причешу свои примеры и выложу, когда руки дойдут.

Единственная труднорешаемая проблема, пока, это отсутствие той самой псевдопрозрачности. И z-offset -1000 с блендом не помогают. Вообще, если использовать именно прозрачность, а не костылить, как я делал, то лучшее что получается у меня, я приложил в файле. над штрихами сильно не работал, просто пример проблемы. Покрутите вокруг и посмотрите, что происходит с прозрачностью. Сижу думаю, как заставить его пересчитывать глубину в реальном времени, похоже, что надо ещё что-то типа ноды vector_view, но не допетрил что и как.
20 октября 2015 17:34
Не, так просто это не получится. Вообще, теоретически, Alpha Sort работает как раз наоборот - оно рисует от задних полигонов к передним. Можно попробовать покодить этот способ отображения и развернуть его, но что получится на практике, я не берусь предположить)

Вообще да, альфа-объекты для вьюпорта - довольно проблемная тема в Blender, они потихоньку пилят, вроде, новый вьюпорт, да и WebGL 2.0 скоро обещается - может, и альфу поправят настолько, что можно будет такие вещи делать прямо в Блендере. Тогда и мы подтянемся, конечно же

А пока, я полагаю, придется делать ее непрозрачной и накладывать фон по view координатам
20 октября 2015 19:02
В блендеровском движке, кстати, с любым типом прозрачности видны"задние" контуры. А если экспортировать в жисон для влендфовеб, то лучше, но ненамного. Я понять не могу, камера перемещается, поворачивается, а глубина и порядок относительно камеры не пересчитывается? А есть возможность пересчитывать это с помощью API?
А пока, я полагаю, придется делать ее непрозрачной и накладывать фон по view координатам
Да, этого как раз хотелось бы избежать :) Псевдопрозрачность - было бы наикрутейше. Правда, тут появляется ещё одна проблема - если использовать изображение в качестве фона, я хочу не статичную картинку на полный экран, а прокручивать по мере продвижения.
21 октября 2015 11:23
Полигоны отрисовываются один раз и в одном порядке - совсем на крайняк можно ограничить камеру на плюс-минус 30 градусов, например.

Вот, сделал пример без прозрачности, все гораздо проще, чем мне казалось)
Надо было просто запечь кубомапу и натянуть ее с отрицательным scale в ноде mapping. Ну, переключившись там на Vector.

view_coord.blend

view-coord.html
21 октября 2015 12:58
О! Спасибо за финт с запеканием. Что-то я совсем упустил этот момент, надо покопаться. Но в остальном - да, я так и делал. Только, вставлять это в КАЖДЫЙ материал, в ёлочки, в домики и персонажи. Не дороговато ли это становится для отрисовки? Хотя, ладно, чего я пристал, буду делать как раньше. А за "выпечку" спасибо.
21 октября 2015 17:21
Так можно же, по идее, всего один материал использовать на все, что должно быть "прозрачным". Тогда он скушать должен легко, в принципе) Производительность в первую очередь страдает из-за сложных эффектов постобработки типа SSAO и от большого количества разных материалов. Если используется один и тот же материал, то производительность не должна заметно упасть. Плюсы сейчас в том, что объекты не будут пытаться решить, кому рисоваться первым (как было бы в случае с порзрачными объектами) и в том, что в нодовом материале не использована нода Material, что облегчает отрисовку.
Да не за что :)
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.