БЛЯДЬ! |
[Mar. 2nd, 2019|02:26 pm] |
а я таки был прав: проблема во фрустуме. фрустум у меня создаётся из fovx и fovy. правильно создаётся. за одним маленьким исключением: система координат дума повёрнута набок. model view matrix это учитывает. а frustum (создающийся по формулам projection matrix) — нет. фрустум потом доворачивается куда надо, конечно, но! используя векторы в системе координат дума. а создаётся в системе координат OpenGL.
ещё не поняли? вот и я тупил. левая и правая плоскости создаются с использованием fovy, а верхняя и нижняя — fovx. поскольку эти fov неравны… конечно, фрустум получается неправильный. что было не сильно заметно, пока я не впилил фрустум-клип непосредственно в beam clipper. то есть, было заметно, конечно: иногда пропадали субсекторы в room-over-room (bounding box улетал за фрустум), но я не понимал, почему, да и оно не сильно мешало. |
|
|