fix(render): preserve object-local point lights on models
Docs Deploy / Build and Deploy MkDocs (push) Successful in 38s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 38s
This commit is contained in:
14 files changed
+136
-30
No files matched your search
@@ -126,6 +126,23 @@ RVA `0xF6E0`, преобразует направление текущей ма
|
||||
число таких Control-команд как `control_op1_jitter_unsupported` и использует
|
||||
их авторские значения. У синего источника в проверенном захвате добавки нулевые.
|
||||
|
||||
Флаг источника `0x80000000` отделяет локальный свет объекта от общего света
|
||||
мира. В эталонной `Terrain.dll` (SHA-256
|
||||
`af87d1b2e728a0be73c52be3b44cc196ab46da7799f25a15d40f8c9b0b425ead`)
|
||||
`CLightManager` RVA `0x4C1D0` ведёт отдельные числа всех активных и общих
|
||||
источников; второй счётчик исключает этот бит. Живой вход `CShade` RVA
|
||||
`0x2E4A0` подтверждает различие: завод получает жёлтый источник с flags
|
||||
`0xA0000000`, а рельеф — только общие источники. Для выбранной вершины крыши
|
||||
native diffuse `1,205386/1,095748/1,893271` и specular после переноса переполнения
|
||||
`0,160597/0,147096/0,358346` воспроизводятся формулой shader с теми же входами
|
||||
с отклонением менее `0,0002`. Менять формулу блика для этого дефекта не нужно.
|
||||
|
||||
В Vulkan каждый свет хранит `owner_scope` в последнем DWORD 48-байтовой
|
||||
SSBO-записи; область диапазона передаётся через `firstInstance`. Нулевая
|
||||
область света доступна всем диапазонам, ненулевая — только совпадающему
|
||||
владельцу. Terrain и геометрия без владельца имеют область ноль. Один общий
|
||||
буфер сохраняется; отдельные наборы света для каждого строения не создаются.
|
||||
|
||||
## Элемент отрисовки
|
||||
|
||||
Подготовленный элемент отрисовки содержит:
|
||||
|
||||
Reference in new issue
Block a user