fix(capture): replay the projection used by world geometry
Docs Deploy / Build and Deploy MkDocs (push) Successful in 39s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 39s
This commit is contained in:
7 files changed
+409
-170
No files matched your search
@@ -225,6 +225,17 @@ RVA `0x4EBE0` использует соглашение о вызовах `__std
|
||||
`right - left` на `bottom - top`. Размер окна превью закреплён: если при
|
||||
запуске или после ненулевого изменения окна физический размер не совпадает с
|
||||
заданным, приложение завершает работу, а не растягивает изображение.
|
||||
|
||||
Проекция во время рисования может отличаться от восстановленного состояния
|
||||
камеры после обхода мира. В GOG у `CStridedPrimitive::RenderVB` (Terrain RVA
|
||||
`0x1D110`) renderer содержит `near = 0.5`, а на границе World3D RVA `0x13CE4`
|
||||
уже `near = 5`. Поэтому захват отдельно сохраняет `geometry_projection` при
|
||||
первом вызове геометрии с той же мировой матрицей камеры. Поток, поколение,
|
||||
renderer, viewport, far и FOV сверяются с последующей границей; только
|
||||
подтверждённая запись используется при воспроизведении. Иначе пол в трёх
|
||||
единицах от камеры может исчезнуть из-за чужой ближней плоскости. Старые JSON
|
||||
без этой записи сохраняют прежнее поведение с явным счётчиком
|
||||
`captured_projection_unverified`; их нужно переснять для проверки близких поверхностей.
|
||||
Сравнивайте результат с фрагментом исходного PNG по прямоугольнику
|
||||
`[left, top, right, bottom]`. В этом режиме `FreeFlightCamera` не создаётся,
|
||||
но при повторной отрисовке обновляются окружение и проецируемые тени для
|
||||
|
||||
Reference in new issue
Block a user