GLKEffectPropertyLight
GLKEffectPropertyLight
класс определяет свойства для единственного света, применился к эффекту. Модель распространения света, реализованная GLKEffectPropertyLight
идентично модели распространения света, реализованной в OpenGL ES 1.1; каждый свет взаимодействует с любыми свойствами материала на эффекте определить интенсивность и цвет, который определенный свет вносит в сцену во фрагменте.
Существует три основных вида световых сигналов: направленный, точка и центры внимания.
Направленный свет считается бесконечно далеко, и всегда направляет свет в том же направлении. Для создания направленного света установите
position
свойство к вектору, чейx
,y
, иz
компоненты указывают направление к свету (т.е. отрицание направления, свет перемещается в), и чейw
компонент установлен в0.0
.Точечный свет помещается в позицию в сцене и излучает свет во всех направлениях. Для создания направленного света установите
position
свойство к вектору, чейx
,y
,z
иw
компоненты указывают однородные координаты для позиции света в сцене.w
компонент обычно устанавливается в1.0
и не должен быть установлен в0.0
.Интенсивность точечного света корректируется с помощью функции затухания расстояния. Этой функцией управляют путем корректировки
constantAttenuation
,linearAttenuation
илиquadraticAttenuation
свойства. Значения по умолчанию для этих свойств создают свет, интенсивность которого является постоянной по расстоянию.Центр внимания помещается в позицию в сцене и излучает свет в определенном направлении в конусе. Для создания центра внимания установите
position
свойство к вектору, чейx
,y
,z
иw
компоненты указывают однородные координаты для позиции света в сцене.w
компонент не должен быть установлен в0.0
. Затем установитеspotDirection
свойство к вектору, указывающему направление света иspotCutoff
к значению меньше, чем180.0
.Как точечный свет, интенсивность центра внимания может быть скорректирована с помощью свойств затухания расстояния. Интенсивность центра внимания может также меняться как функция угла центра внимания путем установки
spotExponent
свойство. Значение по умолчанию для центра внимания создает центр внимания, интенсивность которого не затронута углом. Т.е. центр внимания излучает то же количество света в центре и в краю конуса.
Освещающие вычисления выполняются в глазных пространственных координатах. В точный момент вычисляются глазные пространственные координаты для позиции и направления спота, что новые значения позиции указаны и могут быть затронуты другими свойствами эффекта. Для получения дополнительной информации посмотрите Ссылку класса GLKBaseEffect.
Наследование
-
NSObject
-
GLKEffectProperty
-
GLKEffectPropertyLight
-
NSObject
-
GLKEffectProperty
-
GLKEffectPropertyLight
Оператор импорта
Swift
import GLKit
Objective C
@import GLKit;
Доступность
Доступный в OS X v10.8 и позже.
-
включенный включенный
СвойствоБулево значение, указывающее, должны ли вычисления быть выполнены на этом свету.
Объявление
Swift
var enabled: GLboolean
Objective C
@property(nonatomic, assign) GLboolean enabled
Обсуждение
Если значение
enabled
GL_TRUE
, тогда освещающие вычисления выполняются для этого света. Если значениеGL_FALSE
, этот свет пропускается при вычислениях цвета фрагмента.Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-
Позиция света в мировых координатах.
Объявление
Objective C
@property(nonatomic, assign) GLKVector4 position
Обсуждение
Если
w
компонент позиции0.0
, свет вычисляется с помощью формулы направленного света.x
,y
, иz
компоненты вектора указывают направление легкие сияния. Свет, как предполагается, бесконечно далеко; затухание и свойства центра внимания проигнорированы.Если
w
компонент позиции является ненулевым значением, координаты указывают позицию света в однородных координатах, и свет или вычисляется как точечный свет или центр внимания, в зависимости от значенияspotCutoff
свойство.Значение по умолчанию
[0.0, 0.0, 1.0, 0.0]
.Оператор импорта
Objective C
@import GLKit;
Доступность
Доступный в OS X v10.8 и позже.
-
преобразовать преобразовать
СвойствоПреобразование применилось к позиции и направлению света прежде, чем вычислить вклад света.
Объявление
Swift
var transform: GLKEffectPropertyTransform!
Objective C
@property(nonatomic, retain) GLKEffectPropertyTransform *transform
Обсуждение
Значение по умолчанию является единичной матрицей.
Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-
ambientColor ambientColor
СвойствоОкружающая часть света.
Объявление
Objective C
@property(nonatomic, assign) GLKVector4 ambientColor
Оператор импорта
Objective C
@import GLKit;
Доступность
Доступный в OS X v10.8 и позже.
-
diffuseColor diffuseColor
СвойствоРассеянная часть света.
Объявление
Objective C
@property(nonatomic, assign) GLKVector4 diffuseColor
Оператор импорта
Objective C
@import GLKit;
Доступность
Доступный в OS X v10.8 и позже.
-
specularColor specularColor
СвойствоЗеркальная часть света.
Объявление
Objective C
@property(nonatomic, assign) GLKVector4 specularColor
Оператор импорта
Objective C
@import GLKit;
Доступность
Доступный в OS X v10.8 и позже.
-
constantAttenuation constantAttenuation
СвойствоПостоянный множитель применился к затуханию точечного света или центра внимания.
Объявление
Swift
var constantAttenuation: GLfloat
Objective C
@property(nonatomic, assign) GLfloat constantAttenuation
Обсуждение
Коэффициент затухания расстояния вычисляется как
1.0 / (k0 + k1 * d + k2 * d * d)
, гдеd
представляет расстояние от света до освещенной точки.constantAttenuation
свойство представлено в этом вычислении какk0
. Значение по умолчанию1.0
.Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-
linearAttenuation linearAttenuation
СвойствоЛинейный фактор применился к затуханию точечного света или центра внимания.
Объявление
Swift
var linearAttenuation: GLfloat
Objective C
@property(nonatomic, assign) GLfloat linearAttenuation
Обсуждение
Коэффициент затухания расстояния вычисляется как
1.0 / (k0 + k1 * d + k2 * d * d)
, гдеd
представляет расстояние от света до освещенной точки.linearAttenuation
свойство представлено в этом вычислении какk1
. Значение по умолчанию0.0
.Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-
quadraticAttenuation quadraticAttenuation
СвойствоКвадратичный фактор применился к затуханию точечного света или центра внимания.
Объявление
Swift
var quadraticAttenuation: GLfloat
Objective C
@property(nonatomic, assign) GLfloat quadraticAttenuation
Обсуждение
Коэффициент затухания расстояния вычисляется как
1.0 / (k0 + k1 * d + k2 * d * d)
, гдеd
представляет расстояние от света до освещенной точки.quadraticAttenuation
свойство представлено в этом вычислении какk2
. Значение по умолчанию0.0
.Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-
spotCutoff spotCutoff
СвойствоУгол в градусах, где отключен центр внимания.
Объявление
Swift
var spotCutoff: GLfloat
Objective C
@property(nonatomic, assign) GLfloat spotCutoff
Обсуждение
Если
w
компонент позиции не равен0.0
, значениеspotCutoff
свойство определяет, является ли свет точечным светом или центром внимания. Значение сокращения180.0
указывает, что свет является точечным светом; для точечного света,spotDirection
иspotExponent
свойства проигнорированы. Иначе,spotCutoff
свойство представляет максимальный угол, под которым свет вносит освещение в сцену. Угол измеряется между вектором, предоставленнымspotDirection
свойство и вектор, нарисованный от позиции света до освещенной точки. Если угол превышает эту сумму, то свет не вносит света в сцену.Значение по умолчанию
180.0
.Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-
spotDirection spotDirection
СвойствоВектор, указывающий направление центр внимания, проектирует.
Объявление
Objective C
@property(nonatomic, assign) GLKVector3 spotDirection
Обсуждение
Направление по умолчанию
[0.0, 0.0, -1.0]
.Оператор импорта
Objective C
@import GLKit;
Доступность
Доступный в OS X v10.8 и позже.
-
spotExponent spotExponent
СвойствоЗначение, указывающее, насколько фокусируемый центр внимания.
Объявление
Swift
var spotExponent: GLfloat
Objective C
@property(nonatomic, assign) GLfloat spotExponent
Обсуждение
Выше значение, сохраненное в
spotExponent
свойство, более трудное фокус центра внимания. Значение по умолчанию0.0
.Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-
Константа, описывающая, как освещение вычисляется эффектом.
Объявление
Swift
enum GLKLightingType : GLint { case PerVertex case PerPixel }
Objective C
typedef enum { GLKLightingTypePerVertex, GLKLightingTypePerPixel } GLKLightingType;
Константы
-
PerVertex
GLKLightingTypePerVertex
Указывает, что вычисления освещения выполнены в каждой вершине в треугольнике и затем интерполированы через треугольник.
Доступный в OS X v10.8 и позже.
-
PerPixel
GLKLightingTypePerPixel
Указывает, что вводы к вычислению освещения интерполированы через треугольник, и вычисления освещения выполняются в каждом фрагменте.
Доступный в OS X v10.8 и позже.
Обсуждение
Как правило, освещение на пиксель должно быть включено, когда оно обеспечивает улучшение качества изображения, значительно не сокращая производительность Вашего приложения. Вычисление уравнения освещения в каждом фрагменте значительно увеличивает число вычислений, требуемых вычислить освещение для сцены. Когда Ваше приложение использует центры внимания или зеркальное выделение, Однако вычисление освещения только в вершинах иногда приводит к необычным или неточным результатам, особенно. Например, когда освещение на пиксель отключено, узкий центр внимания, спроектированный в центре большого треугольника, может исчезнуть полностью, потому что вершины, определяющие треугольник, все лежат вне области, покрытой центром внимания. Тот же самый треугольник, когда представлено с помощью освещения на пиксель, был бы представлен правильно.
Оператор импорта
Objective C
@import GLKit;
Swift
import GLKit
Доступность
Доступный в OS X v10.8 и позже.
-