Почему усеченная пирамида обзора отделена от камеры?

Я только начал программировать графику в Ogre и никак не могу понять, зачем существует отдельный класс усеченной пирамиды обзора и отдельный класс камеры.
В реальном мире у каждой камеры есть своя усеченная пирамида обзора. Разве свойства усеченного обзора не должны присутствовать в классе камеры?

Есть ли преимущество в том, что они разделены? Я просто не вижу смысла.


person Nav    schedule 10.02.2012    source источник


Ответы (2)


Это называется разделением ответственности. В основном класс должен делать одну и только одну вещь.

person Rob Agar    schedule 10.02.2012
comment
Я согласен, но почему-то мне кажется, что ответ не так прост. Усеченный обзор кажется неотъемлемой частью камеры. По крайней мере, это должно было унаследоваться от камеры. Но это совершенно отдельно. Странный. - person Nav; 10.02.2012
comment
да, камере нужен усеченный конус, но это имеет отношение, а не является. Наследование действительно имеет смысл только для отношений. - person Rob Agar; 10.02.2012

Разве Камера не наследует Frustum, а не наоборот? Усеченная пирамида — это просто пирамида, расположенная в космосе, и ее можно использовать для многих вещей, таких как прожекторы, вычисление теней, видимость и т. д.

Камера представляет собой усеченный конус с дополнительной обработкой событий камеры, методами рыскания/тангажа/крена, режимом рендеринга/настройками уровня детализации, проверками видимости и так далее...

person kolenda    schedule 18.07.2012
comment
О... Я не знал, что класс frustum можно использовать для всех этих функций... - person Nav; 19.07.2012