Search code examples
c++3dsmax

3ds Max get the type of the camera that is currently being used to render


I can't seem to figure out how to find the current camera type that is being rendered i.e. physical vs free vs targeted.

I have tried looking around in what GetCOREInterface returns as well as the 3ds max SDK documentation but nothing completely matches what I want.

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

seems promising, but the camera in the active view may not be what's currently being rendered.


Solution

  • Answering the question myself. Found out there is a method to get the current view that is being rendered. From there it is trivial to get the camera.

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

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

    From there you can get the cameras name or class_id.

    Note this method only works on 3ds max 2016+. For pre 3ds max 2016 I recommend the method in my question which will work for most cases.