Orthographic camera renders wrong

Orthographic camera renders wrong

RenderQ
Advocate Advocate
3,454 Views
13 Replies
Message 1 of 14

Orthographic camera renders wrong

RenderQ
Advocate
Advocate

Arnold render view is rendering correctly when set to viewport camera but when set to orthographic camera it renders zoomed in so much that it comes out as a solid color.
I tryed posting in arnold forum but did not get any response:
https://forums.autodesk.com/t5/arnold-for-3ds-max/orthographic-camera-bug/m-p/11990606#M9144

0 Likes
Accepted solutions (1)
3,455 Views
13 Replies
Replies (13)
Message 2 of 14

RenderQ
Advocate
Advocate

teamSP26J_0-1701074610078.png

 

0 Likes
Message 3 of 14

CiroCardoso3v
Advisor
Advisor

It looks more like a bug from the Arnold Render view. You are able to render that camera fine as long you leave the camera selection to/viewport_camera.

 

CiroCardoso3v_0-1701155002119.png

 

Lead Enviroment Artist @Axis Studios

Arnold Discord Server


Ciro Cardoso

EESignature

Message 4 of 14

RenderQ
Advocate
Advocate

yes, that is true, I can get away with rendering single frames just fine, but when rendering sequences or multiple passes using renderStacks it renders like when you choose the ortho camera from that dropdown
But not just ARV a think it is messed up with default VFB as well. So the problem probably is that arnold doesn't play nice with 3ds Max and its ortho camera. 

Please someone take a look at this. We did a show in the past where we had animated shots with isometric style and had to cheat the ortho with extra long lens persp camera which brought problems with clipping and so on.. 

0 Likes
Message 5 of 14

CiroCardoso3v
Advisor
Advisor

I will flag this to the devs.

Lead Enviroment Artist @Axis Studios

Arnold Discord Server


Ciro Cardoso

EESignature

Message 6 of 14

RenderQ
Advocate
Advocate

Year later and I still deal with this issue 😞 

0 Likes
Message 7 of 14

wernienst
Collaborator
Collaborator

Now this is interesting: On my first tests of rendering orthographic view I got same result as you: a solid gray.

Then I selected Create Physical Camera From View of the Create menu. No camera was created, but from now on Orthographic View is rendering correctly in any mode: Production, IPR, ActiveShade, CPU and GPU... (3ds Max 2025.2)

🤔

wernienst_0-1728494535619.png

 

0 Likes
Message 8 of 14

ads_delesdr
Autodesk
Autodesk

@RenderQ What release of 3ds Max are you using and which version of MAXtoA? I don't reproduce anything like this on my builds, but I'm mostly on MAXtoA 5.7.5 which posted about 3 weeks ago. It would be good to eliminate that it still occurs in the most recent release. If you still see it, we should get into the details of your use case to see how to repro it.

-Rick



Rick D

Senior QA Analyst - 3ds Max

0 Likes
Message 9 of 14

RenderQ
Advocate
Advocate

I am using MAXtoA 5.7.5.0 Arnold 7.3.4.1 and 3ds Max 2025 
When rendering interactively in ARV and viewport is set to ortho camera and ARV is set to viewport it renders fine.
When ARV is set to ortho camera it renders solid color.
Solid color is result of image being zoomed in due to something wrong with the camera FOV of ortho camera inside the ARV is my guess because the color coresponds to the color of the center of a normally rendered image.
So rendering using ARV with camera set to ortho camera does this.

 

I use renderStacks plugin to render different scene states and the first state renders fine but consequent one it seems like ARV gets set to render "ortho camera" instead of "viewport" option and it does the solid color thing. But this happens even withou renderStacks.

teamSP26J_0-1728552175717.pngteamSP26J_1-1728552187088.png

 

look at the camera option in ARV (/viewport_camera vs. /Camera001 (with ortho projection))


0 Likes
Message 10 of 14

wernienst
Collaborator
Collaborator
Accepted solution

Indeed, according to Arnold Help, MAXtoA is the only plugin that ist not able to render orthographic cameras (it can render orthographic views but not cameras). So either the Physical Camera should get an Orthographic View checkbox or a special Arnold Ortho Camera object should be provided.

0 Likes
Message 11 of 14

RenderQ
Advocate
Advocate

Thank you for explanation. I will try to work around this and switch to viewport "view" in ARV after setting the viewport to the ortho camera. 


try(

    actionMan.executeAction 0 "40247" -- Views: Select Viewport Node
    cam = $

    if cam.orthoProjection == true do (
        arv = MAXToAOps.ArnoldRenderView()
        arv.setOption "Camera" "/viewport_camera"
    )
)catch()
try (arv.Close())catch()

0 Likes
Message 12 of 14

Chris06_
Explorer
Explorer

I've just discovered this bug and found this thread trying to fix it.... I'm trying to batch render using scene states and orthographic cameras and the renders are as described above - so zoomed it renders a solid colour.

Message 13 of 14

RenderQ
Advocate
Advocate

Hi, in my last project I used this workaround, hope MAXtoA team will finally patch this.
This is my pre-render script
try(
actionMan.executeAction 0 "40247" -- Views: Select Viewport Node
cam = $
if cam.orthoProjection == true do (
arv = MAXToAOps.ArnoldRenderView()
arv.setOption "Camera" "/viewport_camera"
arv.Close()
)
)catch()

Message 14 of 14

Chris06_
Explorer
Explorer

Thanks for posting this; i'd seen it earlier in the thread but I wasn't too sure about how to implement it for a batch render with scene states.  In my situation, I wanted to render a sequence, using multiple saved scene states, from an orthographic camera - this bug was prohibiting me from doing this using the built in batch render tool.

 

Instead, chatGPT and I worked out a solution to replace the batch renderer (at least for that purpose) using the following maxScript.  I'm posting this in case anyone else finds themselves in the same situation (or I forget what I did and stumble on this thread again in a few years...)

 

-- === NOTES ===
--This script assumes Arnold is set as your default render engine, and that your current active view is set to an orthographic camera.

-- === USER CONFIGURATION ===

--Enter the saved scene states to be rendered:
sceneStates = #(
    "SceneState1",
    "SceneState2",
    "etc..."
)

cameraName = "OrthographicCamera" --change this to your orthographic camera's name
outputRoot = @"C:\Data\renderOutput" -- Change this path to wherever you want the exported images to be saved
startFrame = 0 -- change to your first frame number
endFrame = 99 -- change to your last frame number

-- === SCRIPT START ===

theCam = getNodeByName cameraName
if theCam == undefined then (
    messageBox ("Camera named \"" + cameraName + "\" not found.") title:"Error"
) else (
    for stateName in sceneStates do (
        format "\n? Restoring Scene State: %\n" stateName

        -- Restore the full scene state (View, Environment, Render Settings, Lights, etc.)
        if sceneStateMgr.Restore stateName #{1..8} then (
            format "? Restored: %\n" stateName
        ) else (
            format "? Failed to restore scene state: %\n" stateName
            continue
        )

        -- Set the active viewport to use the camera (viewport_camera workaround for Arnold)
        try (
            viewport.SetCamera theCam
            format "?? Viewport set to: %\n" cameraName
        ) catch (
            format "? Failed to set viewport to camera: %\n" cameraName
            continue
        )

        -- Ensure Arnold is the production renderer
        try (
            --renderers.production = Arnold_Renderer() -- this line commented out because it was causing an error and is not needed
            format "?? Arnold renderer set as production renderer.\n"
        ) catch (
            format "? Arnold renderer not available. Skipping render for %\n" stateName
            continue
        )

        -- Render frames
        for f = startFrame to endFrame do (
            sliderTime = f
            frameNumStr = formattedPrint f format:"02d"
            outputPath = outputRoot + "\\" + stateName + "_f" + frameNumStr + ".tif"

            format "?? Rendering frame % for % ? %\n" f stateName outputPath

            render frame:f vfb:false outputfile:outputPath
        )
    )

    format "\n? All renders complete.\n"
)
0 Likes