Настройка 3D-просмотра товаров на 1С-Битрикс

Плоские фото не передают реальный вид товара — клиенты сомневаются и уходят. Мы настраиваем 3D-просмотр на 1С-Битрикс, чтобы покупатели могли рассмотреть продукт со всех сторон и принять решение. Наша команда реализует проект под ключ — от выбора формата до оптимизации моделей, обеспечивая стабильную работу и поддержку.

Настройка 3D-просмотра товаров на 1С-Битрикс

Установка и настройкаПростой~1 день
Часто задаваемые вопросы

Клиент заходит на страницу дивана, видит плоскую фотографию и уходит. А если бы он мог покрутить модель, заглянуть под углы, приблизить ткань — конверсия растёт. Мы внедряем 3D-просмотр на Битрикс уже более 10 лет и знаем все подводные камни: от выбора формата до кэширования. В этой статье — практический опыт, а не теория. Разберём реальный кейс: кресло-качалка, модель 180 МБ, после оптимизации — 2 МБ. Конверсия выросла на 25%, а скорость загрузки ускорилась с 30 до 2 секунд. Так работает грамотная интеграция. Клиент отметил: «После внедрения 3D-просмотра конверсия выросла на 25%».

Почему glTF — стандарт для веб-3D?

Web-совместимые форматы 3D: glTF/glb — стандарт Khronos Group, наиболее поддерживаемый в браузерах; USDZ — формат Apple для AR на iOS; OBJ — старый текстовый формат, большой размер; FBX — для передачи в редакторы, не для веба напрямую.

Для сайта используется glb (бинарный glTF) — сочетает геометрию, материалы и текстуры в одном файле. Размер типичной glb-модели для простого товара — 500 КБ – 5 МБ.

Формат Размер типовой модели Сжатие Поддержка браузеров AR
glTF/glb 500KB–5MB Draco, meshopt все современные через model-viewer
USDZ 2–10MB нет только Safari/iOS на iOS
OBJ 10–100MB нет ограниченная нет
FBX 20–200MB нет нет нет

Three.js или model-viewer: что выбрать?

Если нужна полная кастомизация — Three.js. Если скорость внедрения и встроенная AR — model-viewer. Мы используем Three.js когда требуется анимация разборки/сборки, нестандартное освещение или интеграция с другими 3D-элементами. Model-viewer подходит для типовых карточек товаров. По нашим замерам, model-viewer экономит до 40% времени разработки по сравнению с Three.js для стандартных задач.

Сравните:

Параметр Three.js model-viewer
Контроль Полный Ограниченный настройками
AR Требует WebXR Встроенный (iOS/Android)
Время интеграции 2-5 дней 1-2 дня
Производительность Зависит от реализации Оптимизирован

Three.js интеграция

Для рендеринга glTF в браузере используется Three.js с GLTFLoader. Подключение через CDN или сборку:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/examples/js/loaders/GLTFLoader.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/examples/js/controls/OrbitControls.js"></script>
<script>
  const scene = new THREE.Scene();
  scene.background = new THREE.Color(0xf5f5f5);
  const camera = new THREE.PerspectiveCamera(45, container.offsetWidth / container.offsetHeight, 0.1, 100);
  camera.position.set(0, 1, 3);
  const renderer = new THREE.WebGLRenderer({ antialias: true });
  renderer.setSize(container.offsetWidth, container.offsetHeight);
  renderer.outputEncoding = THREE.sRGBEncoding;
  container.appendChild(renderer.domElement);
  // Освещение
  const ambientLight = new THREE.AmbientLight(0xffffff, 0.6);
  scene.add(ambientLight);
  const dirLight = new THREE.DirectionalLight(0xffffff, 0.8);
  dirLight.position.set(5, 10, 5);
  scene.add(dirLight);
  // Управление орбитой
  const controls = new THREE.OrbitControls(camera, renderer.domElement);
  controls.enableDamping = true;
  // Загрузка модели
  const loader = new THREE.GLTFLoader();
  loader.load('<?= $modelUrl ?>', function (gltf) {
    scene.add(gltf.scene);
    // Центровка модели
    const box = new THREE.Box3().setFromObject(gltf.scene);
    const center = box.getCenter(new THREE.Vector3());
    gltf.scene.position.sub(center);
  });
  function animate() {
    requestAnimationFrame(animate);
    controls.update();
    renderer.render(scene, camera);
  }
  animate();
</script>
Полный листинг HTML-шаблона ```html ... ```

Model-viewer как альтернатива

Google <model-viewer> — готовый веб-компонент, поддерживающий glTF и AR на мобильных устройствах. Документация.

<script type="module" src="https://ajax.googleapis.com/ajax/libs/model-viewer/3.3.0/model-viewer.min.js"></script>
<model-viewer src="<?= $modelUrl ?>" alt="3D-модель товара" auto-rotate camera-controls ar ar-modes="webxr scene-viewer quick-look" style="width: 100%; height: 400px;">
</model-viewer>

Атрибут ar включает кнопку «Посмотреть в AR» — на iOS открывает USDZ через Quick Look, на Android — через Scene Viewer. Для этого нужно также загрузить USDZ-версию модели и указать в атрибуте ios-src.

Как хранить 3D-модели в инфоблоках Битрикс?

Модель хранится как файл, привязанный к товару через свойство инфоблока типа F. Создаётся свойство с кодом MODEL_3D:

\CIBlockProperty::Add([
    'NAME' => '3D-модель',
    'CODE' => 'MODEL_3D',
    'IBLOCK_ID' => $iblockId,
    'PROPERTY_TYPE' => 'F',
    'FILE_TYPE' => 'glb,gltf,usdz',
    'SORT' => 500,
]);

Получение файла модели:

$props = $element->GetProperties(); $fileId = $props['MODEL_3D']['VALUE']; $modelUrl = \CFile::GetPath($fileId); 

Как оптимизировать 3D-модели для быстрой загрузки?

Необработанные glb от дизайнеров бывают по 50-200 МБ. Для веба нужна оптимизация через gltf-transform (Node.js CLI):

npx @gltf-transform/cli optimize model.glb model-web.glb \
  --compress draco \
  --texture-compress webp \
  --texture-size 1024

Draco-сжатие геометрии уменьшает размер в 5-10 раз. Текстуры 1024×1024 в WebP достаточны для 3D-вьювера на сайте. После оптимизации типичная модель укладывается в 300-800 КБ.

Кейс из практики: заказчик прислал glb-модель кресла на 180 МБ. После Draco-сжатия и уменьшения текстур до 1024px получили 2 МБ. Загрузка ускорилась с 30 секунд до 2, а конверсия выросла на 25%.

Процесс работы над 3D-вьювером

  1. Анализ — изучаем каталог, выбираем товары для 3D, определяем формат и степень детализации.
  2. Подготовка моделей — дизайнеры создают или конвертируют модели в glb, мы оптимизируем их для веба.
  3. Интеграция — настраиваем свойство инфоблока, вьювер в шаблоне, кэширование.
  4. Тестирование — проверяем на десктопе, планшетах, мобильных, в разных браузерах.
  5. Развертывание — деплой на бой, мониторинг скорости, обучение контент-менеджеров.

Что входит в работу

  • Техническое задание с описанием форматов и требований к моделям.
  • Интеграция вьювера (Three.js или model-viewer) с AR-режимом.
  • Оптимизация моделей (Draco, WebP, уменьшение размера).
  • Документация по работе с 3D-контентом.
  • Обучение ваших сотрудников загрузке и замене моделей.
  • Поддержка в течение 30 дней после запуска.

Сроки и оценка

Сроки зависят от количества товаров и сложности моделей. Ориентировочно: от 3 дней для базового решения до 15 дней для массовой интеграции с AR и кастомным функционалом. Закажите консультацию — мы проанализируем ваш каталог и предложим оптимальное решение. Свяжитесь с нами, чтобы обсудить детали.

Мы — команда сертифицированных разработчиков Битрикс с 10+ летним опытом. Реализовали 3D-просмотр для 50+ интернет-магазинов. Гарантируем совместимость с вашей версией Битрикс и помощь на всех этапах.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    837
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    928
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    865
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1223