OpenGL communityФорумУроки по OpenGL

Урок 6 - Тени от объектов (комментарии)

Страницы: 1 2 Следующая »
#0
13:04, 26 янв 2011

Урок 6 - Тени от объектов (комментарии)

Это сообщение сгенерировано автоматически.

#1
13:04, 26 янв 2011

Дублирую http://code.google.com/p/gl33lessons/wiki/Lesson06

#2
13:53, 29 янв 2011

KpeHDeJIb

Ты бы это, лучше соответствующую тему сделал в разделе графика, а то большинству новичков просто скила не хватит увидеть статью, и тем более задать вопросы по ней в каком то там тайном и загадочном сообществе.

#3
20:42, 29 янв 2011

.Scotina
> Ты бы это, лучше соответствующую тему сделал в разделе графика, а то
> большинству новичков просто скила не хватит увидеть статью, и тем более задать
> вопросы по ней в каком то там тайном и загадочном сообществе.

Там была тема, и об уроке там было написано, вопросов не было, я же не могу тему бампать постоянно, а прикрепленные темы делать мне никто не даст.

#4
2:16, 30 янв 2011

KpeHDeJIb
> а прикрепленные темы делать мне никто не даст.
а что, можно и такие делать? :)

#5
23:16, 30 янв 2011

Sergio
> а что, можно и такие делать? :)
Насколько мне известно нет, что даже к лучшему :)

#6
20:33, 31 янв 2011

KpeHDeJIb
> Там была тема, и об уроке там было написано, вопросов не было

Новичкам часто нужна лишь геометрия, камера, и простое освещение. Получив представление, как с этим работать, можно уже браться за логику игрушки, а все красоты отложить "на потом". Поэтому, наверное, и вопросов мало.

У меня был только вопрос про черный амбиент, но с ним я разобрался - в шейдере урока цвет целиком на shadow умножается. Я умножил только диффуз и спекуляр, теперь доволен :)
Когда соберусь к ландшафту тень прикручивать - будут вопросы :)

#7
1:57, 6 мая 2011

Я не совсем понимаю, как работает вот это:

LightDefault(directionalLight, LT_DIRECTIONAL);
directionalLight.position.set(3.0f, 3.0f, 3.0f, 0.0f);
CameraLookAt(lightCamera, directionalLight.position, -directionalLight.position, vec3_y);

Как после этого будет располагаться камера в мировом пространстве?

#8
10:02, 6 мая 2011

Pixar
> Как после этого будет располагаться камера в мировом пространстве?
Камера будет находиться в позиции directionalLight.position, будет направлена на точку -directionalLight.position и вектор вверх ориентировочно будет направлен в сторону vec3(0, 1, 0).

#9
17:58, 6 мая 2011

>Обладая информацией о глубине фрагмента относительно камеры источника освещения и относительно камеры наблюдателя мы можем сравнить эти два значения и узнать, находится ли этот фрагмент в тени другого в пространстве источника освещения.
А как информация о глубине фрагмента со стороны источника освещения и о глубине со стороны наблюдателя позволяет определить, что фрагмент в тени? Я не понимаю это даже просто концептуально. Вот, допустим, источник света видит, что до какой-то точки расстояние 100, а камера видит, что расстояние до той же самой точки - 50. И что? =)

#10
19:45, 6 мая 2011

Pixar
Нарисовали сцену с позиции света.
Рисуем сцену с позиции камеры. Глубину камеры переводим в пространство света. То есть мы знаем глубину как если бы это был рендер с позиции света.
Мы сравниваем две глубины, какая глубина дальше от света, тот пиксел в тени.

#11
0:00, 7 мая 2011

Кажется я понял. При первом проходе, во время рендеринга z-buffer затирается ближайшими к источнику света вершинами. А во время второго прохода, мы рендерим вершину опять же для источника освещения, но она уже не затирается более близкими для источника вершинами, и мы получаем расстояние от источника до вершины. Поэтому, если в z-buffere на том месте, куда должна была спроецироваться эта вершина, глубина меньше, чем только что полученная, значит, во время первого рендеринга эта вершина была затёрта более близкой вершиной, а значит эта вершина в тени.

Pixar
> о глубине со стороны наблюдателя
Значит, берётся-то не глубина со стороны наблюдателя, а опять же - глубина со стороны светильника, только это значение уже не затирается ))

PS: помогает -  Shadow Mapping

#12
0:14, 7 мая 2011

Ничего не затирается. Рендерится сцена в текстуру со стороны источника света. Потом рендерится сцена в камеру и вот тут происходит сравнение текущего фрагмента с тем, что в текстуре.

#13
14:54, 7 мая 2011

Executor
> Потом рендерится сцена в камеру
и рендерится снова в источник освещения - вот этого мне не хватало для понимания =)

#14
14:55, 7 мая 2011

Что значит снова? С позиции источника света рендерится один раз и один раз с камеры. Два рендера на всё.

Страницы: 1 2 Следующая »
OpenGL communityФорумУроки по OpenGL

Тема в архиве.