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

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

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

Часто задаваемые вопросы

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1428
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1008
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    745
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    869
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    782
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1149

Клиент заходит на страницу дивана, видит плоскую фотографию и уходит. А если бы он мог покрутить модель, заглянуть под углы, приблизить ткань — конверсия растёт. Мы внедряем 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+ интернет-магазинов. Гарантируем совместимость с вашей версией Битрикс и помощь на всех этапах.