22 Сентября 2024, 13:21:49
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

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







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [G]Исключение объекта из очистки Z-буффера (есть ответ)
[G]Исключение объекта из очистки Z-буффера (есть ответ)
(Прочитано 7851 раз)
  [1]
Печать
mixey | ** | Пользователь | Сообщений: 74 | « 06 Сентября 2009, 13:24:18 »
[G]Исключение объекта из очистки Z-буффера (есть ответ) |
0
Можно ли как-нибудь исключить объект или участок экрана из процесса очистки Z-буффера?
Хочу фон и всякие одноразовые элементы программы рендерить один раз и пусть сидят в буффере, а вот рабочую область программы каждый раз обновлять. Каким образом это делается? Наверное я где-то чего-то в основах не понял, но никак не решу проблему...  Грустный
« Последнее редактирование: 13 Сентября 2009, 15:51:08 от Sqwer »
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #1 06 Сентября 2009, 16:49:27 »
Re: Исключение объекта из очистки Z-буффера |
1
Можно попробовать так: (по шагам)
1 - рендер статики через "она тайм" РТТ

2 - квад на весь экран с текстурой из РТТ
3 - чистка Z
4 - рендер динамических объектов

цыкл 2,3,4
Viik | **** | Старожил | Сообщений: 302 | «Ответ #2 07 Сентября 2009, 21:49:24 »
Re: Исключение объекта из очистки Z-буффера |
2
Текстура с РТТ зет буфер не заполнит, просто сработает как очистка и все.

Михей, а какой смысл в вот что ты не будеш их рендерить на каждом кадре? Если динамические объекты могут пересекать бекграунд то как ни крути рендер нужно делать постоянно, если нет то и зет буфер тут не нужен, рисуеш из текстуры как Sqwer написал.
mixey | ** | Пользователь | Сообщений: 74 | «Ответ #3 07 Сентября 2009, 22:31:12 »
Re: Исключение объекта из очистки Z-буффера |
3
Блин, я криво написал... Речь идет еще и о меню! Оно всегда на переднем плане и рисуется ImageCopy, зачем каждый раз пускать в работу этот канал если можно один раз отрендерить статичные элементы меню, а сцену уже динамически?
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #4 07 Сентября 2009, 23:44:05 »
Re: Исключение объекта из очистки Z-буффера |
4
Что ж, такова концепция современного 3д рендеринга -- тебе нужно полностью обновлять содержимое бек буффера а вместе с ним и Z-буффера в каждом кадре. И это вовсе не так страшно, есть только два момента касающихся производительности в твоём случае.
Первое -- ты переживаешь из-за того что твой интерфейс содержит слишком много элементов, и при отрисовке сильно тормозит. Тогда постарайся объединить как можно больше элементов в одну текстуру -- чем меньше вызовов ImageCopy, тем меньше тормозит интерфейс. В идеале твой интерфейс должен рендериться в одну текстуру и потом одним вызовом рисоваться поверх всей остальной сцены.
Второе -- ты переживаешь из-за потерь производительности на отрисовку объектов которые все равно не будет видно потом за интерфейсом. В большинстве случаев это попросту копейки. Но ты можешь отрисовать плоскость необходимой тебе формы под интерфейс в нужном месте, на расстоянии Near clipping distance от камеры, и сделать это в самом начале рендера. Или, если твой интерфейс полностью занимает какую-то сторону экрана, то можешь для рендеринга сцены использовать уменьшенный View Rect
« Последнее редактирование: 08 Сентября 2009, 00:28:11 от Sqwer »
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [G]Исключение объекта из очистки Z-буффера (есть ответ)
Перейти в: