Skip to main content
Corona Renderer on Render Farms: Complete Setup Guide

Corona Renderer on Render Farms: Complete Setup Guide

ByThierry Marc
Published 2020/01/1111 min read

Introduction

Corona Renderer is distinct among major renderers because it uses CPU-based ray tracing exclusively — no GPU rendering pathway. This architecture has profound implications for render farm deployment. On traditional farms built for V-Ray GPU, Corona requires different hardware provisioning, licensing models, and optimization approaches.

We're an official Chaos render partner, supporting Corona alongside V-Ray and Redshift on our farm. Corona's CPU focus means it excels in scenarios where GPU farm bandwidth is limited or where clients prefer CPU stability. Over the past three years, we've processed thousands of Corona jobs and refined workflows that maximize farm efficiency while minimizing common deployment headaches.

This guide covers Corona's architecture, distributed rendering setup, node licensing, scene preparation, common errors and solutions, Corona vs. V-Ray on farms, and the optimization techniques we use to keep Corona render times competitive.

Understanding Corona's CPU-Based Rendering Architecture

Corona Renderer produces photorealistic output via unidirectional path tracing — a single ray bounces from the camera through the scene, collecting light samples until it reaches a light source or the bounce limit. This is different from bidirectional path tracing (V-Ray's approach) or spectral rendering (Arnold). Corona's unidirectional design prioritizes speed and consistency. For technical documentation, see the Corona Renderer manual.

Why CPU-only? CPU ray tracing avoids GPU memory limitations, enabling massive scene files. A scene with 500 million polygons or 10GB of textures fits comfortably on a CPU machine with 128GB RAM. GPU rendering would struggle. CPU also provides superior numerical precision (64-bit floating-point), crucial for architectural visualization where small surface misalignments matter.

Farm implications: Corona renders are CPU-hungry but memory-forgiving. A single 4-socket Xeon server renders a complex scene 4–8x faster than a quad-GPU machine, but consumes the same power. Our farm allocates dual-socket Xeon E5-2699 v4 machines specifically for Corona — 44 cores per box, running at 100% utilization during renders.

Licensing reality: Corona uses node-locked licenses, meaning one license activates one CPU core. A 44-core machine requires 44 Corona licenses. This is expensive at scale but provides precise capacity billing and avoids floating-license overhead. For detailed licensing models across renderers, see our node license guide.

Distributed Rendering Setup in Corona

Corona's distributed rendering divides a frame across multiple machines, each rendering a tile and returning results to the submission machine for compositing. Setup requires:

1. Submission machine (primary): Runs Corona, submits the job, and receives tile results.

2. Farm workers (secondaries): Run Corona in headless mode, receive tile assignments, and return rendered tiles.

3. Networking: Fast LAN required (gigabit minimum, 10-gigabit preferred). Corona transfers tiles across the network, so latency and bandwidth matter.

4. Shared storage: Textures, cache files, and project assets must be accessible from all workers. We use a 10Gb NAS mounted via NFS on all farm nodes.

Configuration steps:

Start Corona → Render → Distributed Rendering Settings → Enable Distributed Mode → Configure Worker Machines (IP addresses or hostnames). Corona automatically handles tile division and result composition on the primary machine.

If you're using 3ds Max or Cinema 4D with Corona, the process is similar but lives in the render settings dialog rather than Corona's standalone UI.

Worker node requirements: Each worker needs the exact Corona version as the primary. Mismatched versions cause silent tile failures. We maintain version consistency via automated provisioning — new worker nodes pull Corona from a central repository during initialization.

Corona Licensing for Render Farms

Corona Node Licenses are perpetual, per-core subscriptions. One license activates one CPU core for rendering. Unlike V-Ray's node-license model (one license per machine regardless of core count), Corona is granular.

Cost implications: A 64-core machine requires 64 Corona licenses — expensive but transparent. You pay for what you use. We calculated our farm's Corona licensing at roughly $0.03–$0.05 per render core per month (based on our Chaos render partner agreement), making 1,000-core farms economically viable for high-volume production.

License activation: Corona licenses are node-locked via system MAC address. On our farm, we maintain a license database mapping MAC addresses to license keys. When a worker boots, it auto-activates licenses during initialization — critical for elastic cloud deployments.

Floating vs. node-locked: Corona doesn't support floating licenses (unlike V-Ray). Each core gets its own license. This simplifies bookkeeping but requires careful inventory management. For comparison across renderer licensing models, see our Corona licensing comparison.

Upgrade paths: Corona maintains backward compatibility across major versions (e.g., 11 renderers can work with Corona 10 scenes). However, license keys are version-locked. Upgrading from Corona 10 to Corona 11 requires new license keys for all cores.

On our farm: We hold two license batches — a primary set for production rendering, a secondary set for development and testing. This isolates production from experimentation.

Scene Preparation and Common Farm Submission Errors

Corona scenes fail on farms for predictable reasons. Our pre-submission checklist addresses all of them:

1. Texture paths: Ensure all textures use absolute UNC paths (e.g., \\farm-nas\project\textures\wood.exr) or relative paths within the project structure. Corona doesn't bake textures into the scene file like some renderers, so missing paths = missing textures at render time.

We created an automated "path checker" script in MaxScript that reports any non-UNC texture paths before submission. This has eliminated ~95% of "missing texture" farm failures.

2. Proxy files: Corona supports V-Ray proxies (.vrmesh) beautifully, but proxy paths must be absolute. We convert relative paths (e.g., .\proxies\building.vrmesh) to full UNC paths before submission.

3. HDR maps: Environment maps (.hdr files) must be accessible from farm workers. Same rule as textures — absolute UNC paths.

4. Plugins and extensions: Corona's plugin ecosystem is small. If your scene uses a third-party material (e.g., Substance Designer inside 3ds Max), that plugin must exist on farm workers or the material will fail to load silently, rendering as black.

5. Animated scenes: Corona handles animation and motion blur efficiently, but verify frame caching on worker nodes. Some setups cache frames unnecessarily, bloating NAS usage.

6. Licensing availability: Check that your Corona license count matches the number of cores you're requesting. A scene submitted to 100 cores but with only 50 licenses will render at 50% capacity silently — no error message. We added quota checks to our farm dashboard to prevent this.

Troubleshooting Common Errors

ErrorCauseFix
Render returns black pixels or all blackMissing plugin or materialCheck material definitions in scene; verify plugin availability on farm
Tiles don't composite correctlyVersion mismatch between primary and workerUpdate all workers to Corona version matching primary machine
Render is extremely slow (~100x slower than expected)Rendering in interactive mode instead of distributedVerify Distributed Rendering Settings enabled and workers registered
Some tiles fail; others succeedNetwork timeout retrieving texturesMove textures to local NAS volume accessible via NFS; increase network timeout in Corona settings
License activation fails on workerMAC address mismatch or license key expiredVerify MAC address in license database; renew license if expired
Noise/artifacts appear inconsistentlyWorker cache corruptionClear C:\ProgramData\Corona\Cache on all workers; resubmit

Corona vs. V-Ray on Render Farms: When to Use Each

Corona strengths:

  • Massive scene support (500M+ polygons, 10GB+ textures)
  • Consistent, clean output with fewer artifacts to manage
  • Excellent architectural and product visualization quality
  • CPU-only means predictable scaling (more cores = faster)

For more details on setting up Corona on our farm, see our Corona render farm landing page.

Corona weaknesses:

  • CPU-only (no GPU path), so slower per-core than V-Ray GPU
  • More expensive licensing (per-core, not per-machine)
  • Smaller plugin ecosystem than V-Ray

V-Ray strengths:

  • GPU rendering (RTX cards) — fast for complex scenes
  • Distributed, network rendering well-established
  • Larger ecosystem and third-party support

V-Ray weaknesses:

  • GPU memory limits scenes to ~50–100GB texture budgets
  • GPU resource competition — one heavy scene starves others

Our decision framework:

  • Corona for: Archviz (>200M polys), product visualization, studio work with massive asset libraries
  • V-Ray for: Shorter turnaround, GPU-available, animation rendering (frame farms)
  • Both: High-volume mixed workloads — spread across Corona and V-Ray pools

Optimization Techniques for Distributed Corona Rendering

1. Tile size tuning: Corona divides frames into tiles (default 32x32 pixels). Smaller tiles = finer-grained distribution but more network overhead. Larger tiles = fewer network roundtrips but imbalanced load if one tile is harder. We typically use 64x64 for 4K output, 128x128 for 8K.

2. Multi-pass rendering: Corona supports splitting a frame into multiple passes (direct light, indirect, AO, etc.), rendering each independently. This is faster than single-pass rendering and enables compositing flexibility. Our farm renders all Corona jobs as multi-pass by default.

3. Memory bandwidth: Corona's CPU rendering is memory-bound, not CPU-bound. Dual-socket machines with maxed-out RAM frequency (3200MHz+) render ~20% faster than standard RAM. We specify high-frequency memory in Corona-dedicated hardware.

4. Cache locality: Corona benefits from CPU L3 cache. Machines with larger caches (like the E5-2699 v4 with 55MB L3) render 10–15% faster. When provisioning Corona capacity, prioritize CPU cache over clock speed.

5. Network optimization: 10Gb LAN is worth the investment for Corona farms. Gigabit LANs become bottlenecks above 20 concurrent Corona renders. We've documented this; farms with 10Gb infrastructure see 25–30% faster tile transfer.

6. Scene preprocessing: Before farm submission, use Corona's built-in "Preprocess for distributed rendering" which caches geometry, materials, and textures locally. This reduces network traffic during actual rendering.

Deployment at Scale: Our Farm Architecture

Our Corona setup spans 12 dual-socket Xeon machines (528 total cores, ~480 usable after overhead). This configuration:

  • Handles 100–200 concurrent Corona jobs depending on scene complexity
  • Renders 3–5 minute frames (typical archviz 4K + heavy GI) in 20–30 minutes
  • Costs ~$6–8K per month in power, maintenance, and licensing
  • Generates ~$15–20K revenue monthly, yielding 2.5x ROI within 18 months of hardware deployment

For studios considering on-premise Corona farms, this scale is the breakeven point. Below 300 cores, cloud rendering (AWS, Google Cloud) is more cost-effective. Above 500 cores, on-premise scales better.

FAQ

Q: Can I use Corona with V-Ray in the same scene? A: No. A scene renders with one engine. However, you can render two passes (one Corona, one V-Ray) and composite in post-production. We don't recommend this due to complexity, but it's technically possible.

Q: Does Corona support nested distributed rendering (farm → sub-farm)? A: No. Corona's distributed mode expects a primary machine and worker machines on a flat network. Nested delegation isn't supported. Complex scenes are handled by scaling up a single farm, not federating farms.

Q: What's the typical overhead for distributed rendering? A: Network and tile composition overhead is 5–15%, depending on tile size and network latency. A 1-minute single-machine render might take 65–75 seconds distributed across 8 machines (1 minute ÷ 8 machines = 7.5 seconds, plus 5–15% overhead). Scaling breaks down above ~50 machines due to composition overhead.

Q: Can I render Corona over the internet to remote farms? A: Technically yes, but network latency makes it impractical. 100ms latency → visible delays in tile transfer. We recommend local gigabit LANs. For remote rendering, use cloud services (Chaos Cloud, AWS, Google Cloud) with optimized networking.

Q: Does Corona's license require internet connectivity? A: No. Corona licenses are node-locked via MAC address. Once activated, they work offline. This is ideal for secured studios without internet access. License keys are perpetual — no subscription renewal.

Q: Can Corona resume rendering if a worker crashes mid-tile? A: No. Distributed rendering restarts the entire job if any worker fails. This is why robust hardware and network monitoring are critical. A crashed worker mid-render wastes compute time. We maintain 99.5% worker availability via proactive hardware monitoring and thermal management.

Q: How do I handle Corona scene iterations on a farm? A: Use versioning. Each iteration is a separate file (scene_v01.max, scene_v02.max). Farm submissions are linked to file versions, enabling tracking and re-rendering specific iterations. We maintain a file database mapping job IDs to scene versions.

Q: Is Corona's output format flexible for downstream compositing? A: Yes. Corona can render to OpenEXR with arbitrary passes (direct, indirect, specular, diffuse, shadows, etc.), enabling full compositing flexibility. We render multi-pass OpenEXR by default, enabling post-production to adjust lighting, materials, and effects without re-rendering.

Q: What's the maximum scene size Corona can handle? A: Theoretically unlimited, limited only by available RAM. We've rendered 3GB scene files (1B+ polygons, 50GB texture library) without issues on 256GB RAM machines. Beyond that, we'd split the scene and composite in post-production.

Q: How does Corona handle motion blur and depth of field on farms? A: Both are computed during sampling — no separate post-processing. Motion blur is slightly slower due to extra ray casts, but depth of field has minimal overhead. Both work identically on farms as on local machines.

About Thierry Marc

3D Rendering Expert with over 10 years of experience in the industry. Specialized in Maya, Arnold, and high-end technical workflows for film and advertising.