/
RaskolnickOFF
/
3D
Обзор
Документация
Войти
/
RaskolnickOFF
/
3D
Код
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
js/source/StageSetup.js
59 строк
2 KB
RaskolnickOFF
fixes
19 июн 2026, 19:05
19 июн 2026, 19:05
84fe909
Код
Авторство
О чём код?
// js/source/StageSetup.js — создание three.js объектов import * as THREE from 'three'; import LIB from 'LIB'; import { createCamera } from './scene/Camera.js'; import { createRenderer } from './scene/Renderer.js'; import { createGround } from './scene/Ground.js'; import { createLights } from './scene/Lights.js'; import { createGridOverlay } from './scene/GridOverlay.js'; import { createSky } from './scene/Sky.js'; import { Rain } from './scene/Rain.js'; import { createWater } from './scene/Water.js'; export function StageSetup(SETTINGS, worldMapData, heightmapData, tileHeightmap) { const w = window.innerWidth; const h = window.innerHeight; const SCENE = new THREE.Scene(); // SCENE.fog = new THREE.Fog('#000000', 20, 150); const CAMERA = createCamera(w, h, SETTINGS.camera); const RENDERER = createRenderer(w, h, SETTINGS.renderer); document.body.appendChild(RENDERER.domElement); const { SUN, AMBIENT } = createLights(SETTINGS.lights); const sunDirection = new THREE.Vector3(); SUN.getWorldDirection(sunDirection); SCENE.add(SUN); SCENE.add(AMBIENT); const sky = createSky(SETTINGS); SCENE.add(sky); const waterMesh = createWater(SETTINGS, tileHeightmap); SCENE.add(waterMesh); const groundApi = createGround( SETTINGS, worldMapData, heightmapData, tileHeightmap); const rain = new Rain(SETTINGS, heightmapData, SETTINGS.terrain.waterLevel, SCENE, CAMERA); SCENE.add(rain.rainMesh); SCENE.add(rain.rippleMesh); const gridOverlay = createGridOverlay( SETTINGS, SETTINGS.terrain.size, heightmapData); window.addEventListener('resize', () => { CAMERA.aspect = window.innerWidth / window.innerHeight; CAMERA.updateProjectionMatrix(); RENDERER.setSize(window.innerWidth, window.innerHeight); }); try { LIB.log.add('Добавление объектов на сцену', false) } catch (e) { console.table(e); } return { SCENE, CAMERA, RENDERER, groundApi, gridOverlay, rain }; }