Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эффект отражения светового пятна, чтобы создать изображение, которое выглядит как отражающая поверхность, где источник света ограничен направленным световым конусом. Этот эффект использует альфа-канал в качестве карты высоты и освещает изображение с помощью точечного источника света.
Цвет выходного растрового изображения является результатом светлого цвета, положения света, направления конуса и геометрии поверхности в соответствии с зрительной частью модели освещения Phong. Выходные данные альфа-канала для каждого пикселя с зеркальным освещением — максимальное количество выходных данных красного, зеленого и синего каналов для этого пикселя.
CLSID для этого эффекта CLSID_D2D1SpotSpecular.
- пример изображения
- источник света
- свойства эффекта
- Режимы масштабирования
- требования
- Связанные темы
Пример изображения
В примере показаны входные и выходные изображения эффекта точечного спекулярного освещения.
пример эффекта
Спектрулярный свет относится к свету, отраженному в определенном направлении.
Эффект вычисляет конечные значения пикселей выходных данных, используя приведенные здесь формулы:
где
Источник точечных света
Источник света прожектора излучает свет в форме конуса в определенном направлении и не излучает свет за пределами этого конуса.
Точечный источник света вычисляет световой вектор L и полусуммарный вектор H таким же образом, как и точечно-зеркальный эффект .
Эффект вычисляет светлый цвет, Lr, Lg, Lb, как функцию положения источника света, как показано в уравнениях:
уравнение
Вектор определяется этими уравнениями:
уравнение
Вектор определяется следующими уравнениями:
уравнение
Свойства эффекта
Отображаемое имя и перечисление индексов | Описание |
---|---|
Позиция света D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION |
Положение точечного источника света. Свойство — это D2D1_VECTOR_3F, заданный как (x, y, z). Единицы находятся в независимых от устройства пикселях (DIPs) и не связаны. Тип D2D1_VECTOR_3F. Значение по умолчанию — {0.0f, 0.0f, 0.0f}. |
PointsAt D2D1_SPOTSPECULAR_PROP_POINTS_AT |
Где сосредоточен свет прожектора. Свойство представлено как D2D1_VECTOR_3F с (x, y, z). Единицы находятся в DIP, и значения не ограничены. Тип - это D2D1_VECTOR_3F. Значение по умолчанию — {0.0f, 0.0f, 0.0f}. |
Фокус D2D1_SPOTSPECULAR_PROP_FOCUS |
Фокус пятна света. Это свойство является безразмерным и определяется в диапазоне от 0 до 200. Тип FLOAT. Значение по умолчанию — 1.0f. |
Ограничение угла конического сечения D2D1_SPOT_SPECULAR_PROP_УГОЛ_КОНУСА_ОГРАНИЧЕНИЯ |
Угол конуса, ограничивающий область, в которой проецируется свет. Свет не проецируется за пределами конуса. Ограничивающий угол конуса — это угол между осью прожектора (ось между свойствами LightPosition и PointsAt) и конусом прожектора. Это свойство определяется в градусах и должно быть от 0 до 90 градусов. Тип FLOAT. Значение по умолчанию — 90,0f. |
Спекулярная экспонента D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT |
Экспонента для зеркального компонента в уравнении освещения Фонга. Большее значение соответствует более отражающей поверхности. Это значение является безразмерным и должно находиться в диапазоне от 1,0 до 128. Тип FLOAT. Значение по умолчанию — 1.0f. |
Спекулярная константа D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
Соотношение зеркального отражения к падающему свету. Это значение является безразмерным и должно находиться в пределах от 0 до 10 000. Тип «FLOAT». Значение по умолчанию — 1.0f. |
SurfaceScale D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
Коэффициент масштабирования в направлении Z для создания карты высоты. Это значение является безразмерным и должно составлять от 0 до 10 000. Тип FLOAT. Значение по умолчанию — 1.0f. |
Цвет D2D1_SPOTSPECULAR_PROP_COLOR |
Цвет входящего света. Это свойство предоставляется в виде вектора 3 (R, G, B) и используется для вычисления LR, LG, LB. Тип D2D1_VECTOR_3F. Значение по умолчанию — {1.0f, 1.0f, 1.0f}. |
KernelUnitLength D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
Размер элемента в ядре Sobel, используемый для создания нормальной поверхности в направлении X и Y. Это свойство сопоставляется со значениями dx и dy в градиенте Sobel. Это свойство представляет собой D2D1_VECTOR_2F (Длина единицы ядра X, Длина единицы ядра Y) и определено в (DIPs/единица ядра). Эффект использует двулинейную интерполяцию для масштабирования растрового изображения для сопоставления размера элементов ядра. Тип D2D1_VECTOR_2F. Значение по умолчанию — {1.0f, 1.0f}. |
Режим масштабирования D2D1_SPOTSPECULAR_PROP_SCALE_MODE (режим масштабирования точечного зеркального) |
Режим интерполяции, используемый для масштабирования изображения до длины, соответствующей единице ядра. Существует шесть режимов масштабирования, которые отличаются качеством и скоростью. Дополнительные сведения см. в режимах масштабирования. Тип D2D1_SPOTSPECULAR_SCALE_MODE. Значение по умолчанию — D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
Режимы масштабирования
Перечисление | Описание |
---|---|
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Выбирает ближайшую единственную точку и использует её. В этом режиме используется меньше времени обработки, но выводится изображение с наименьшим качеством. |
D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR | Использует четырехточечный образец и линейную интерполяцию. Этот режим выводит изображение более высокого качества, чем ближайший сосед. |
D2D1_СПЕКУЛЯРНОЕ_ПЯТНО_РЕЖИМ_МАСШТАБИРОВАНИЯ_КУБИЧЕСКИЙ | Использует 16 примеров кубового ядра для интерполяции. В этом режиме используется максимальное время обработки, но выводится более качественный образ. |
D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | Использует 4 линейных выборки в одном пикселе для хорошего сглаживания краев. Этот режим хорошо подходит для уменьшения изображений с немногочисленными пикселями. |
D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | Использует анисотропную фильтрацию для выборки шаблона в соответствии с преобразованной формой растрового изображения. |
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Использует переменный по размеру кубическое ядро высокого качества для предварительного уменьшения масштаба изображения, если уменьшение масштаба предусмотрено матрицей преобразования. Затем используется режим интерполяции кубов для конечных выходных данных. |
Заметка
Если вы не выберете режим, эффект по умолчанию устанавливается в D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR.
Требования
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальный поддерживаемый сервер | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |