Nview V3: Camera-Based Scene Optimization

by Spencer Magnusson in Addons


What does the nView Blender Addon do?

Hide or disable objects, collections, and geometry based on visibility from the camera, including their visibility in reflections.

The panels

Go to the 3D view and open the right-hand panel (default shortcut is 'n'). Select the 'nView' tab. The nView panel is available both in object mode and mesh edit mode.

Object Mode

Here you can find the operations to act on objects in your scene. Note that these operate only on objects you select. This allows you to select only a few objects to operate on for speed. But if you wish to operate on all objects or objects of a certain type, you can use Blender's internal commands to select all (Ctrl+A) or select by type (Shift+G) respectively.

Each operation's parameters can be found in the operator's redo panel. You will find these in the bottom-left corner of the 3D view you operate in (you can also press F9 to reveal it).

Let's go over what each button does, and their unique settings:

  • Deselect Objects: deselects all objects in your current selection that are outside camera view.
    • In the redo panel, you can invert your selection to only select objects outside camera view.
  • Hide Objects: hide all objects in your current selection outside camera view.
    • In the redo panel, you can tweak which visibility attributes are affected, including enabling in the viewport and render, as well as baking the visibility to keyframes.
  • Hide Collections: if all selected objects in a given collection are invisible to the camera, the entire collection is hidden.
    • In the redo panel, you can tweak which attributes are affected, including view layer, visibility, and enabling in the viewport and render.
  • Mask Meshes: for each mesh that is visible by the camera, any geometry invisible to the camera is hidden by a mask modifier.
    • Say you have a huge mesh that you don't want to break up (like a photoscanned asset), but only part of it is visible. This hides its off-camera geometry without actually deleting it, using the mask modifier. If all the mesh object geometry is visible or invisible, it doesn't do anything (the modifier would be redundant in these cases). But if it's partially visible, it hides invisible vertices with the mask modifier.
    • In the redo panel, you can tweak which visibility attributes are affected, including view layer, and enabling in the viewport and render.

    In the clean panel, you have convenience operators to help you with undoing operations:

    • Show All Objects: shows all objects in your scene. In the redo panel, you can tweak which visibility attributes are reset.
    • Show All Collections: shows all collections in your scene's current view layer. In the redo panel, you can tweak which visibility attributes are reset.
    • Clear Visibility Keyframes: Removes all visibility attribute keyframes on selected objects.

    Clean Panel

    This panel has some convenience operators such as revealing all objects and collections in your scene, as well as removing visibility keyframes added by the hide objects operator.

    Mesh Edit Mode

    Here you can find the operations to act on geometry for a given mesh. Note that these operate only on the geometry you select. These operations also work in vertex, edge, and face selection modes.

    • Deselect: deselects geometry in your current selection that are out of the camera's view.
      • In the redo panel, you can invert your selection to only select geometry outside of camera view.
    • Hide: hides geometry in your current selection. Note that this is only temporary to edit mode. If you wish to hide some geometry in your renders, use the Mask Meshes operator in object mode.

    Shared Parameters

    Many of the operation parameters are shared between them, so I will go over them all together here.

    Camera

    The default option is to evaluate object visibility from the scene's active camera. If you use markers to change your camera during an animation, nView will automatically detect and include those frames.

    Additionally, you have the option to evaluate multiple cameras. Simply check your cameras by name, and they will be included in the evaluation. The operation on all the cameras is either:

    • Union: objects or geometry is considered visible if any selected camera sees it.
    • Intersection: objects or geometry is considered only if all selected cameras see it.

    Animation

    With one checkbox, you can query visibility over a given frame range! If an object is visible at any point in that frame range, it will be counted as visible.

    You can choose "Scene" to use the current scene's start and end frames, or "Custom" to add your own frame range. The frame step is still custom so users can balance precision with performance.

    Bake to Keyframes

    The hide objects operator can bake each object's visibility to keyframes. It will add in the least necessary keyframes to effectively hide and reveal the object on playback. If the object's visibility does not change over time, it will not add any keyframes!

    Collection keyframing is not supported by Blender, hence why the hide collections operator does not have this option.

    Preferences

    These are found in a panel beneath the nView add-on listing in the preferences.


    • Category Name - this allows you to change the name of the tab nView panels are listed under. For example, you can change it to "View" and it'll be listed with the other panels under the View tab in the 3D View shelf.
    • Use Dialog Box - When enabled, along with being able to adjust parameters after an nView operation via the redo panel, these same parameters will also pop up before running the operation.

    Methods

    Based on culling algorithms, these are the methods you can choose from to determine whether objects or geometry is visible from the camera. The default is frustum, which is useful for most cases as well as very fast.

    Frustum


    If an object's bounds are within a camera's view frustum (excluding objects outside the near and far clipping planes), then it is considered visible. This may include objects that are within the frustum but occluded/hidden by other objects.

    This method has a setting to increase the margin beyond the frustum, to add padding for objects about to enter camera view.

    Ray Casting


    Cast rays from the camera into the scene, only hitting objects directly visible by the camera. You can customize the number of rays and number of bounces each ray can make to include indirectly seen objects! Here's the above example with 2 glossy bounces:

    This method has a few settings of its own:

    • Tile Size: The render resolution is split into square tiles of this size, each casting its own ray from the camera into the scene. At 10px, with a 1920x1080 scene render resolution, 20,736 (192 x 108) tiles will cast rays into the scene.
    • Bounces Max: each ray keeps track of the number of glossy and transmission bounces it does. If the total number of bounces exceeds this maximum, the ray returns with the objects it has hit so far.
      • Glossy: maximum times a ray can bounce off of mesh surfaces, potentially finding objects visible in reflections.
      • Transmission: maximum times a ray can pass through mesh surfaces with a transparent material (including glass), potentially finding objects visible behind transparent surfaces.
    • Min and Max bounce ray distance: this determines how far bounce rays can travel, and the offset of its starting point from a given surface (to prevent self-collisions).

    Backface (mesh edit mode only)


    Only faces or vertices facing the camera are visible (note this method does not work on edges).

    Distance (object mode only)


    Only keeps objects visible within a user-specified distance from the camera.

    Sales 100+
    Dev Fund Contributor
    Published 11 months ago
    Blender Version 4.1, 4.0, 3.6, 3.5, 3.4, 3.3
    License GPL
    Have questions before purchasing?

    Contact the Creator with your questions right now.

    Login to Message