BSP (GoldSrc)

From Valve Developer Community
< Ru
Revision as of 08:42, 30 August 2023 by NOUG4AT (talk | contribs) (Created page with "{{Language subpage}} {{draft}} Данный документ посвящен структуре BSP файлов карт версии 30 для игрового движка...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)Русский (ru)Translate (Translate)
Icon-under construction-blue.png
This is a draft page. It is a work in progress open to editing by anyone.
Remember to check for any notes left by the tagger at this article's talk page.

Данный документ посвящен структуре BSP файлов карт версии 30 для игрового движка Gold Source (Half-life 1). Начнем с определения структуры трехмерного вектора, который является незаменимой частью 3д геометрии: typedef struct _VECTOR3D { Float x, y, z; } VECTOR3D;

Файл состоит из заголовка фиксированного размера и чанков данных, позиция и размер каждого, а также его наличие, определяемое заголовком файла. Карта ограничена 15 чанками в файле, соответственно всего 15 типов чанков, и чанк данного типа может войти лишь единожды в файл. Описание заголовка ниже:

  1. define

HEADER_LUMPS 15

  1. define

LUMP_ENTITIES 0

  1. define

LUMP_PLANES 1

  1. define

LUMP_TEXTURES 2

  1. define

LUMP_VERTICES 3

  1. define

LUMP_VISIBILITY 4

  1. define

LUMP_NODES 5

  1. define

LUMP_TEXINFO 6

  1. define

LUMP_FACES 7

  1. define

LUMP_LIGHTING 8

  1. define

LUMP_CLIPNODES 9

  1. define

LUMP_LEAVES 10

  1. define

LUMP_MARKSURFACES 11

  1. define

LUMP_EDGES 12

  1. define

LUMP_SURFEDGES 13

  1. define

LUMP_MODELS 14 typedef { struct _BSPHEADER

int32_t nVersion; // Версия карты = 0x0000001E = 30 BSPLUMP lump[HEADER_LUMPS]; // блок описания чанков } BSPHEADER;

Константа HEADER_LUMPS указывает на максимальное число чанков = 15. Далее идет набор 15 констант: индексов в массиве lump заголовка, который описывает чанк данного типа. Таблица ниже подробнее описывает каждый чанк по его индексу в массиве lump заголовка: