PMREMGenerator

Этот класс генерирует предварительно отфильтрованную, Mipmapped Radiance Environment Map (PMREM) из текстуры окружения cubeMap. Это позволяет быстро получить доступ к различным уровням размытия в зависимости от шероховатости материала. Она упакована в специальный формат CubeUV, который позволяет нам выполнять пользовательскую интерполяцию, чтобы мы могли поддерживать нелинейные форматы, такие как RGBE. В отличие от традиционной цепочки мипмапов, она опускается только до уровня LOD_MIN (выше), а затем создает дополнительные, еще более отфильтрованные "мипы" с тем же разрешением LOD_MIN, связанные с более высокими уровнями шероховатости. Таким образом, мы сохраняем разрешение для плавной интерполяции диффузного освещения, ограничивая при этом вычисления семплов.

Конструктор

PMREMGenerator(renderer : WebGLRenderer)

Этот конструктор создает новый PMREMGenerator.

Методы

.fromScene(scene : Scene, sigma : Number, near : Number, far : Number) → WebGLRenderTarget

scene — Заданная сцена.
sigma — (опционально) Задает радиус размытия в радианах, который будет применен к сцене перед генерацией PMREM. По умолчанию 0.
near — (опционально) Значение ближней плоскости. По умолчанию 0,1.
far — (опционально) Значение дальней плоскости. По умолчанию 100.

Генерирует PMREM из предоставленной сцены, что может быть быстрее, чем использование изображения, если пропускная способность сети низкая. Дополнительные ближняя и дальняя плоскости обеспечивают рендеринг сцены целиком (камера cubeCamera помещается в начало координат).

.fromEquirectangular(equirectangular : Texture) → WebGLRenderTarget

equirectangular — Равноугольная текстура.

Генерирует PMREM из равноугольной текстуры, которая может быть LDR (RGBFormat) или HDR (RGBEFormat). Идеальный размер входного изображения - 1k (1024 x 512), так как он лучше всего соответствует кубической карте 256 x 256 на выходе.

.fromCubemap(cubemap : CubeTexture) → WebGLRenderTarget

cubemap — Текстура cubemap.

Генерирует PMREM из текстуры cubemap, которая может быть LDR (RGBFormat) или HDR (RGBEFormat). Идеальный размер входного куба - 256 x 256, так как он лучше всего соответствует кубу 256 x 256 на выходе.

.compileCubemapShader() → void

Предварительно компилирует шейдер cubemap. Вы можете ускорить запуск, вызывая этот метод во время сетевой выборки текстуры для увеличения синхронности.

.compileEquirectangularShader() → void

Предварительно компилирует равноугольный шейдер. Вы можете ускорить запуск, вызывая этот метод во время сетевой выборки текстуры для увеличения синхронности.

.dispose() → void

Удаляет внутреннюю память PMREMGenerator. Обратите внимание, что PMREMGenerator является статическим классом, поэтому вам не должно понадобиться более одного PMREMGenerator. В противном случае вызов dispose() для одного из них приведет к тому, что все остальные также станут непригодными для использования.

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

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