Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос ESP Preview 3D модель CS:GO - проблемы с рендерингом через D3D9

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
7 Июн 2025
Сообщения
15
Реакции
0
Здравствуйте!

Разрабатываю ESP Preview для CS:GO чита - виджет с 3D моделью игрока для предпросмотра настроек ESP. Реализую автономный рендеринг через Direct3D9 (без использования Source Engine API, чтобы работало в главном меню).

Что уже сделано:
VPK Parser - извлечение файлов моделей из pak01_dir.vpk
MDL/VVD/VTX парсеры - загрузка геометрии моделей
D3D9 рендерер - Fixed Pipeline с освещением
Плавное вращение модели
Переключение CT/T моделей

Текущие проблемы:

1. Неестественный рендеринг - модель выглядит вытянутой/странной - 2 скриншот*
Пожалуйста, авторизуйтесь для просмотра ссылки.

- Подозреваю проблему с winding order в VTX парсере
- Временно отключил culling (D3DCULL_NONE)

2. Отсутствие текстур - модель рендерится одним цветом
- Agent модели используют процедурные материалы вместо VTF
- Нужны ли обычные модели (ct_urban, leet и т.д.)?

3. Неполная геометрия - у некоторых моделей отсутствуют части

Технические детали:
- Язык: C++
- API: Direct3D9 Fixed Pipeline
- Вершины: ~10,000-15,000
- Треугольники: ~20,000-30,000
- Освещение: 2 directional lights
- Матрицы: стандартные World/View/Projection

Вопросы:
1. Как правильно применять winding order из VTX файлов?
2. Какие модели лучше использовать для ESP Preview (с текстурами)?
3. Может проблема в матрицах трансформации или освещении?

Код (упрощённо):

// Rendering loop
device->SetRenderTarget(0, render_surface);
device->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_ARGB(0, 0, 0, 0), 1.0f, 0);

D3DXMatrixRotationY(&matWorld, rotation_angle);
device->SetTransform(D3DTS_WORLD, &matWorld);

// View matrix
D3DXVECTOR3 eye(0, 50, -150);
D3DXVECTOR3 at(0, 40, 0);
D3DXMatrixLookAtLH(&matView, &eye, &at, &D3DXVECTOR3(0, 1, 0));

device->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, vertex_count, index_count / 3, indices, D3DFMT_INDEX32, vertices, sizeof(Vertex));

Буду благодарен за любую помощь - примеры кода, советы по настройке D3D9, или рекомендации по моделям!
 
Назад
Сверху Снизу