@vci/quick-three
Version:
quick three
33 lines (31 loc) • 1.66 kB
JavaScript
import { CubeTextureLoader, LinearSRGBColorSpace, NoColorSpace, SRGBColorSpace } from "three";
import { resourceRootAliyun } from "@vci/vci/config/api";
async function createEnvCubeTexture(qt) {
const manager = qt.lm ? qt.lm.manager : null;
const textureEvn = await new CubeTextureLoader(manager).loadAsync([
`${resourceRootAliyun}/textures/cube-sky-night/px.jpg`, `${resourceRootAliyun}/textures/cube-sky-night/nx.jpg`,
`${resourceRootAliyun}/textures/cube-sky-night/py.jpg`, `${resourceRootAliyun}/textures/cube-sky-night/ny.jpg`,
`${resourceRootAliyun}/textures/cube-sky-night/pz.jpg`, `${resourceRootAliyun}/textures/cube-sky-night/nz.jpg`,
]);
qt.environmentMap = textureEvn;
const scene = qt.scene;
scene.background = textureEvn;
scene.environment = textureEvn;
qt.scene.backgroundBlurriness = 0;
if (qt.debug && qt.gui) {
qt.gui.guis.env && qt.gui.gui().removeFolder(qt.gui.guis.env);
qt.gui.guis.env = qt.gui.gui().addFolder("环境贴图").close();
qt.gui.guis.env.add({ visibleBg: true }, "visibleBg").name("显示环境").onChange(e => e ? qt.scene.background = qt.environmentMap : qt.scene.background = null);
qt.gui.guis.env.add(qt.scene, "backgroundBlurriness", 0, 1, 0.01).name("环境模糊度");
qt.gui.guis.env.add(textureEvn, "colorSpace", {
"NoColorSpace": NoColorSpace,
"SRGBColorSpace": SRGBColorSpace,
"LinearSRGBColorSpace": LinearSRGBColorSpace
}).name("colorSpace").onChange(e => {
textureEvn.colorSpace = e;
textureEvn.needsUpdate = true;
}).listen();
}
return textureEvn;
}
export { createEnvCubeTexture };