[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Координаты объектов
serg-kkzДата: Понедельник, 07.05.2012, 00:22 | Сообщение # 16
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Quote (ninth)
Насчёт программного рендеринга - готовой функции я не припомню

Не обращал я пристального внимания в этом разделе Panda3D Manual: Automatic Texture Animation но заголовок говорит о этом.


ООП  -  
 
liquideДата: Понедельник, 07.05.2012, 14:23 | Сообщение # 17
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
Я сделал проще и просто вместо setVolumetricLighting() использовал setBloom() biggrin
 
ninthДата: Понедельник, 07.05.2012, 21:36 | Сообщение # 18
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ну, если результат устраивает, то можно и так. Но на будущее со спрайтами советую "познакомится" - пригодится.
 
liquideДата: Пятница, 09.05.2014, 21:14 | Сообщение # 19
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
Разобрался хотя бы для одного объекта с setVolumetricLighting(), но встала другая проблема в следах у других объектов. На оф форуме тоже поднимался такой вопрос и был дан такой ответ

Цитата
You could perhaps create a fullscreen buffer rendering only the sun and then creating your CommonFilters object on that buffer.

In Panda3D 1.8.1 and above, this will be easier; you will be able to render your sun to the stencil buffer or to an auxiliary buffer, and then specify a 'source = "aux0"' (or whatever) argument to setVolumetricLighting, or use the output of the bloom stage, like "bloom0".

Я с английским кое как дружу, но тут честно не понимаю, как реализовывается то, что предлагают. Может сможете объяснить по русски?

Сама ветка тут http://www.panda3d.org/forums/viewtopic.php?f=4&t=13936&p=86140&hilit


Сообщение отредактировал liquide - Пятница, 09.05.2014, 21:15
 
ninthДата: Суббота, 10.05.2014, 09:19 | Сообщение # 20
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Проблема в механизме реализации эффекта. По-сути это радиальное размытие ярких объектов. Центром размытия становится объект, указанный в фильтре. Так что возможно в первую очередь стоит поиграть с параметрами фильтра.
Код
def setVolumetricLighting  (     self,
      caster,
      numsamples = 32,
      density = 5.0,
      decay = 0.1,
      exposure = 0.1  
  )   

Особенно параметр exposure. Возможно таким образом удастся отсечь следы от других объектов. Но это если они менее яркие чем твой основной объект.

То, о чём говорилось в топике потребует более глубокого изучения движка, в частности потребуется разобраться с тем что такое offscreen buffer как работает и как настраивается. Да и кода для такого решения прилично получится.

Вообще, Volumetric Lighting - довольно специфический эффект. Его хорошо использовать в ситуации, когда например нужен эффект солнца, пробивающегося сквозь листву или строения. Если же нужно просто сделать эффект свечения, то лучше пользоваться старым проверенным способом - вешать спрайт (билборд) с лучами на такой объект. И ресурсов ест не в пример меньше и управлять им значительно проще.
Альтернативный вариант - bloom фльтр, хотя выглядит он несколько иначе, он скорее подходит для тускло светящихся объектов.
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: