Page MenuHome

Missing Camera settings in props except Depth of Field
Closed, ResolvedPublic

Description

Mac OS X, Blender 2.8, by 13 february beta

Event Timeline

Similar problem. Camera settings are not displayed.

Blender 2.80 Beta for Linux 64 bit (February 13, 00:04:27 - 9a8a5676da82)
Operating system: Ubuntu 18.04
Graphics card: RTX-2080Ti

Same thing on Linux build:
Blender 2.80 (sub 44)
build date: 2019-02-13
build time: 00:01:56
build commit date: 2019-02-13
build commit time: 00:00
build hash: 9a8a5676da82
build platform: Linux

Camera settings have "Lens" tab in EEVEE, but in Cycles haven't.

Seems like 'CYCLES' is missing in the COMPAT_ENGINES set in a few UI tabs like for instance the lens panel:

class DATA_PT_lens(CameraButtonsPanel, Panel):
    bl_label = "Lens"
    COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}
Philipp Oeser (lichtwerk) claimed this task.
Philipp Oeser (lichtwerk) triaged this task as Confirmed, Medium priority.

Confirmed, checking...

What makes it a bit confusing is that panels which serve a similar purpose (and almost look the same in the UI) are spread across different files. Check for example the camera aperture one. The cycles UI for this is in the file ui.py:

class CYCLES_CAMERA_PT_dof_aperture(CyclesButtonsPanel, Panel):
    bl_label = "Aperture"
    bl_parent_id = "CYCLES_CAMERA_PT_dof"

    @classmethod
    def poll(cls, context):
        return context.camera and CyclesButtonsPanel.poll(context)

    def draw(self, context):
        layout = self.layout
        layout.use_property_split = True
        flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=False)

        cam = context.camera
        ccam = cam.cycles

        col = flow.column()
        col.prop(ccam, "aperture_type")
        if ccam.aperture_type == 'RADIUS':
            col.prop(ccam, "aperture_size", text="Size")
        elif ccam.aperture_type == 'FSTOP':
            col.prop(ccam, "aperture_fstop", text="Number")
        col.separator()

        col = flow.column()
        col.prop(ccam, "aperture_blades", text="Blades")
        col.prop(ccam, "aperture_rotation", text="Rotation")
        col.prop(ccam, "aperture_ratio", text="Ratio")

The Eevee counterpart however resides in properties_data_camera.py:

class DATA_PT_camera_dof_aperture(CameraButtonsPanel, Panel):
    bl_label = "Aperture"
    bl_parent_id = "DATA_PT_camera_dof"
    COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}

    def draw(self, context):
        layout = self.layout
        layout.use_property_split = True

        cam = context.camera
        dof_options = cam.gpu_dof

        flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=False)

        col = flow.column()
        col.prop(dof_options, "fstop")
        col.prop(dof_options, "blades")

        col = flow.column()
        col.prop(dof_options, "rotation")
        col.prop(dof_options, "ratio")

This isn't related to the bug, but it makes tracking such things down a bit cumbersome.

@Rainer Trummer (aliasguru): cycles usually takes panels with BLENDER_RENDER as a compat engine into account, except for a few instances [like apertue as you mentioned]
check get_panels() in cycles addon to see which panels cycles excludes...

Anyways, D4346 should fix this for now [adding BLENDER_RENDER back].
Not sure if we should swap BLENDER_RENDER with CYCLES throughout ui scripts at one time...

@Philipp Oeser (lichtwerk) For the sake of avoiding historical confusion, swapping 'BLENDER_RENDER' with 'CYCLES' would make a lot of sense. At the moment it's a bit like 'Yeah I know, last year Blender Render was meant to be Blender Internal, but now it's Cycles'. Conversations like this can get a bit rough :) Anyways, not related to this. Thanks for the patch, will test it now.

Seems to be fine, all properties are back.

@Rainer Trummer (aliasguru) : will wait for @Brecht Van Lommel (brecht) to decide if swapping 'BLENDER_RENDER' with 'CYCLES' is desired at this point (external) addons would probably require updates then...