# Конфигурация системы коллайдеров

## Обзор изменений

Система коллайдеров была обновлена для обеспечения полного покрытия объектов коллизиями. Теперь коллайдеры создаются с увеличенными размерами, чтобы покрывать весь объект, а не только его часть.

## Основные изменения

### 1. Конфигурация коллайдеров
```javascript
const COLLIDER_CONFIG = {
    sizeMultiplier: 2.0,        // Коэффициент увеличения размеров (100% больше)
    debugMode: false,           // Режим отладки для визуализации
    minSize: 0.5,              // Минимальный размер коллайдера
    maxSize: 50.0,             // Максимальный размер коллайдера
    adaptiveScaling: true      // Адаптивное масштабирование
};
```

### 2. Обновленная функция создания коллайдеров
- `createVisualColliderFromModel()` теперь использует увеличенные размеры для JSON данных
- Приоритет отдается реальным размерам мешей из 3D модели
- Fallback к JSON данным с коэффициентом увеличения

### 3. Адаптивное масштабирование
Система автоматически определяет оптимальный коэффициент масштабирования на основе размеров объекта:
- **Маленькие объекты** (< 1.0): коэффициент 3.0x или больше
- **Средние объекты** (1.0-5.0): стандартный коэффициент 2.0x
- **Большие объекты** (> 5.0): уменьшенный коэффициент 1.6x

### 4. Динамическая настройка
Добавлены расширенные функции для настройки коллайдеров:

```javascript
// Изменить коэффициент размера коллайдеров
window.updateColliderSize(3.0); // Увеличить на 200%

// Переключить адаптивное масштабирование
window.toggleAdaptiveScaling();

// Установить ограничения размеров
window.setColliderLimits(1.0, 20.0); // мин: 1.0, макс: 20.0

// Переключить режим отладки
window.toggleColliderDebug();

// Получить текущую конфигурацию
console.log(window.colliderConfig);

// Протестировать коллизии
window.testCollisions();

// Быстрый тест всех функций
window.quickTest();

// Управление цветом и прозрачностью коллайдеров
window.setColliderColor(0, 1, 0); // Зеленый цвет (RGB 0-1)
window.setColliderOpacity(0.5); // Полупрозрачность (0-1)
window.randomizeColliderColors(); // Случайные цвета

// Управление цветом и прозрачностью объектов интерьера
window.setInteriorObjectColor(1, 0, 0); // Красный цвет объектов (RGB 0-1)
window.setInteriorObjectOpacity(0.7); // Полупрозрачность объектов (0-1)
```

## Использование

### Базовое использование
Коллайдеры автоматически загружаются из `colliders_city_1.json` с увеличенными размерами.

### Настройка размеров
Если коллайдеры слишком большие или маленькие, можно изменить коэффициент:

```javascript
// В консоли браузера
window.updateColliderSize(1.0);  // Оригинальные размеры
window.updateColliderSize(1.2);  // +20% (по умолчанию)
window.updateColliderSize(1.5);  // +50%
```

### Отладка
Для визуализации коллайдеров включите режим отладки:
```javascript
window.colliderConfig.debugMode = true;
```

## Технические детали

### Алгоритм создания коллайдеров
1. Поиск соответствующего меша в 3D модели по позиции
2. Если меш найден - использование его реальных размеров
3. Если меш не найден - использование JSON данных с коэффициентом увеличения
4. Создание Box3 для проверки коллизий
5. Создание визуального представления

### Проверка коллизий
- Используется AABB (Axis-Aligned Bounding Box) для эффективной проверки
- Игрок представлен как цилиндр с радиусом 0.35 и высотой 1.6
- Проверка пересечения Box3 объектов

## Файлы конфигурации

### colliders_city_1.json
```json
{
  "colliders": [
    {
      "type": "box",
      "position": { "x": 0, "y": 0, "z": 0 },
      "rotation": { "x": 0, "y": 0, "z": 0 },
      "scale": { "x": 2, "y": 2, "z": 2 },
      "color": { "r": 1.0, "g": 0.0, "b": 0.0 },
      "opacity": 0.3
    }
  ]
}
```

**Параметры:**
- `position`, `rotation`, `scale` - стандартные параметры трансформации
- `color` - RGB цвет в диапазоне 0.0-1.0 (опционально)
- `opacity` - прозрачность в диапазоне 0.0-1.0 (опционально)

Размеры в JSON будут автоматически увеличены на коэффициент `sizeMultiplier`.

## Рекомендации

1. **Начальная настройка**: Используйте коэффициент 1.2 (20% увеличение)
2. **Тонкая настройка**: Тестируйте разные значения от 1.0 до 1.5
3. **Отладка**: Включите `debugMode` для визуальной проверки коллайдеров
4. **Производительность**: Большие коэффициенты могут снизить производительность

## Устранение неполадок

### Коллайдеры слишком маленькие
```javascript
window.updateColliderSize(1.3); // Увеличить коэффициент
```

### Коллайдеры слишком большие
```javascript
window.updateColliderSize(1.1); // Уменьшить коэффициент
```

### Проблемы с производительностью
```javascript
window.updateColliderSize(1.0); // Вернуться к оригинальным размерам
```

