File: engine.py

package info (click to toggle)
blender 4.3.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 309,564 kB
  • sloc: cpp: 2,385,210; python: 330,236; ansic: 280,972; xml: 2,446; sh: 972; javascript: 317; makefile: 170
file content (47 lines) | stat: -rw-r--r-- 1,603 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
#
# SPDX-License-Identifier: Apache-2.0

import bpy


class StormHydraRenderEngine(bpy.types.HydraRenderEngine):
    bl_idname = 'HYDRA_STORM'
    bl_label = "Hydra Storm"
    bl_info = "USD's high performance rasterizing renderer"

    bl_use_preview = True
    bl_use_gpu_context = True
    bl_use_materialx = True

    bl_delegate_id = 'HdStormRendererPlugin'

    def get_render_settings(self, engine_type):
        settings = bpy.context.scene.hydra_storm.viewport if engine_type == 'VIEWPORT' else \
            bpy.context.scene.hydra_storm.final
        result = {
            'enableTinyPrimCulling': settings.use_tiny_prim_culling,
            'maxLights': settings.max_lights,
            'volumeRaymarchingStepSize': settings.volume_raymarching_step_size,
            'volumeRaymarchingStepSizeLighting': settings.volume_raymarching_step_size_lighting,
            'volumeMaxTextureMemoryPerField': settings.volume_max_texture_memory_per_field,
        }

        if engine_type != 'VIEWPORT':
            result |= {
                'aovToken:Combined': "color",
                'aovToken:Depth': "depth",
            }

        return result

    def update_render_passes(self, scene, render_layer):
        if render_layer.use_pass_combined:
            self.register_pass(scene, render_layer, 'Combined', 4, 'RGBA', 'COLOR')
        if render_layer.use_pass_z:
            self.register_pass(scene, render_layer, 'Depth', 1, 'Z', 'VALUE')


register, unregister = bpy.utils.register_classes_factory((
    StormHydraRenderEngine,
))