![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Свет, материя, её свойства, прозрачность, отражение…
В этой статье я попытался обобщить физические сведения о материалах и свете. Под словом материал я подразумеваю поверхность с особыми свойствами. Надо знать, что все предметы окружающего нас пространства либо отражают свет, либо излучают его, а некоторые и то и другое одновременно. Так же необходимо знать, что то, что мы видим в данный момент основывается на сотнях различных операций со светом(отражение, преломление, искажение, поглощение спектра). Как раз об этих свойствах материи мы сейчас и поговорим. Основы световой физики и прозрачность. Наверное, физику света будет проще всего продемонстрировать на краске. Что такое красная краска? Многие убеждены, что это жидкость красного света, которая размазывается по белому листу бумаги. Они конечно же ошибаются. Краска – это действительно жидкость(кто бы мог подумать?), но цвет её определятся непоглощенными цветами спектра света, попавшего в краску. Разберёмся подробнее: спектр – по сути, луч белого света(белый цвет – это когда ни один цвет спектра не поглощён(цвета спектра – цвета радуги)). Итак, спектр попал в красную краску, соответственно все цветовые лучи поглотились, а красный луч преломился, отразился и попал нам в глаз. По этому нам и кажется, что красная краска – красная. Теперь стоит разобраться с прозрачностью. Что же это такое с физического взгляда? Если материал прозрачный, значит он пропускает лучи света через себя(в большинстве случаев преломляя его(например стекло) или рассеивая(например, посмотрите на свет сквозь шторину)). Зеркальное отражение. Что есть отражение? Рассмотрим отражение в зеркале – это когда лучи разложившихся спектров, отражённых от различных предметов, попадают на поверхность зеркала, а оно в свою очередь отражает нам всё это в глаз. Надо заметить, что зеркало, при попадании на него этих самых отражённых разложившихся спектров часть световой энергии тоже поглощает(т.е. ещё немного поглощает цвета разложившихся спектров). Диффузное отражение. Диффузное отражение это, когда свет, падая на поверхность, рассеивается относительно равномерно в различных направлениях. Такое отражение характерно, например, для стен зданий(позже я упомяну с чем это связано). Преломление. Преломление - это, когда лучи света, падая на поверхность, проникают внутрь неё. Например, вода или стекло. Этот эффект ещё называют рефракцией. При попадании света на такую поверхность, часть его отражается. Общие сведения об источниках света. Как мы уже упомянули, все предметы либо излучают(Солнце), либо отражают свет(Луна), но есть и такие, которые одновременно отражают и излучают свет(обычная лампочка). Среди источников света, осуществляемых программно можно обозначить три основных типа: фоновый, точечный и так называемый прожектор. Фоновый. Если понаблюдать за организацией освещения, то вы заметите, что в большей части домов, учебных заведений и т.п. помещениях освещение равномерно. Люди пытаются устанавливать источники света, так чтобы освещение было мягким и приятным. Допустим, что нам надо равномерно осветить большую комнату. Как это реализовать? Можно сделать большое количество различных источников света, но, в виду человеческой несовершенности, мы не сможем разместить источники так, чтобы всё было освещено одинаково мягко. Именно для таких освещений и требуется фоновое освещение. По сути – это источник света, который задаёт яркость каждого пикселя поверхности равной какому-то определённому значению. Точечный. Точечный источник света, в идеале – источник света, который распространяет свет во всех направлениях с одинаковой интенсивностью. Освещённость некоторой точки поверхности светом от этого источника обратно пропорционально квадрату расстояния между этой точкой и источником света. Этот тип источника света является самым распространённым в играх, ввиду своей простоты. Но не стоит забывать, что: “Просто не значит лучше.”. Этот тип освещения имеет существенный недостаток – изображение сцены, сформированное с учётом только точечных источников, получается либо очень ярким, либо слишком тёмным. Прожектор. Принцип работы источника света типа прожектор прост и понятен даже пятикласснику. Достаточно представить фонарик и то, как распространяется свет от его лампочки. Освещение по Фонгу. Естественно, что если бы мы задали компьютеру на вычисление источники света, в которых был бы реализован алгоритм освещения такой же, как и в нашей жизни, то ни один компьютер не сумел бы просчитать простейших поверхностей, с учётом их рельефа, типа материала(даже, если бы таковых было ограниченное количество, а в природе их огромное множество) и остальных параметров объектов. Для того, чтобы упростить все вычисления начали создавать различные модели освещения, одна из них – Модель отражения Фонга. Практика использования этой модели во множестве графических систем доказала её эффективность и достаточно близкое приближение к реальным физическим процессам, что позволяет формировать полутоновые изображения высокого качества при самых различных условиях освещения и свойствах материалов. Для вычисления цвета произвольной точки поверхности используется четыре вектора, берущие начало в этой точке: 1)Нормаль к поверхности в рассматриваемой точки. Надо сказать, что нормаль – линия, берущая начало из середины полигона под углом в 90 градусов, она указывает в каком направлении у полигона лицевая часть, какое направление верхнее(это требуется для корректного освещения). 2)Вектор направленный от рассматриваемой точки к наблюдателю. 3)Вектор, задающий направление от рассматриваемой точки к произвольной точке источника распределённого света. 4)Направление идеального отражения луча, падающего на поверхность вдоль вектора 2). Сейчас стоит отметить, что для имитации эффектов, которые по самой своей природе носят глобальный характер, в модели Фонга пытаются использовать локальные модели. Т.е. при расчёте цвета какой-либо точки поверхности, модель Фонга учитывает параметры всех трёх типов источников света, естественно, если таковые имеют воздействие на цвет рассматриваемой точки поверхности. Таким образом освещённость различных точек поверхности будет вычисляться по матрице размеров 3х3: L(ira) L(iga) L(iba) L(i)= L(ird) L(igd) L(ibd) L(irs) L(igs) L(ibs) Где, элементы первой строки – интенсивность фонового света, соответственно для красного, зелёного и синего, поступающ. от источника i; элементы второй строки – цветовые компоненты интенсивности диффузного света; ну и третей – зеркального. Теперь, наверное, стоит поговорить об отражениях различных типов света. Отражение фонового света. По сути, отражение этого света можно опустить, дабы сохранить драгоценные нано-секунды по прохождению алгоритма программой. Фоновый свет используется для создания мягкого освещения. Но, если вы всё-таки решили делать отражение фонового света, тогда вам надо помнить, что частично энергия этого света поглощается материалом, а частично – отражается. Отражение характеризуется коэффициентом R=k, где 0<=k<=1. Диффузное отражение. Поверхность с идеальным диффузным отражением отражает падающий на неё свет одинаково во всех направлениях, следовательно, такая поверхность выглядит одинаково для всех наблюдателей. Однако количество отражённого света зависит от материала поверхности, поскольку часть энергии падающего светового потока поглощается. Способность поверхности к диффузному отражению характеризуется её шероховатостью, т.е. чем шероховатестей поверхность, тем диффузней(более матовой) она будет выглядеть. Зеркальное отражение. Именно благодаря этому типу отражения мы с вами можем видеть блестящие предметы. Если бы не было этого типа отражения, то все предметы были монотонные, матовые. Этот тип отражения характерен для гладких поверхностей. Чем глаже поверхность, тем меньше угол преломления лучей, попадающих на поверхность, а, соответственно, тем меньше рассеивание света, а, следовательно, всё большая часть лучей, отражаясь, попадает нам в глаз. Отсюда и появляется блеск различных предметов. Фонг предложил приближённую модель, в которой учёт зеркального отражения очень незначительно увеличивает объём вычислений по сравнению с моделью, учитывающей только диффузное отражение. Вся фишка заключается в вводе нового аддитивного члена, который указывает на степень шероховатости поверхности, таким образом экономя время на обработку двух способов отражения, вычисляется только один, хотя и с небольшое нагрузкой, плюс дополнительный параметр. Это сообщение отредактировал(а) gepard - 23.6.2004, 04:06 -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Ну вы бы хоть отзывы ставляли.
-------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
bagira |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2858 Регистрация: 25.10.2003 Где: в тайге Уральских гор Репутация: нет Всего: 123 |
![]() ![]() -------------------- Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил... Ф.Х. Дагларджа (Турция) http://zveriolginovour.ru/ https://vmeste.yandex.ru/zveriolginovour |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Мда, не велика публика.
![]() Ну, буду писать хотя бы для тебя. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Интересно!
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Ну вот уже два читателя. Аудитория стекается в одну канаву
![]() -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Читали статью многие, просто не все оставляют заметки.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: нет Всего: 112 |
gepard, написано доступно и по-русски
![]() Только хотелось бы видеть практическое применение, например, освещение по Фонгу - расписал бы формулы, может даже сбацал бы прогу для рисования какого-нибудь кубика с различными освещениями/отражениями... -------------------- С уважением, г-н Посол. |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: нет Всего: 57 |
|
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: нет Всего: 54 |
Спасибо, статья хорошая, но про текстурирование мне больше понравилась... Почему не знаю...
-------------------- ![]() |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Ну не знаю. Это как сказать, что есть только один человек написавший программу Hello World, а все остальные(особенно новички) её списали. ИМХО - законы физики едины во всей вселенной. Хотя, а что вы скажите о чёрных дырах? Там-то законы другие из-за действия огромного давления. Это сообщение отредактировал(а) gepard - 18.3.2004, 09:51 -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
Guest |
|
|||
Unregistered |
Там законы не другие, просто они изменены как раз под действием можных магнитных полей и давления ... или чего тв них там... но это уже отдельный топик... |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
А "изменённые" это разве не "другие"? ![]() -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Обалдеть! Статья гораздо лучше чем про текстурирование имхо...
![]() ![]() ![]() ![]() --------------------
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: нет Всего: 538 |
Продолжай одназаначна!!!
Сам я читать руководства по OpenGL, D3D, 3D max и т.д. не сяду, а вот твои статьи с удовольствием почитаю. ![]() ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |