Название: Плоскость сечения Отправлено: shkas от 08 Ноября 2009, 01:03:00 Привет всем, задали мне задачку -постепенный рост строящегося здания, как на приатаченной анимашке. Я так понимаю , что нужно сделать поднимающуюся плоскость , которая бы обрезала часть здания. Как это можно реализовать? В 3D пакете это можно сделать посредством булевых операций, а в Квесте есть подобное?
Название: Re: Плоскость сечения Отправлено: Viik от 08 Ноября 2009, 01:31:10 Цитата с офф форума:
Цитировать You have a clip plane example in the Quest3D folder at "./Examples/Small Examples/clip plane.cgr" Название: Re: Плоскость сечения Отправлено: shkas от 09 Ноября 2009, 13:22:55 О, спасибо! Под носом лежало не заметил.
Плохо только, что это Clip plane не показывает у обьекта сам срез. Это реально как-то победить? Название: Re: Плоскость сечения Отправлено: Viik от 09 Ноября 2009, 14:33:26 Кто-то делал такое по хитрому, помоему брали копию модельки, флипали полики, и отрисовывали только эмисивом, например красным или синим цветом. Таким образом копия какбы заполняет места срезов.
Ну или шейдером покрасить. В нем же и клипинг можно мсделать. Название: Re: Плоскость сечения Отправлено: shkas от 09 Ноября 2009, 15:08:43 Супер! Получилось! Просто как все гениальное!Спасибо огромное!!
Название: Re: Плоскость сечения Отправлено: Campo от 24 Декабря 2009, 12:11:50 кто знает как ограничить область сечения плоскостью (Clipping Plane)? к примеру как-нибудь ограничить её кубом или цилиндром...??
у меня в рендере есть квадрат, и я хочу ограничить сечение его площадью, чтобы остальные части модели не обрезались...может кто подскажет, что делать? Название: Re: Плоскость сечения Отправлено: DimiS от 24 Декабря 2009, 15:17:15 как ограничить область сечения я не знаю, но в случае с теми зданиями я бы разделил их на отдельные модельки и для каждой из них применял сечение отдельно.
Название: Re: Плоскость сечения Отправлено: Campo от 24 Декабря 2009, 21:33:04 даже если модельки в разный рендер закинуть, а команду секущей между рендерами поставить, то она и на второй действует, а очистка от Clipping plane`ов убирает сечение и на первом рендере...
у модели вроде только к вертекс дате можно прикрутить эту Clipping plane, а толку )) вообщем без понятия куда что прицеплять, чтобы плоскость резала только один объект, а остальные не трогала. картинки и исходник ( версия 4.2.2 ) - в бетте 4.3.1 и демке 4.0.0 почему-то не работают Save Group\As\All Publish. (( Название: Re: Плоскость сечения Отправлено: DimiS от 24 Декабря 2009, 23:42:45 второй рендер подключи на место пустого слота, а клиар рендер плейнс после него, и будет тебе счастие)
Название: Re: Плоскость сечения Отправлено: Campo от 25 Декабря 2009, 09:28:27 эврика! спасибо за помощь, DimiS )
а множественное использование рендера не сделает проект более требовательным к ресурсам пк? грубо говоря тормозить будет больше или нет, если я подключу к примеру 20 рендеров..? сейчас буду пробовать прицепить секущую к какому-нибудь объекту... --- с наступающим всех!!! ))) --- Название: Re: Плоскость сечения Отправлено: DimiS от 25 Декабря 2009, 16:40:33 ну если количество полигонов увеличить то и тормоз увеличиться, если та же геометрия будет нарисована с большим количеством вызовов то производительность уменьшится совсем не на много, на 20-ти вызовах ты этого не заметишь
Название: Re: Плоскость сечения Отправлено: Campo от 23 Января 2010, 22:12:11 кто-нибудь представляет себе как реализовать подобное при помощи команд плоскости сечения?
т.е. здесь её задать нужно либо боксом, либо тремя плоскостями...наврное ) Название: Re: Плоскость сечения Отправлено: Sqwer от 24 Января 2010, 01:49:24 Лучше поставить несколько моделей, чем так расправляться с одной.
Но если и крайне нужна двнная реализация то: надо в цикле вызывать одну и туже геометрию несколбко раз и перед каждым вызовом создавать клип плейн - рендить- переместить клип - рендать-...... рендть- закрывать клип плейны. в твоём случае понадобится 3 вызова Название: Re: Плоскость сечения Отправлено: Sqwer от 24 Января 2010, 01:51:26 О, спасибо! Под носом лежало не заметил. Плохо только, что это Clip plane не показывает у обьекта сам срез. Это реально как-то победить? Это делается вершинным шейдером. пару условий - и всё готово. Название: Re: Плоскость сечения Отправлено: Campo от 24 Января 2010, 16:00:13 Sqwer,
- интересный ход мысли про подключение 3х одинаковых моделей и их обрезание) единственный минус - модель может оказаться высокополигональной, и тогда этот вариант (его ещё надо опробовать) отпадает (. на оф форуме задавал этот вопрос..) http://forum.quest3d.com/index.php?topic=68269.0 (http://forum.quest3d.com/index.php?topic=68269.0) - а пример с вершинным шейдером можешь скинуть? или хотя бы схему, как это делается)? Название: Re: Плоскость сечения Отправлено: Sqwer от 24 Января 2010, 16:35:13 По поводу вершинных:
работать будет только если стена идёт строго перпендикулярно миру и не имеет выступов! просто берём в вертекстном проверяем, если вершина выше отметки, то придаём ей значение по Y оси равное условному. В итоге все вершины , которые выше некой мировой/локальной отметки сплющиваются а верхний полиго по сути находится на плоскости условного разделения и не отрезается как в клипах , а именно сохраняется.кроме того можно добавить ещё текстуру там где плоскость среза... типа кирпичи там где срезают или шлакоьлок с арматурой. Повторюсь , что метод работать будет только при выполнении вышеуказанных условий. при таком методе ещё карты текстурные могут поехать, но если процедурный UV, тогда это вопрос нет. Название: Re: Плоскость сечения Отправлено: Campo от 24 Января 2010, 17:15:53 не понял, что значит "в вертекстном"?
Название: Re: Плоскость сечения Отправлено: Sqwer от 24 Января 2010, 21:10:26 из контекста "просто берём в вертекстной(вершинной) части шейдера проверяем, если вершина выше отметки, то придаём ей значение по Y оси равное условному."
По истечении некоторого времени тема будет перенесена в другой раздел. |