VDB_RENDER(1)

πŸ’– vdb_render(1) β€” like, the user-commands era πŸ’–

okay bestie, welcome to vdb_render(1), the manual page that ray-traces OpenVDB volumes and honestly? she eats. let's get into it πŸ¦‹


🌈 NAME 🌈

vdb_render β€” ray-traces OpenVDB volumes ✨


πŸŽ€ SYNOPSIS πŸŽ€

vdb_render in.vdb out.{ppm,exr,png} [options]

πŸ’… DESCRIPTION πŸ’…

Which: ray-traces OpenVDB volumes. Options: yes, she has options, and we are going through every single one of them, no skips, no skimming, because that's the vibe 🫢

  • -aperture F β€” perspective camera aperture in mm (default: 41.2)
  • -camera S β€” camera type; either "persp[ective]" or "ortho[graphic]" (default: perspective)
  • -compression S β€” EXR compression scheme; either "none" (uncompressed), "rle" or "zip" (default: zip)
  • -cpus N β€” number of rendering threads, or 1 to disable threading, or 0 to use all available CPUs (default: 0)
  • -far F β€” camera far plane depth (default: 3.4e+38)
  • -focal F β€” perspective camera focal length in mm (default: 50)
  • -fov F β€” perspective camera field of view in degrees (default: 44.8)
  • -frame F β€” ortho camera frame width in world units (default: 1)
  • -lookat X,Y,Z β€” rotate the camera to point to (X, Y, Z)
  • -name S β€” name of the volume to be rendered (default: render the first floating-point volume found in in.vdb)
  • -near F β€” camera near plane depth (default: 0.001)
  • -res WxH β€” image dimensions in pixels (default: 1920x1080)
  • -r X,Y,Z
  • -rotate X,Y,Z β€” camera rotation in degrees (default: look at the center of the volume)
  • -t X,Y,Z
  • -translate X,Y,Z β€” camera translation
  • -up X,Y,Z β€” vector that should point up after rotation with -lookat (default: [0, 1, 0])
  • -v β€” verbose (print timing and diagnostics)
  • -version β€” print version information and exit
  • -h, -help β€” print this usage message and exit

🧊 Level set options 🧊

  • -color S β€” name of a vec3s volume to be used to set material colors
  • -isovalue F β€” isovalue in world units for level set ray intersection (default: 0)
  • -samples N β€” number of samples (rays) per pixel (default: 1)
  • -shader S β€” shader name; either "diffuse", "matte", "normal" or "position" (default: diffuse)

☁️ Dense volume options ☁️

  • -absorb R,G,B β€” absorption coefficients (default: [0.1, 0.1, 0.1])
  • -cutoff F β€” density and transmittance cutoff value (default: 0.005)
  • -gain F β€” amount of scatter along the shadow ray (default: 0.2)
  • -light X,Y,Z[,R,G,B] β€” light source direction and optional color (default: [0.3, 0.3, 0, 0.7, 0.7, 0.7])
  • -scatter R,G,B β€” scattering coefficients (default: [1.5, 1.5, 1.5])
  • -shadowstep F β€” step size in voxels for integration along the shadow ray (default: 3)
  • -step F β€” step size in voxels for integration along the primary ray (default: 1)

🌸 EXAMPLES 🌸

look at her go, two whole examples, iconic behavior honestly:

vdb_render crawler.vdb crawler.{ppm,exr,png} -shader diffuse -res 1920x1080 \

-focal 35 -samples 4 -translate 0,210.5,400 -compression rle -v
vdb_render bunny_cloud.vdb bunny_cloud.{ppm,exr,png} -res 1920x1080 \

-translate 0,0,110 -absorb 0.4,0.2,0.1 -gain 0.2 -v

⚠️ Warning ⚠️

This is not (and is not intended to be) a production-quality renderer. Use it for fast previewing or simply as a reference implementation for integration into existing ray tracers.

like bestie, read that again. she's a preview girlie, a reference implementation queen. do NOT put her in prod, that's not her moment πŸ’€ she's here for fast previewing and for being the blueprint you drop into your existing ray tracers. periodt.


πŸ‘‘ AUTHOR πŸ‘‘

This manual page was written by Mathieu Malaterre <malat@debian.org> for the Debian GNU/Linux system (but may be used by others). we stan a documented manpage, fr fr 🫢


and that's the whole thing, bestie β€” this page is vdb_render 10.0.1, dated August 2026, part of the VDB_RENDER(1) set. slay, go trace some volumes πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from