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

Я попытался оглядываться в то, что возвращается, а также докурится к документации SDK 3DS MAX, но ничего не совпадает с тем, что я хочу.

GetCOREInterface()->GetActiveViewExp().GetViewCamera() 

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

0
Krystian Wojcicki 4 Окт 2019 в 18:16

1 ответ

Лучший ответ

Отвечая на вопрос сам. Установлено, что есть способ получения текущего представления, который оказывается. Оттуда это тривиально, чтобы получить камеру.

https://help.autodesk.com/view/3DSMAX/2017/ENU/?guid=__cpp_ref_class_interface16_html

GetCOREInterface16()->GetCurrentRenderView()->GetViewCamera()

Оттуда вы можете получить имя камеры или Class_id.

Обратите внимание, что этот метод работает только в 3ds max 2016+. Для pre 3ds max 2016 я рекомендую метод, описанный в моем вопросе, который будет работать в большинстве случаев.

0
Krystian Wojcicki 5 Окт 2019 в 01:39