Amaranth Addon
[blender-addons-contrib.git] / amaranth / render / render_output_z.py
1 #  This program is free software; you can redistribute it and/or
2 #  modify it under the terms of the GNU General Public License
3 #  as published by the Free Software Foundation; either version 2
4 #  of the License, or (at your option) any later version.
5 #
6 #  This program is distributed in the hope that it will be useful,
7 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #  GNU General Public License for more details.
10 #
11 #  You should have received a copy of the GNU General Public License
12 #  along with this program; if not, write to the Free Software Foundation,
13 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 """
15 EXR Render: Warn when Z not connected
16 Display a little warning label when exporting EXR, with Z Buffer enabled, but
17 forgot to plug the Z input in the Compositor.
18
19 Might be a bit too specific, but found it nice to remember to plug the Z input
20 if we explicitely specify for Z Buffers to be saved (because it's disabled by
21 default).
22
23 Find it on the Output panel, Render properties.
24 """
25 import bpy
26
27
28 # // FEATURE: Object ID for objects inside DupliGroups
29 # UI: Warning about Z not connected when using EXR
30 def ui_render_output_z(self, context):
31
32     scene = bpy.context.scene
33     image = scene.render.image_settings
34     if scene.render.use_compositing and \
35             image.file_format == 'OPEN_EXR' and \
36             image.use_zbuffer:
37         if scene.node_tree and scene.node_tree.nodes:
38             for no in scene.node_tree.nodes:
39                 if no.type == 'COMPOSITE':
40                     if not no.inputs['Z'].is_linked:
41                         self.layout.label(
42                             text="The Z output in node \"%s\" is not connected" %
43                             no.name, icon="ERROR")
44
45 # // UI: Warning about Z not connected
46
47
48 def register():
49     bpy.types.RENDER_PT_output.append(ui_render_output_z)
50
51
52 def unregister():
53     bpy.types.RENDER_PT_output.remove(ui_render_output_z)