Quest3D - Русскоязычное сообщество

Quest3D => Визуализация, Шейдеры => Тема начата: 3DYURA от 06 Мая 2008, 11:18:16



Название: Освещение сцены
Отправлено: 3DYURA от 06 Мая 2008, 11:18:16
В этой теме люди могут делится своими методами освещения сцены интерьера экстерьера.
В настоящий момент меня интересует освещения небольшого микрораена размером приблизительно (2км на 2км ) я ставлю четыре точечные источники света с мултипером (0,5) по переметру  . но желаемого результата освещения не добиваюсь ???
Интересно как другие освещают


Название: Re: Освещение сцены
Отправлено: barmadjar от 29 Марта 2009, 22:15:01
Подскажите, люди добрые, в чем проблема!
Помещаю в модель квартиры 7 источников типа Spot Light - все нормально, помещаю 8-й источник (и более)- они уже не дают никакого эффекта, как ни старайся ???
Сталкивался ли кто-нибудь с такой проблемой?
Вроде источников до 50 штук можно помещать, как я где-то читал.


Название: Re: Освещение сцены
Отправлено: Sqwer от 29 Марта 2009, 23:10:14
Понимаю, что источников света больше 8ми 9Директ не поддерживает. Огорчаться не стоит, остальные источники делаются шейдерами.

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


Название: Re: Освещение сцены
Отправлено: barmadjar от 30 Марта 2009, 00:59:46
Спасибо, Sqwer!
Попробую разобраться, хотя с шейдерами дел практически не имел, кроме квестовских. Пока с трудом представляю, каким образом это делается. 


Название: Re: Освещение сцены
Отправлено: Sqwer от 30 Марта 2009, 13:28:51
зачем так много источников света?

Связка лайтмапов и 8 источников смотрится куда лучше!!!


Название: Re: Освещение сцены
Отправлено: barmadjar от 30 Марта 2009, 22:45:00
Да просто квартиру делаю.
Наверное так и поступлю.
А может имеет смысл расположить источники везде, где надо, и попросту включать в тех помещениях, куда входишь, и отключать там, откуда уходишь? Тем более, что источники из соседнего помещения светят «сквозь стену». Вот кстати тоже интересный момент. Как его избежать - делать для каждого помещения свой рендер со своими источниками? Или как-то еще можно ограничить распространение света?

А вот еще один пример, когда необходимо много источников –  в тунеле.


Название: Re: Освещение сцены
Отправлено: Sqwer от 30 Марта 2009, 23:09:09
Идея С поочерёдным включением источников получится, многие так и поступали.

Подсвечивание других комнат можно исключить, используя тени или ограничивая радиус действия источников света.

Используя максовский Финал рендер можно получить невероятно реалистичные лайтмапы.

ПС. я использовал бы лайтмапы.


Название: Re: Освещение сцены
Отправлено: barmadjar от 31 Марта 2009, 00:04:17
Спасибо за советы!
Попробую)


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 17 Сентября 2009, 00:37:52
Приветствую. У меня вопрос по освещению.
Я решил сделать сцену без лайтмапов и с динамическими источниками света с тенями (для практики). Сделал небольшую комнату, немного повозившись сделал NormalBump и тени (Stencil Shadow). Но вот со светом беда. Для отбражения рельефа я использовал стандартный канал Bumpmapping (diffuse&Specular). И не смог после этого настроить затухание света, этот канал на него не реагирует. В результате получается всё весьма отвратно! В общем данный канал неважно работает с углом освещения и расстоянием до ИС. Сцена очень контрастно и равномерно освещена. Я так понимаю что потребуется использовать какой-то шейдер. Или есть иные пути решения проблемы?


Название: Re: Освещение сцены
Отправлено: Sqwer от 17 Сентября 2009, 06:42:05
Советы, скорее даже правила:

Правило 1: не юзай стенсили (производительность сильно зависит от сложности геометрии)
Правило 2: не юзай Квестовые шейдеры (всё равно их расширять, как например в твоём случае надо в код шейда добавить затухание по расстоянию от источника света)

Делается это в вертекс шейдере где интесивность = (расстояние (вектор ИС, объект))/аутенацию

для лучших результатов используют квадрат аутенации (что физически обасновано).


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 17 Сентября 2009, 08:42:07
Спасибо, я догадывался, но небыло уверенности. А кроме как НЕ ДЕЛАТЬ, сможете подсказать как всё-таки ДЕЛАТЬ? Хотя бы в общих чертах.


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 17 Сентября 2009, 10:29:31
Прикрутил шейдер из этих примеров
http://guest3d.wohlnet.ru/forum/index.php?topic=130.0 (http://guest3d.wohlnet.ru/forum/index.php?topic=130.0)
Картинка получше. Пропали тени. Но так как было говорено ранее, они не особо быстры, следует вопрос - какие тени исользовать?


Название: Re: Освещение сцены
Отправлено: Sqwer от 17 Сентября 2009, 14:55:46
http://3dvrm.com/shadows_solution/


Цитировать
А кроме как НЕ ДЕЛАТЬ, сможете подсказать как всё-таки ДЕЛАТЬ? Хотя бы в общих чертах.

я же уже ответил постом выше:
Делается это в  шейдере где интесивность = (расстояние (вектор ИС, объект))/аутенацию

Но так как было говорено ранее, они не особо быстры, следует вопрос - какие тени исользовать?

Пожалуйста, решение от многоуважаемого Viik'а.
http://3dvrm.com/shadows_solution/
это вроде PSSM
Браво, Виктор!!!  ;)

До такого я пока не дорос, и по тому использую простенькие приёмчики шадомаповые.
http://www.gamedev.ru/code/articles/ShadowMapGLSL
+ размытие по глубине.


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 17 Сентября 2009, 15:17:57
Спасибо, буду почитать!
Технический вопрос. Если я подключил в дерево объекета шейдерный канал и перецепил информацию он вершинах не так как по дефолку, то может пропасть коллизия с этим объектом?
..............
Sqwer: для колизии используй упрощённую геометрию.

из прочитанного следует что реализацию теней требуется делать в шейдере и никаких стандартных теней? То есть шейдер расчитывает все расстояния, векторы и тд для каждого пикселя. Верно понял?

Sqwer: ага.


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 18 Сентября 2009, 10:52:55
2Sqwer? я знаю про упрощеннную геометрию. Для скорости делал на той же что и является "цветовой" геометрией и просто столкнулся с такой бякой. Всё это ради исследиваний а не практический применений.
Спасиб за советы :)


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 20 Сентября 2009, 00:41:37
Мда, почитал я про шейдерописание. Всё-таки не мало надо времени потратить чтобы самостоятельно этому научиться. А так как научить собственно некому, видимо придется искать готовые решения. Если вдруг тема по моему следующему вопросу открыта, то поправте меня, если нет, то подскажите следующее:
Я хочу собрать сцену со следующими элементами:
- Геометрия с 2х слоями текстуры: 1. Диффузная. 2. Лайтмап типа AmbientOcclusion.
- Хочу сделать на материалах Normals, Alpha, и др стандартные штуковины.
- Помимо лайтмап требуется сделать и реалтаймные тени от 2-3 источников.
- Bloom, РВК прочие навороты уже как прикрутки и не обязательны.

В чем собственно проблема? А вот в тех самых шейдерах и в частности в тенях. Stensil тени я сумел прикрутить, но применение добротных шейдеров из ShaderFX их убило. Написать (дописать) свои я не силён :( Какие есть варианты? Может кто имеет хорошие исходники шейдеров с перечислеными возможностями и непротив ими поделиться? Может уважаемый Sqwer откликнется? ;)

PS, по написанию шейдеров я читал и стараюсь читать далее, так что этот вариант обрабатывается. Я поднимаю вопрос о готовых решениях.


Название: Re: Освещение сцены
Отправлено: Sqwer от 20 Сентября 2009, 08:06:55
 Вот тут находится реализация теней.  (http://forum.quest3d.com/index.php?action=dlattach;topic=66423.0;attach=128349)
они быстрые, но не пригодны для аутдор сцен (всвязи проблем альясинга глубины). К этому шейдеру легко прикрутить Normals, Alpha, Difuse (все действия производятся в PS).
Как прикручивать описано   тут  (http://guest3d.wohlnet.ru/forum/index.php?topic=426.0) бывшим квестером а  ныне Юнитистовцем Const_47



Есть такая книжка "Shaders for programmers and artists", прочитай ее можно за 2-3 дня, и пройти все уроки. Большая часть вопросов отпадет сама. Разбираясь на примерах далеко не уйдете. Просто сейчас вы хотите чтобы шейдер просто работал, вроде получилось, потом станет вопрос внесения изменений в код, оптимизации, использования других моделей освещения, юзания масок и т.п.
  А вот и эта книжка, про которую говорил Виктор, отослал в личку.



Название: Re: Освещение сцены
Отправлено: Paul_Winex от 20 Сентября 2009, 09:55:13
ОТ-ЛИЧ-НО! Да не снизится частота твоего ядра за твой Добродетель!
зы. Юнитистовец это кто? я видимо не в курсе такой профессии :)
__________
Что-то в предложенном примере теней и нет вовсе :(. Может какие несостыковки по версиям.


Название: Re: Освещение сцены
Отправлено: Sqwer от 20 Сентября 2009, 10:09:44
Цитировать
Что-то в предложенном примере теней и нет вовсе . Может какие несостыковки по версиям.
Камеру переключи  ;D

Юнитистовец - это юзер данного ПО  (http://www.unitydev.ru/)





Название: Re: Освещение сцены
Отправлено: Paul_Winex от 20 Сентября 2009, 16:06:52
ХАХА, оч смешно. Первое что сделал это переключился в камеру. Она вообще на нуле лежит и не двигается. Следовательно пол у меня плоский и теней не вижу. Но усилием моска я поднял камеру повыше и всё заработало :)
Ну ваще ты прав, просто не ПЕРЕКЛЮЧИ а ПОКРУТИ.


Название: Re: Освещение сцены
Отправлено: Sqwer от 20 Сентября 2009, 19:26:49
Да-да, простите уж меня - дурака. Забыл сказать что её не только переключит , но и покрутить надо. А крутить надо так: УДЕРЖИВАЯ левую кнопку мыши, премещаем её.


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 20 Сентября 2009, 22:00:47
 ;D Между прочим  по-началу и знать не знал что так можно! Изменял циферки в канале векторов положения и поворота!!! Так что кто тут еще дурак  :D


Название: Re: Освещение сцены
Отправлено: Paul_Winex от 24 Сентября 2009, 08:35:49
Друзья мои, не осилил я пока что теневое шейдерописание, впрочем как и любое другое. И решил немного пошарить по нету в поисках готовых. Набрел на сайт
http://knowledgebase.quest3d.com/browse/detail/55 (http://knowledgebase.quest3d.com/browse/detail/55)
С этой странички скачал прилагаемый шейдер (копия кода из канала). Всё там круто, есть нормалмап, спекьюлярмап, и даже стенсил тени (да, пока что их) работают. Но вот незадача, не всегда они работают. Сделал эксперемент, поставил импортировнную плоскость. Пославил местный бокс, подключил стенсил-тени, всё работает. Потом импортировал из макса объект нужный для сцены - не могу подключить тени! Точней подключаю но не работает. Предположил что быть может это из-за того что меш состоит из нескольких частей. Сделал отдельно части (боксы), всё равно теней нет. Сделал новый бокс в максе е нужный для сцены, импортнул - работает. Сделал новые боксы на нужном месте, импортнул - не работает! Это издевательство! Почему тени стенсиловые могут не работать если при таких же условиях с другими объетами и с тем же шейдером они работают?


Название: Re: Освещение сцены
Отправлено: Sqwer от 16 Ноября 2009, 23:35:56
Вопрос дня: стот ли производить фрустум кулинг объектов при касте теней от множества объектов, если солнце всегда в зените(т.е. солнце потенциально охватывает 1/3 от сцены)?

Реализация теней PSSM.


может лучше смоделить примитивную геометрию и запекать примитывные объекты в 1 сетку , и только затем подавать на обработку?

 :P