SphericalHarmonics3 - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать SphericalHarmonics3 в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

# SphericalHarmonics3

Создаёт сферическую гармонику третьего порядка (СГ). Зонды освещения используют этот класс для кодирования информации об освещении.

## Конструктор

### SphericalHarmonics3()

Создает новый экземпляр SphericalHarmonics3.

## Свойства

### # .coefficients : Array

Массив, содержащий 9 коэффициентов СГ. Каждый коэффициент представлен в виде экземпляра Vector3.

### # .isSphericalHarmonics3 : Boolean

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

## Методы

### # .add(sh : SphericalHarmonics3) → SphericalHarmonics3

sh — добавляемая СГ.

Добавляет указанную СГ к текущей.

### # .addScaledSH(sh : SphericalHarmonics3, scale : Float) → SphericalHarmonics3

- sh — добавляемая СГ.
- scale — коэффициент масштабирования.

Удобный метод для одновременного выполнения .add() и .scale().

### # .clone() → SphericalHarmonics3

Возвращает новый экземпляр SphericalHarmonics3 с теми же коэффициентами.

### # .copy(sh : SphericalHarmonics3) → SphericalHarmonics3

sh — СГ для копирования.

Копирует указанную СГ в текущую.

### # .equals(sh : SphericalHarmonics3) → Boolean

sh — СГ для сравнения.

Возвращает `true`, если указанная СГ и текущая имеют одинаковые коэффициенты.

### # .fromArray(array : Array, offset : Float) → SphericalHarmonics3

- array — массив, содержащий числа коэффициентов СГ.
- offset — (необ.) смещение в массиве.

Устанавливает коэффициенты текущего экземпляра СГ из заданного массива.

### # .getAt(normal : Vector3, target : Vector3) → Vector3

- normal — вектор нормали (предполагается единичной длины).
- target — вектор результата.

Возвращает освещенность в направлении заданной нормали.

### # .getIrradianceAt(normal : Vector3, target : Vector3) → Vector3

- normal — вектор нормали (предполагается единичной длины).
- target — результирующий вектор.

Возвращает irradiance (излучение), т.е. radiance (освещенность), преобразованную с помощью косинусной доли) в направлении заданной нормали.

### # .lerp(sh : SphericalHarmonics3, alpha : Float) → SphericalHarmonics3

- sh — СГ для интерполяции.
- alpha — альфа-фактор.

Производит линейную интерполяцию между указанной СГ и текущим экземпляром по заданному альфа-фактору.

### # .scale(scale : Float) → SphericalHarmonics3

scale — коэффициент масштабирования.

Масштабирует данную СГ с использованием указанного коэффициента.

### # .set(coefficients : Array) → SphericalHarmonics3

coefficients — массив коэффициентов СГ.

Устанавливает указанные коэффициенты в текущий экземпляр СГ.

### # .toArray(array : Array, offset : Float) → Array

- array — (необ.) целевой массив.
- offset — (необ.) смещение массива.

Возвращает массив с коэффициентами или копирует их в предоставленный массив. Коэффициенты представляются в виде чисел.

### # .zero() → SphericalHarmonics3

Устанавливает все коэффициенты СГ в `0`.

## Статические методы

### # .getBasisAt(normal : Vector3, shBasis : Array) → void

- normal — вектор нормали (предполагается единичной длины).
- shBasis — полученный базис СГ.

Вычисляет базис СГ для заданного вектора нормали.

## Исходный файл

О том как получить исходный код этого модуля читайте тут.