Rendu de sortie Blender

VérifiéPrudence

Configurer les paramètres de rendu, les nœuds de compositing, les formats de sortie et exécuter les rendus via Cycles ou EEVEE avec l'API Python ou la CLI. Automatiser les rendus par lots, ajuster les compromis qualité/performance, mettre en place des pipelines de compositing et générer plusieurs formats de sortie à partir d'un seul rendu.

Spar Skills Guide Bot
DeveloppementIntermédiaire
24/07/2026
Claude Code
#blender#bpy#rendering#cycles#compositing

Recommandé pour

Synthèse automatique

Configure les paramètres de rendu Blender (Cycles, EEVEE), les formats de sortie et les nœuds de compositing, puis exécute les rendus via l'API Python ou la ligne de commande.

Points forts

  • Extraits de code Python concrets pour régler Cycles (échantillonnage adaptatif, débruitage OptiX, rebonds) et EEVEE (bloom, GTAO, réflexions écran)
  • Couvre la configuration de sortie : résolution, ratio de pixels, format de fichier et profondeur de couleur
  • Traite les deux modes d'exécution, script bpy et workflow CLI, ce qui couvre le rendu par lots
  • Chaque étape est suivie d'un critère de réussite et d'une piste de dépannage en cas d'erreur

Limites

  • Le contenu fourni est tronqué au milieu d'un bloc de code (réglages PNG), donc la partie compositing et multi-formats n'est pas entièrement vérifiable
  • Le texte est rédigé dans un style « cavernicole » ultra-télégraphique qui rend certains enchaînements d'étapes et paramètres difficiles à lire
  • Plusieurs appels d'API sont liés à une version de Blender (BLENDER_EEVEE, use_bloom), susceptibles de casser avec EEVEE Next en 4.2+
Quand l'utiliser

À utiliser lorsqu'il faut scripter ou automatiser des rendus Blender, lancer un lot d'images ou normaliser formats et post-traitement.

Quand l'éviter

À éviter si le besoin porte sur la modélisation, l'animation ou la construction de scène, ou si le projet n'utilise pas Blender.

Analyse de sécurité

Prudence
Score qualité82/100

This is a legitimate Blender rendering guide that uses powerful local tools—Bash, Blender CLI, Python bpy, file writes, and directory creation—for normal rendering workflows. It does not exfiltrate data, disable safety mechanisms, use obfuscated payloads, or perform destructive system actions, but it does carry standard tool-execution and file-modification risk.

Points d'attention
  • •Uses Bash and Blender Python/CLI execution to render and write output files; legitimate but can create or overwrite files in user-specified output directories.
  • •The output path helper accepts a caller-provided base_dir and creates directories/writes renders without additional path validation, so misuse could write outside the intended project directory.
  • •The compositing setup calls nodes.clear(), which removes existing compositor nodes in the scene; this is a data-modification risk rather than a security exploit.
  • •Declares Bash and includes CLI commands that invoke Blender and write render output to user-specified paths; this is legitimate but could overwrite existing files if paths are misconfigured.
  • •Python snippets create directories and write image files; no deletion, network exfiltration, obfuscation, or safety-disabling behavior is present.
Comment cette analyse est faite

Exemples

Automated Cycles batch render
Write a bpy script that opens scene.blend, switches to Cycles on GPU with 128 adaptive samples and OptiX denoising, renders 1920x1080, and writes PNGs to /renders/output_####.png
EEVEE quality preset
Configure EEVEE for a stylized shot: 64 TAA render samples, bloom on, GTAO on with 0.2 distance, screen-space reflections, then render the frame from the command line.
Multi-format compositing output
Set up a compositing node graph so a single Cycles render outputs both a 16-bit OpenEXR and a JPEG, then save both to the output folder.

name: render-blender-output locale: caveman-ultra source_locale: en source_commit: 82c77053 translator: "Julius Brussee homage — caveman" translation_date: "2026-04-26" description: > Configure render settings, compositing nodes, output formats, execute renders via Cycles or EEVEE w/ Python API or CLI. Use → automate batch render, config quality/perf trade-offs, set up compositing pipelines, generate multi output formats from single render, produce final output for publication. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: blender complexity: intermediate language: Python tags: blender, bpy, rendering, cycles, eevee, compositing, output

Render Blender Output

Configure render engines (Cycles, EEVEE), set output params, build compositing node graphs, execute via Python API or CLI. Render settings opt, file format select, post-processing.

Use When

  • Automate batch render
  • Config render quality + perf trade-offs
  • Set up compositing pipelines → post-process
  • Generate multi output formats from single render
  • Optimize render settings → diff hardware
  • Create CLI rendering workflows
  • Produce final output → publication/presentation

In

| Input | Type | Description | Example | |---|---|---|---| | Scene file | .blend file | Blender scene to render | scene.blend | | Render engine | String | Cycles, EEVEE, or Workbench | CYCLES | | Quality settings | Parameters | Samples, resolution, denoising | 128 samples, 1920x1080, OptiX denoiser | | Output format | String | PNG, EXR, JPEG, TIFF | OPEN_EXR, 16-bit, ZIP compression | | Compositing setup | Node graph | Post-processing effects | Color grading, glare, vignette | | Output path | File path | Render destination | /renders/output_####.png |

Do

1. Configure Render Engine

Set engine + basic params:

import bpy

def setup_cycles_engine():
    """Configure Cycles render engine."""
    scene = bpy.context.scene
    scene.render.engine = 'CYCLES'

    # Device settings
    scene.cycles.device = 'GPU'  # or 'CPU'

    # Sampling
    scene.cycles.samples = 128  # Viewport: fewer samples
    scene.cycles.use_adaptive_sampling = True
    scene.cycles.adaptive_threshold = 0.01

    # Denoising
    scene.cycles.use_denoising = True
    scene.cycles.denoiser = 'OPTIX'  # or 'OPENIMAGEDENOISE', 'NLM'

    # Light paths
    scene.cycles.max_bounces = 12
    scene.cycles.diffuse_bounces = 4
    scene.cycles.glossy_bounces = 4
    scene.cycles.transmission_bounces = 12
    scene.cycles.volume_bounces = 0

def setup_eevee_engine():
    """Configure EEVEE render engine."""
    scene = bpy.context.scene
    scene.render.engine = 'BLENDER_EEVEE'

    # Sampling
    scene.eevee.taa_render_samples = 64

    # Effects
    scene.eevee.use_bloom = True
    scene.eevee.bloom_threshold = 0.8
    scene.eevee.bloom_intensity = 0.1

    scene.eevee.use_gtao = True  # Ambient occlusion
    scene.eevee.gtao_distance = 0.2

    scene.eevee.use_ssr = True  # Screen space reflections
    scene.eevee.ssr_quality = 0.5

    # Shadows
    scene.eevee.shadow_cube_size = '1024'
    scene.eevee.shadow_cascade_size = '1024'

→ Engine configured w/ appropriate quality settings If err: check engine name spelling, verify GPU available for GPU rendering

2. Resolution + Output Format

Configure output dimensions + format:

def configure_output(width=1920, height=1080, file_format='PNG', color_depth='16'):
    """Set output resolution and format."""
    scene = bpy.context.scene

    # Resolution
    scene.render.resolution_x = width
    scene.render.resolution_y = height
    scene.render.resolution_percentage = 100

    # Aspect ratio
    scene.render.pixel_aspect_x = 1.0
    scene.render.pixel_aspect_y = 1.0

    # File format
    scene.render.image_settings.file_format = file_format

    if file_format == 'PNG':
        scene.render.image_settings.color_mode = 'RGBA'
        scene.render.image_settings.color_depth = color_depth  # '8' or '16'
        scene.render.image_settings.compression = 15  # 0-100

    elif file_format == 'OPEN_EXR':
        scene.render.image_settings.color_mode = 'RGBA'
        scene.render.image_settings.color_depth = '32'  # or '16'
        scene.render.image_settings.exr_codec = 'ZIP'  # or 'DWAA', 'PIZ'

    elif file_format == 'JPEG':
        scene.render.image_settings.color_mode = 'RGB'
        scene.render.image_settings.quality = 90  # 0-100

    elif file_format == 'TIFF':
        scene.render.image_settings.color_mode = 'RGBA'
        scene.render.image_settings.color_depth = color_depth
        scene.render.image_settings.tiff_codec = 'DEFLATE'

    # Frame range (for animations)
    scene.frame_start = 1
    scene.frame_end = 250
    scene.frame_step = 1

→ Output format + resolution configured correctly If err: check format names valid, verify color depth compatible

3. Configure Compositing

Set up compositing node graph:

def setup_compositing():
    """Create compositing node setup."""
    scene = bpy.context.scene
    scene.use_nodes = True

    tree = scene.node_tree
    nodes = tree.nodes
    links = tree.links

    # Clear default nodes
    nodes.clear()

    # Render Layers input
    render_layers = nodes.new(type='CompositorNodeRLayers')
    render_layers.location = (-400, 300)

    # Denoise (if not using Cycles denoiser)
    # denoise = nodes.new(type='CompositorNodeDenoise')
    # denoise.location = (-200, 300)

    # Color correction
    color_correct = nodes.new(type='CompositorNodeColorCorrection')
    color_correct.location = (0, 300)
    color_correct.master_saturation = 1.1
    color_correct.master_gain = 1.05

    # Glare effect
    glare = nodes.new(type='CompositorNodeGlare')
    glare.location = (200, 200)
    glare.glare_type = 'FOG_GLOW'
    glare.threshold = 0.9
    glare.size = 8

    # Vignette
    lens_distortion = nodes.new(type='CompositorNodeLensdist')
    lens_distortion.location = (200, 0)
    lens_distortion.inputs['Dispersion'].default_value = 0.0
    lens_distortion.inputs['Distortion'].default_value = -0.02

    # Mix nodes
    mix1 = nodes.new(type='CompositorNodeMixRGB')
    mix1.location = (400, 250)
    mix1.blend_type = 'ADD'
    mix1.inputs['Fac'].default_value = 0.3

    # Composite output
    composite = nodes.new(type='CompositorNodeComposite')
    composite.location = (600, 300)

    # Viewer output (for preview)
    viewer = nodes.new(type='CompositorNodeViewer')
    viewer.location = (600, 100)

    # Link nodes
    links.new(render_layers.outputs['Image'], color_correct.inputs['Image'])
    links.new(color_correct.outputs['Image'], mix1.inputs[1])
    links.new(color_correct.outputs['Image'], glare.inputs['Image'])
    links.new(glare.outputs['Image'], mix1.inputs[2])
    links.new(mix1.outputs['Image'], composite.inputs['Image'])
    links.new(mix1.outputs['Image'], viewer.inputs['Image'])

→ Compositing nodes configured w/ post-processing effects If err: check node type names, verify inputs exist, ensure link connections valid

4. Output File Paths

Configure output naming w/ frame numbers:

import os
from pathlib import Path

def set_output_path(base_dir, project_name, use_frame_number=True):
    """Configure output file path."""
    scene = bpy.context.scene

    # Create output directory
    output_dir = Path(base_dir) / project_name / "renders"
    output_dir.mkdir(parents=True, exist_ok=True)

    # Set filepath
    if use_frame_number:
        # #### is replaced with frame number (0001, 0002, etc.)
        filename = f"{project_name}_####"
    else:
        filename = project_name

    scene.render.filepath = str(output_dir / filename)

    # Optional: Set file extension explicitly
    # Extension added automatically based on file_format
    # But can override: scene.render.file_extension = '.png'

→ Output dir created, filepath configured w/ frame numbering If err: check dir perms, verify path syntax for OS

5. View Layers + Passes

Set up render passes for compositing:

def configure_view_layers():
    """Enable render passes."""
    scene = bpy.context.scene
    view_layer = scene.view_layers['ViewLayer']

    # Enable passes
    view_layer.use_pass_combined = True
    view_layer.use_pass_z = True  # Depth
    view_layer.use_pass_mist = False
    view_layer.use_pass_normal = True
    view_layer.use_pass_vector = True  # Motion vectors
    view_layer.use_pass_ambient_occlusion = True

    # Cycles-specific passes
    cycles = view_layer.cycles
    cycles.use_pass_diffuse_direct = True
    cycles.use_pass_diffuse_indirect = True
    cycles.use_pass_glossy_direct = True
    cycles.use_pass_glossy_indirect = True
    cycles.use_pass_emission = True
    cycles.use_pass_environment = True

    # Cryptomatte passes (for post-production)
    cycles.use_pass_crypto_object = True
    cycles.use_pass_crypto_material = True
    cycles.use_pass_crypto_asset = True

→ Render passes enabled for advanced compositing If err: check passes available for engine, verify view layer name

6. Execute Render

Render via Python API or CLI:

def render_still():
    """Render current frame."""
    bpy.ops.render.render(write_still=True)

def render_animation():
    """Render animation frame range."""
    bpy.ops.render.render(animation=True)

def render_frame(frame_number):
    """Render specific frame."""
    scene = bpy.context.scene
    scene.frame_set(frame_number)
    bpy.ops.render.render(write_still=True)

# Command-line rendering (run from terminal)
# Single frame:
# blender scene.blend --background --render-frame 1

# Animation:
# blender scene.blend --background --render-anim

# Specific frame range:
# blender scene.blend --background --frame-start 10 --frame-end 20 --render-anim

# Override output path:
# blender scene.blend --background --render-output /tmp/render_#### --render-anim

# Use Python script:
# blender scene.blend --background --python render_script.py

→ Render executes, output files written to specified location If err: check scene setup, verify camera exists, ensure output dir writable

7. Batch Render Multi Cameras

Render from multi camera angles:

def render_all_cameras(output_dir):
    """Render scene from all cameras."""
    scene = bpy.context.scene
    original_camera = scene.camera

    cameras = [obj for obj in bpy.data.objects if obj.type == 'CAMERA']

    for camera in cameras:
        # Set active camera
        scene.camera = camera

        # Update output path
        camera_name = camera.name.replace(' ', '_')
        scene.render.filepath = os.path.join(output_dir, f"{camera_name}_####")

        # Render
        bpy.ops.render.render(write_still=True)
        print(f"Rendered from camera: {camera.name}")

    # Restore original camera
    scene.camera = original_camera

→ Renders generated for each camera in scene If err: check cameras exist, verify each positioned correctly

8. Optimize Perf

Configure perf settings:

def optimize_performance():
    """Optimize render settings for speed."""
    scene = bpy.context.scene

    if scene.render.engine == 'CYCLES':
        # Tile size (GPU: larger tiles, CPU: smaller tiles)
        if scene.cycles.device == 'GPU':
            scene.render.tile_x = 256
            scene.render.tile_y = 256
        else:
            scene.render.tile_x = 32
            scene.render.tile_y = 32

        # Performance settings
        scene.cycles.use_adaptive_sampling = True
        scene.render.use_persistent_data = True  # Keep scene in memory

        # Reduce light path complexity for preview
        scene.cycles.max_bounces = 4
        scene.cycles.diffuse_bounces = 2
        scene.cycles.glossy_bounces = 2

        # Progressive refine (for viewport)
        scene.cycles.use_progressive_refine = True

    elif scene.render.engine == 'BLENDER_EEVEE':
        # Simplify settings for preview
        scene.render.use_simplify = True
        scene.render.simplify_subdivision = 2

        # Reduce sampling
        scene.eevee.taa_render_samples = 32

→ Render settings optimized for target hardware If err: test w/ lower quality first, monitor mem usage

Check

  • [ ] Engine configured (Cycles/EEVEE)
  • [ ] Resolution + aspect ratio match req
  • [ ] Output format appropriate
  • [ ] Color depth + compression verified
  • [ ] Compositing nodes connected properly
  • [ ] Output dir exists + writable
  • [ ] Filename has frame numbering if needed
  • [ ] Passes enabled as required
  • [ ] Camera positioned correctly
  • [ ] Test render completes w/o errors
  • [ ] Output files have correct format + quality

Traps

  1. Missing camera: Scene must have active camera set for rendering
  2. Output path not set: Always specify scene.render.filepath before render
  3. Insufficient samples: Low sample counts → noise in Cycles renders
  4. Wrong color space: Check color mgmt for correct display
  5. File format incompat: Not all formats support all color depths
  6. Mem overflow: Large resolutions or complex scenes exceed RAM
  7. GPU OOM: Reduce tile size or switch to CPU for large scenes
  8. Background mode output: Must use --render-output flag or set filepath
  9. Frame number formatting: Use #### for auto frame padding
  10. Compositing disabled: Enable scene.use_nodes to use compositing

→

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/render-blender-output-mryiqgov/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/render-blender-output-mryiqgov' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/render-blender-output-mryiqgov/download' --output '.skill-downloads/render-blender-output-mryiqgov/SKILL.md.part' && mv '.skill-downloads/render-blender-output-mryiqgov/SKILL.md.part' '.skill-downloads/render-blender-output-mryiqgov/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Read Write Edit Bash Grep Glob

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/render-blender-output-mryiqgov/SKILL.md' && test -s '.skill-downloads/render-blender-output-mryiqgov/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/render-blender-output' && cp -R '.skill-downloads/render-blender-output-mryiqgov' '.claude/skills/render-blender-output'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/render-blender-output-mryiqgov'

openskills read 'render-blender-output-mryiqgov'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/render-blender-output-mryiqgov/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires