UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

60 lines (53 loc) 1.86 kB
import {DEMO_ASSETS_ROOT_URL} from '../../../src/core/Assets'; import {ImageEXRCopNode} from '../../../src/engine/nodes/cop/ImageEXR'; import {BasePreset, NodePresetsCollection, PresetRegister, PresetsCollectionFactory} from '../BasePreset'; const list = [ 'brown_photostudio_02_1k', 'brown_photostudio_03_1k', 'brown_photostudio_05_1k', 'brown_photostudio_06_1k', 'brown_photostudio_07_1k', 'christmas_photo_studio_01_1k', 'christmas_photo_studio_03_1k', 'neon_photostudio_1k', 'photo_studio_loft_hall_1k', 'preller_drive_1k', 'provence_studio_1k', 'satara_night_1k', 'studio_small_03_1k', 'studio_small_07_1k', 'studio_small_08_1k', 'studio_small_09_1k', ]; export function imageEXRPresetUrls() { return list.map((fileName) => ({ fileName, url: `${DEMO_ASSETS_ROOT_URL}/textures/resources/polyhaven.com/envmaps/${fileName}.exr`, thumbnail: `${DEMO_ASSETS_ROOT_URL}/textures/resources/polyhaven.com/envmaps/thumbnails/${fileName}.jpg`, })); } const imageEXRCopNodePresetsCollectionFactory: PresetsCollectionFactory<ImageEXRCopNode> = (node: ImageEXRCopNode) => { const collection = new NodePresetsCollection(); function polyhavenEnvMaps() { const dict: Record<string, BasePreset> = {}; const urls = imageEXRPresetUrls(); for (let fileData of urls) { const preset = new BasePreset() .addEntry(node.p.url, fileData.url) .addEntry(node.p.tanisotropy, 1) .addEntry(node.p.useRendererMaxAnisotropy, 1) .addEntry(node.p.tminFilter, 1) .addEntry(node.p.tmagFilter, 1); dict[`polyhaven/${fileData.fileName}`] = preset; } return dict; } collection.setPresets({ ...polyhavenEnvMaps(), }); return collection; }; export const imageEXRCopPresetRegister: PresetRegister<typeof ImageEXRCopNode, ImageEXRCopNode> = { nodeClass: ImageEXRCopNode, setupFunc: imageEXRCopNodePresetsCollectionFactory, };