20 Мая 2024, 08:24:08
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [shFX] Проблема с прозрачностью между объектами
[shFX] Проблема с прозрачностью между объектами
(Прочитано 12254 раз)
  [1]
Печать
Alteste | *** | Постоялец | Сообщений: 224 | « 28 Июля 2010, 15:31:20 »
[shFX] Проблема с прозрачностью между объектами |
0
Создал простенький шейдер (см скрин), в Q3D сцене при включении прозрачности первого объекта он все равно как-то перекрывает второй (обрезает силуэтом), хотя к обоим применен одинаковый шейд - второй не перекрывает первый в прозрачном состоянии. Посмотрите сценку
Помогите разобраться, хочу реализовать плавное скрытие объектов, но из-за этой проблемы не могу. Сцену прикрепил, версия квеста 4.3.2

* opac_sh.jpg (72.66 Кб, 746x674 - просмотрено 1520 раз.)
* shader_opacity.cgr (107.38 Кб - загружено 811 раз.)
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #1 28 Июля 2010, 15:38:27 »
Re: [shFX] Проблема с прозрачностью между объектами |
1
а чем этот вариант не подошел?  Улыбающийся
http://guest3d.wohlnet.ru/forum/index.php?topic=1531.0

Что бы правильно визуализировать полупрозрачные объекты, их нужно сортировать по удаленности, то-есть сначала рисуем дальний, затем ближний к камере.
В этой теме:
http://guest3d.wohlnet.ru/forum/index.php?topic=1467.0
я советовал использовать загрузчик, и хранить объекты в массиве.. можно было бы сортировать объекты в массиве, по удаленности от камеры..  Подмигивающий
Если у тебя сейчас объекты непосредственно линкуются к каналу рендер, то можно выйти из положения, нужно подключить объекты через ChannelSwitch, и мутить системку, которая берет значения удаленности объектов, загоняет их в массив, затем массив сортируется, дальше в цикле вызываются на рендер объекты, путем передачи в ChannelSwitch индекса.
« Последнее редактирование: 29 Июля 2010, 17:10:43 от Ruslan »
Alteste | *** | Постоялец | Сообщений: 224 | «Ответ #2 28 Июля 2010, 15:48:27 »
Re: [shFX] Проблема с прозрачностью между объектами |
2
Со стандартными материалами квеста отличный вариант, но хотелось бы еще применительно к шейдерам.
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #3 28 Июля 2010, 21:23:35 »
Re: [shFX] Проблема с прозрачностью между объектами |
3
Хотите увидеть уличную магию?
* shader_opacity.cgr (110.11 Кб - загружено 820 раз.)
Alteste | *** | Постоялец | Сообщений: 224 | «Ответ #4 29 Июля 2010, 08:32:46 »
Re: [shFX] Проблема с прозрачностью между объектами |
4
Хотите увидеть уличную магию?
Гениально, а если объектов штук 20 в сцене?
Alteste | *** | Постоялец | Сообщений: 224 | «Ответ #5 29 Июля 2010, 12:57:37 »
Re: [shFX] Проблема с прозрачностью между объектами |
5
Плиз хелп, тема актуальная! Мне кажется многие проекты требуют реализации скрытия объектов, будь то тюнинг авто, интерьеры или архитектура - где необходимо скрыть какие-либо детали или поставить другое на его место на выбор. Если это не реализуется через канал опасити, то какой другой способ используют в этом случае?
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #6 29 Июля 2010, 15:16:45 »
Re: [shFX] Проблема с прозрачностью между объектами |
6
обычно сортируют (бэк ту фронт), но имеено в твоём примере сортировка бесполезна (объекты ввиде кольца охватывают другой)
В 11ДХ есть эффективное средство борьбы с этим, но Квест  развиваться не хочет.  В замешательстве


А если объектов 500, то...  и если они  скрываются не одновременно, то не вижу проблем организовать логику  на подобии той что в примере.
« Последнее редактирование: 29 Июля 2010, 15:19:35 от Sqwer »
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #7 29 Июля 2010, 19:22:04 »
Re: [shFX] Проблема с прозрачностью между объектами |
7
сначала рендерь непрозрачные объекты, потом прозрачные
прозрачные лучше отсортировать по приближенности к камере, это для реалистичности сцены
ну а если уже есть сортировка то можешь непрозрачные отсортировать по удалению от камеры, это для производительности
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #8 29 Июля 2010, 20:06:00 »
Re: [shFX] Проблема с прозрачностью между объектами |
8
вот по шустрому набросал пример как можно сделать в квесте динамическое разделение на прозрачные и не прозрачные объекты с помощью ОО

хотя некоторый баг там всё же присутствует, но он больше связан с логикой разделения на прозрачные/непрозрачные
* shader_opacity.cgr (125.83 Кб - загружено 818 раз.)
« Последнее редактирование: 29 Июля 2010, 20:12:51 от DimiS »
Alteste | *** | Постоялец | Сообщений: 224 | «Ответ #9 30 Июля 2010, 09:07:00 »
Re: [shFX] Проблема с прозрачностью между объектами |
9
Ужас, глядя на все эти хитровыплетенные мозговыносящие алгоритмы остается только лишь отказаться от плавного скрытия объекта через опасити и сделать через сурфейс. Всем спасибо!
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #10 30 Июля 2010, 11:33:22 »
Re: [shFX] Проблема с прозрачностью между объектами |
10
да вроде не так уж там всё и страшно, и поверь, это детский лепет по сравнению с тем что приходиться писать чтоб зарабатывать себе на жизнь))
но в целом, рано или поздно все приходят к тому что надо как то обобщить и автоматизировать взаимодействие с объектами, по сути это единственное что там добавилось сложное и поначалу не понятное
DreadlockEugene | * | Новичок | Сообщений: 23 | «Ответ #11 26 Июля 2011, 13:03:43 »
Re: [shFX] Проблема с прозрачностью между объектами |
11
Alteste, как вы импортировали объекты на сцену?
Как сделать так чтобы был подключен канал HLSL Object? При стандартном импорте на этом месте канал 3d Object Data.. И простое замещение не подходит, т.к. объект просто пропадает.
Поэтому вижу лишь один выход - импорт как у вас. Подскажите, пожалуйста
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #12 28 Июля 2011, 17:21:11 »
Re: [shFX] Проблема с прозрачностью между объектами |
12
старая ObjectData никуда не выкидывается а коннектится к HLSL Object
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [shFX] Проблема с прозрачностью между объектами
Перейти в: