Bitbybit Docs
    Preparing search index...

    Class BabylonScene

    Сцена BabylonJS в целом: активная камера и ее ограничения, источники света с тенями, скайбокс и освещение окружения, туман, физика, события указателя, фон холста и очистка всего нарисованного. Сцена содержит каждый меш, источник света и камеру; большинство скриптов обращаются к ней, чтобы один раз настроить освещение и камеру, а затем рисовать в ней.

    Index

    Constructors

    background

    • Рисует любое значение CSS background-image позади сцены, градиент или изображение, делая цвет очистки сцены прозрачным и стилизуя холст.

      Parameters

      Returns { backgroundImage: string }

      Примененный стиль

      bitbybit.babylon.scene.canvasCSSBackgroundImage({ cssBackgroundImage: "linear-gradient(to top, #1a1c1f 0%, #93aacd 100%)" });
      
    • Рисует прямой градиент между двумя цветами позади сцены, в заданном направлении, с остановками как процентами вдоль него.

      Parameters

      Returns { backgroundImage: string }

      Примененный стиль

      bitbybit.babylon.scene.twoColorLinearGradientBackground({ colorFrom: "#1a1c1f", colorTo: "#93aacd", direction: Bit.Inputs.Base.gradientDirectionEnum.toBottom, stopFrom: 0, stopTo: 100 });
      
    • Рисует круглый градиент между двумя цветами позади сцены, расходящийся из position в заданной shape, с остановками как процентами от центра.

      Parameters

      Returns { backgroundImage: string }

      Примененный стиль

      bitbybit.babylon.scene.twoColorRadialGradientBackground({ colorFrom: "#1a1c1f", colorTo: "#93aacd", position: Bit.Inputs.Base.gradientPositionEnum.center, stopFrom: 0, stopTo: 100, shape: Bit.Inputs.Base.gradientShapeEnum.circle });
      
    • Рисует прямой градиент через несколько цветов позади сцены, каждый на своем проценте остановки; colors и stops должны быть одной длины, иначе вместо этого возвращается объект ошибки.

      Parameters

      Returns { backgroundImage: string } | { error: string }

      Примененный стиль или сообщение об ошибке, если списки различаются по длине

      bitbybit.babylon.scene.multiColorLinearGradientBackground({ colors: ["#1a1c1f", "#4a5a7a", "#93aacd"], stops: [0, 50, 100], direction: Bit.Inputs.Base.gradientDirectionEnum.toTop });
      
    • Рисует круглый градиент через несколько цветов позади сцены, каждый на своем проценте остановки; colors и stops должны быть одной длины, иначе вместо этого возвращается объект ошибки.

      Parameters

      Returns { backgroundImage: string } | { error: string }

      Примененный стиль или сообщение об ошибке, если списки различаются по длине

      bitbybit.babylon.scene.multiColorRadialGradientBackground({ colors: ["#1a1c1f", "#93aacd"], stops: [0, 100], position: Bit.Inputs.Base.gradientPositionEnum.center, shape: Bit.Inputs.Base.gradientShapeEnum.circle });
      
    • Показывает изображение позади сцены с параметрами фона CSS для того, как оно повторяется, масштабируется, располагается и прокручивается; цвет очистки сцены становится прозрачным, чтобы изображение просвечивало.

      Parameters

      • inputs: SceneCanvasBackgroundImageDto

        URL изображения и параметры повторения, размера, позиции, привязки, начала координат и обрезки

      Returns {
          backgroundImage: string;
          backgroundRepeat: string;
          backgroundSize: string;
          backgroundPosition: string;
          backgroundAttachment: string;
          backgroundOrigin: string;
          backgroundClip: string;
      }

      Примененный стиль

      bitbybit.babylon.scene.canvasBackgroundImage({ imageUrl: "https://example.com/backdrop.jpg", repeat: Bit.Inputs.Base.backgroundRepeatEnum.noRepeat, size: Bit.Inputs.Base.backgroundSizeEnum.cover, position: Bit.Inputs.Base.gradientPositionEnum.center, attachment: Bit.Inputs.Base.backgroundAttachmentEnum.scroll, origin: Bit.Inputs.Base.backgroundOriginClipEnum.paddingBox, clip: Bit.Inputs.Base.backgroundOriginClipEnum.borderBox });
      
    • Заливает фон сцены одним простым цветом и убирает любое фоновое изображение или градиент холста, заданные ранее.

      Parameters

      Returns void

      bitbybit.babylon.scene.backgroundColour({ colour: "#1a1c1f" });
      

    camera

    • Делает камеру той, через которую рендерится сцена, отсоединяя управление камеры, которая была активна до этого.

      Parameters

      • inputs: ActiveCameraDto

        Камера, которую нужно активировать

      Returns void

      const camera = bitbybit.babylon.camera.arcRotate.create({ radius: 20, target: [0, 0, 0], alpha: 45, beta: 70, lowerBetaLimit: 1, upperBetaLimit: 179, angularSensibilityX: 1000, angularSensibilityY: 1000, panningSensibility: 1000, wheelPrecision: 3, maxZ: 1000 });
      bitbybit.babylon.scene.activateCamera({ camera });
    • Дает камеру, через которую сцена сейчас рендерится.

      Returns Camera

      Активная камера

    • Переставляет стандартную орбитальную камеру, ту, что называется Camera, и задает ее пределы и чувствительности.

      Камера размещается в position, смотря на lookAt; пределы радиуса, alpha и beta ограничивают, как далеко она может приближать и обращаться, углы в градусах, а чувствительности задают, как быстро она реагирует, меньше - быстрее.

      Parameters

      • inputs: CameraConfigurationDto

        Позиция, цель и необязательные ограничения и чувствительности

      Returns void

      bitbybit.babylon.scene.adjustActiveArcRotateCamera({ position: [20, 20, 20], lookAt: [0, 0, 0], lowerRadiusLimit: 5, upperRadiusLimit: 100, lowerBetaLimit: 1, upperBetaLimit: 179, angularSensibilityX: 1000, angularSensibilityY: 1000, panningSensibility: 1000, wheelPrecision: 3, maxZ: 1000 });
      

    environment

    • Удаляет из сцены все нарисованное: меши, материалы, текстуры, источники света кроме стандартного полусферического, узлы преобразования, генераторы теней, туман и текстуру окружения, и восстанавливает стандартную камеру, если была активна другая.

      Returns void

      bitbybit.babylon.scene.clearAllDrawn();
      
    • Окружает сцену одним из встроенных скайбоксов и использует его как освещение окружения, которое подхватывают отражающие материалы.

      blur смягчает видимое небо, environmentIntensity масштабирует, насколько оно освещает сцену, а hideSkybox сохраняет освещение, скрывая само небо.

      Parameters

      • inputs: SkyboxDto

        Встроенный скайбокс, его размер, размытие, интенсивность окружения и видимость

      Returns void

      bitbybit.babylon.scene.enableSkybox({ skybox: Bit.Inputs.Base.skyboxEnum.clearSky, size: 1000, blur: 0.1, environmentIntensity: 0.7, hideSkybox: false });
      
    • Окружает сцену скайбоксом, загруженным из вашей собственной текстуры, и использует его как освещение окружения.

      textureUrl может указывать на файл .hdr, файл .env или корень шести изображений граней куба; без него ничего не происходит. hideSkybox сохраняет освещение, скрывая само небо.

      Parameters

      • inputs: SkyboxCustomTextureDto

        URL и размер текстуры, размер скайбокса, размытие, интенсивность окружения и видимость

      Returns void

      bitbybit.babylon.scene.enableSkyboxCustomTexture({ textureUrl: "https://example.com/env/studio.env", textureSize: 512, size: 1000, blur: 0.1, environmentIntensity: 0.7, hideSkybox: true });
      
    • Окружает сцену скайбоксом, построенным из кубической текстуры, которую вы загрузили сами, и использует его как освещение окружения.

      texture может быть получена из файла .hdr или .env. hideSkybox сохраняет освещение, скрывая небо; enableGroundProjection сплющивает нижнюю часть неба в землю, на которой стоит модель.

      Parameters

      • inputs: SkyboxFromTextureDto

        Кубическая текстура, размер скайбокса, размытие, интенсивность окружения, видимость и проекция земли

      Returns void

      const texture = new BABYLON.CubeTexture("https://example.com/env/studio", bitbybit.babylon.scene.getScene());
      bitbybit.babylon.scene.enableSkyboxFromTexture({ texture, size: 1000, blur: 0.1, environmentIntensity: 0.7, hideSkybox: false, enableGroundProjection: true, projectedGroundRadius: 20, projectedGroundHeight: 3 });
    • Растворяет далекую геометрию в цвете, как это делает дымка.

      linear растворяет от start до end в единицах сцены; exponential и exponentialSquared растворяют по density, игнорируя расстояния; none выключает туман.

      Parameters

      • inputs: FogDto

        Режим тумана, цвет, плотность и начальная и конечная дистанции

      Returns void

      bitbybit.babylon.scene.fog({ mode: Bit.Inputs.Base.fogModeEnum.linear, color: "#ffffff", density: 0.1, start: 50, end: 300 });
      

    lights

    • Добавляет в сцену точечный источник света, как drawPointLight, не возвращая его; для скриптов, которым нужно только, чтобы свет существовал.

      Parameters

      • inputs: PointLightDto

        Позиция, цвета, интенсивность, радиус лампы и настройки теней источника света

      Returns void

      bitbybit.babylon.scene.drawPointLightNoReturn({ position: [10, 20, 10], intensity: 2000, diffuse: "#ffffff", specular: "#ffffff", radius: 0.5, enableShadows: true, shadowGeneratorMapSize: 1024, shadowDarkness: 0, transparencyShadow: false, shadowUsePercentageCloserFiltering: true, shadowContactHardeningLightSizeUVRatio: 0.2, shadowBias: 0.0001, shadowNormalBias: 0.002, shadowMaxZ: 1000, shadowMinZ: 0.1, shadowRefreshRate: 1 });
      
    • Перечисляет генераторы теней источников света, созданных через эту библиотеку, по одному на источник с включенными тенями; нарисованные меши регистрируются в них как отбрасывающие тени.

      Returns ShadowGenerator[]

      Генераторы теней или пустой список

    • Добавляет свет, который светит во все стороны из точки, как лампочка, с необязательной маленькой светящейся сферой в его позиции.

      При enableShadows равном true создается генератор теней, и каждый меш, уже находящийся в сцене, отбрасывает и принимает тени; intensity - световая мощность, так что значения в тысячах нормальны.

      Parameters

      • inputs: PointLightDto

        Позиция, цвета, интенсивность, радиус лампы и настройки теней источника света

      Returns PointLight

      Точечный источник света

      const light = bitbybit.babylon.scene.drawPointLight({ position: [10, 20, 10], intensity: 2000, diffuse: "#ffffff", specular: "#ffffff", radius: 0.5, enableShadows: true, shadowGeneratorMapSize: 1024, shadowDarkness: 0, transparencyShadow: false, shadowUsePercentageCloserFiltering: true, shadowContactHardeningLightSizeUVRatio: 0.2, shadowBias: 0.0001, shadowNormalBias: 0.002, shadowMaxZ: 1000, shadowMinZ: 0.1, shadowRefreshRate: 1 });
      
    • Добавляет в сцену направленный источник света, как drawDirectionalLight, не возвращая его; для скриптов, которым нужно только, чтобы свет существовал.

      Parameters

      • inputs: DirectionalLightDto

        Направление, цвета, интенсивность и настройки теней источника света

      Returns void

      bitbybit.babylon.scene.drawDirectionalLightNoReturn({ direction: [-100, -100, -100], intensity: 0.5, diffuse: "#ffffff", specular: "#ffffff", enableShadows: true, shadowGeneratorMapSize: 1024, shadowDarkness: 0, transparencyShadow: false, shadowUsePercentageCloserFiltering: true, shadowContactHardeningLightSizeUVRatio: 0.2, shadowBias: 0.0001, shadowNormalBias: 0.002, shadowMaxZ: 1000, shadowMinZ: 0, shadowRefreshRate: 1 });
      
    • Добавляет свет, который светит одинаково везде, как солнце, вдоль direction.

      При enableShadows равном true создается генератор теней, и каждый меш, уже находящийся в сцене, отбрасывает и принимает тени; intensity - простой коэффициент, где 1 - полная сила.

      Parameters

      • inputs: DirectionalLightDto

        Направление, цвета, интенсивность и настройки теней источника света

      Returns DirectionalLight

      Направленный источник света

      const sun = bitbybit.babylon.scene.drawDirectionalLight({ direction: [-100, -100, -100], intensity: 0.5, diffuse: "#ffffff", specular: "#ffffff", enableShadows: true, shadowGeneratorMapSize: 1024, shadowDarkness: 0, transparencyShadow: false, shadowUsePercentageCloserFiltering: true, shadowContactHardeningLightSizeUVRatio: 0.2, shadowBias: 0.0001, shadowNormalBias: 0.002, shadowMaxZ: 1000, shadowMinZ: 0, shadowRefreshRate: 1 });
      

    system

    • Переключает сцену между левосторонней системой координат, которую BabylonJS использует по умолчанию, и правосторонней, соглашением большинства CAD-инструментов и glTF; активная камера обновляется соответственно.

      Parameters

      • inputs: UseRightHandedSystemDto

        Использовать ли правостороннюю систему координат

      Returns void

      bitbybit.babylon.scene.useRightHandedSystem({ use: true });