ПрограммированиеФорумГрафика

Что можно почитать про цвета? Ambient, Diffuse, Specular, Emission ...

Страницы: 1 2 Следующая »
#0
6:52, 14 ноя 2005

Что можно почитать про цвета? Ambient, Diffuse, Specular, Emission ...

Что они все означают, и какие есть ещё?
Я только про Emission понял, что это значит светится изнутри. А остальные чего? И зачем вообще столько напридумывали?

#1
7:58, 14 ноя 2005

Цитата OpenGL Red Book (русская версия):

5.2.1  Фоновый (ambient), диффузный (diffuse), зеркальный (specular) и исходящий свет (emission)
Фоновоее излучение – это свет, который настолько распределен средой (предметами, стенами и так далее), что его направление определить невозможно – кажется, что он исходит отовсюду. Лампа дневного света имеет большой фоновый компонент, поскольку большая часть света, достигающего вашего глаза, сначала отражается от множества поверхностей. Уличный фонарь имеет маленький фоновый компонент: большая часть его света идет в одном направлении, кроме того, поскольку он находится на улице, очень небольшая часть света попадает вам в глаз после того, как отразится от других объектов. Когда фоновый свет падает на поверхность, он одинаково распределяется во всех направлениях.
Диффузный компонент – это свет, идущий из одного направления, таким образом, он выглядит ярче, если падает на поверхность под прямым углом, и выглядит тусклым, если касается ее всего лишь вскользь. Однако, когда он падает на поверхность, он распределяется одинаково во всех направлениях, то есть его яркость одинакова вне зависимости от того, с какой стороны вы смотрите на поверхность. Вероятно, любой свет, исходящий из определенного направления или позиции, имеет диффузный компонент.
Зеркальный свет исходит из определенного направления и отражается от поверхности в определенном направлении. При отражении хорошо сфокусированного лазерного луча от качественного зеркала происходит почти 100 процентное зеркальное отражение. Блестящий метал или пластик имеет высокий зеркальный компонент, а кусок ковра или плюшевая игрушка – нет. Вы можете думать о зеркальности как о том, насколько блестящим выглядит материал.
Помимо фонового, диффузного и зеркального цветов, материалы могут также иметь исходящий цвет, имитирующий свет, исходящий от самого объекта. В модели освещения OpenGL исходящий свет поверхности добавляет объекту интенсивности, но на него не влияют никакие источники света, и он не производит дополнительного света для сцены в целом.
Хотя источник света излучает единое распределение частот, фоновый, диффузный и зеркальный компоненты могут быть различны. Например, если в вашей комнате красные стены и белый свет, то этот свет, отражаясь от стен будет скорее красным, чем белым (несмотря на то, что падающий на стену свет -- белый). OpenGL позволяет устанавливать значения красного, зеленого и синего независимо для каждого компонента света.

#2
2:23, 16 ноя 2005

deni
Честно сказать, не понял разницу между диффузным и зеркальным. Оба отражённые. Это не одно и тоже случайно? Или в чём разница?

#3
1:53, 18 ноя 2005

Ау !

#4
2:10, 18 ноя 2005

Петька
Думай проще. Дифузный - это цвет предмета. А Зеркальный - цвет блика на нём. Но если ты любопытный могу всё подробнее объяснить.

#5
3:27, 18 ноя 2005

Black Angel
> Дифузный - это цвет предмета. А Зеркальный - цвет блика на нём.
Цвет придемта - это эмбиент.

> Но если ты любопытный могу всё подробнее объяснить.
А ты уверен, что можешь точно объяснить?

#6
4:01, 18 ноя 2005

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

#7
7:27, 18 ноя 2005

Black Angel
> Амбиент - это цвет предмета, освещённого только рассеяным светом.
А какого цвета при этом свет?
И что значит рассеянным? Свет и есть свет.

#8
8:34, 18 ноя 2005

Петька

точные формулы применения света в моделях освещения OGL или D3D можно найтив их документации в том же MSDN.

если вкратце.
Фоновый (ambient) просто складывается с цветами всех точек на сцене
диффузный (diffuse) тоже складывается, но его интенсивность уменьшается на коэффициент угла падения на триангл (а на самом деле - на нормаль в точке). если направление от источника света смотрит прямо на нормлаль - коэффициент = 1, если перпендикулярно - коэффициент = 0. из-за этого освещенный таким способом шар имеет мягкое освещение
зеркальный (specular) - с ним всё сложнее. справедливо сказанное для диффузного, но кроме всего прочего учитывается направление взгляда игрока. луч света как бы отражают от точки и проверяют - если отраженный луч попадает в камеру, то коэффициент = 1, если отклоняется от неё более чем на допустимый угол (задается в опциях источника освещения), то коэффициент = 0, и интерполированноезначение в средних случаях. таким способом имитируют блики на поверхностях.

#9
13:29, 18 ноя 2005

=A=L=X=
Ну ты и объяснил :)

Петька
>> Амбиент - это цвет предмета, освещённого только рассеяным светом.
>А какого цвета при этом свет?
Какого задашь, такого и будет.

>И что значит рассеянным?
Значит равномерно светит со всех сторон. Ambient light - не признаёшь?

>Свет и есть свет.
В КГА свет свету рознь.

#10
22:08, 18 ноя 2005

Петька> не понял разницу между диффузным и зеркальным

Зеркальный работает по правилам геометрической оптики. Отражение, преломление, поглощение, граница сред с разной плотностью.
Диффузный вариант - интегральный. Если поверхность шершавая, геометрическая оптика требует рассматриваить поверхность каждого бугорка и считать преломление-отражение. Однако, если бугоркастость поверхности регулярная и нам необходим суммарный результат, появляется понятие диффузной составяляющей оптических свойств материала. Можно считать, что мы заранее проинтегрировали множество зеркальных лучей.

#11
4:04, 19 ноя 2005

=A=L=X=
> зеркальный (specular) - с ним всё сложнее. справедливо сказанное для диффузного, но кроме всего прочего учитывается направление взгляда игрока. луч света как бы отражают от точки и проверяют - если отраженный луч попадает в камеру, то коэффициент = 1,
А если не попадает в камеру, то его не видно, и чему равен коэффициент - не важно. Иными словами, он всегда равен 1, верно?

Zab
> Можно считать, что мы заранее проинтегрировали множество зеркальных лучей.
А попроще можно?
И почему если объект покрашен в один цвет, то у бугорков должен быть какой то другой цвет? Вы в реальной жизни такое видели, где нибудь? Как это вообще?


У объекта один цвет, а не четыри.
Краска которой его красят - у неё какой цвет?
Вот это превый. А второй цвет - это цвет лампочки которая светит. Он где задаётся?
А третий и четвёртый - я вообще не понимаю.

Сами то вы, кстати, как программируете?

#12
9:02, 19 ноя 2005

Петька

> А если не попадает в камеру, то его не
> видно, и чему равен коэффициент - не важно.

Коэффициент как раз равен нулю. :) Это и значит что "его не видно".

> Иными словами, он всегда равен 1, верно?

Нет, неверно. Кроме 0 и 1 коэффициент спекуляра может принимать промежуточные значения. У спекулярной модели освещения есть один дополнительный параметр - угол (вернее его какой то там приведенный экспоненциальный коэффициент. в OGL меняется от 0 до 32.) между камерой и отраженным лучем при котором спекулярный цвет еще видно.

каков физический смысл спекулярного освещения? в реальной жизни это то что мы называем бликами на поверхностях.
блики появляются там где лучи света от источника отражаются от поверхности так под углом отражения = углу падения и попадают нам в глаза. у таких лучей цвет и интенсивность как правило сильно отличаются от остального (диффузного) освещения. диффузное освещение в свою очередь это освещение в свою очередь это те лучи света которые отражаются под углом отражение сильно отличающимся от угла падения. в основном мы видим именно эти лучи.

#13
9:13, 19 ноя 2005

Петька

> И почему если объект покрашен в один цвет, то у бугорков
> должен быть какой то другой цвет? Вы в реальной жизни
> такое видели, где нибудь? Как это вообще?

Да в реальной жизни мы это постоянно видим и называем бликами. Вспомни как выглядит машина под солнечным светом - на красной феррари к примеру отчетливо видны ярко-белые пятна бликов от солнца. Кстати способность к "бликам" их величине и отличию в цвете от диффузной составляющей - это свойства материала. У разных материалов разные способности. Например зеркало имеет диффузную составляющую = 0, весь отражаемый свет у него идет как спекулар. Нередки материалы у которых наоборот практически отсутствует спекулярная составляющая.

> У объекта один цвет, а не четыри.
> Краска которой его красят - у неё какой цвет?

Во во. Оптика как раз выделяет как минимум 2 цвета у одного и того же материала/краски - диффузный и спекулярный. В OGL для удобства введено еще 2. Эмиссия - это просто читерство для получения эффекта самосвечения.

> А второй цвет - это цвет лампочки которая светит. Он где задаётся?

В параметрах источника цвета.

Нужно понимать какие объекты учавствуют в модели освещения современных 3D API (в D3D ситуация аналогичная):

1. источник света. задается своим цветом и интенсивностью (дальностью освещения). направленные источники так же имеют параметр-направления и конуса освещения.
2. полигоны. очень важно правильно задать нормали в каждой точке для просчета освещения.
3. материал из которых как бы "сделаны" полигоны. в материале задаются 4 вышеупомянутых цвета и 1 угловой коэффициент для спекулярной модели освещения.

#14
12:12, 19 ноя 2005

Петька
4-ре параметра материала заданы потому что _реальное_ освещение сделать нельзя, а с ними можно сделать хоть какое-то подобие.
если тебе интересно как их изменение влияет на результат напиши простенькую демку.
знаешь пословицу: "лучше один раз увидеть, чем сто раз услышать"?
вот она как раз про твой случай, на словах не объяснишь.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

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