r.out.pov(1)

✨ r.out.pov ✨

okay bestie, welcome to r.out.pov, straight outta the GRASS GIS User's Manual πŸ’–


🌈 NAME 🌈

r.out.pov β€” it converts a raster map layer into a height-field file for POV-Ray. that's it, that's the whole job, and it ate πŸ’…


πŸŽ€ KEYWORDS πŸŽ€

raster, export, output β€” iykyk πŸ¦‹


⭐ SYNOPSIS ⭐

r.out.pov
r.out.pov --help
r.out.pov input=name output=name  [hftype=integer]   [bias=float]
[scale=float]   [--overwrite]  [--help]  [--verbose]  [--quiet]  [--ui]

🫢 Flags:

  • --overwrite β€” allow output files to overwrite existing files, so like, it will absolutely clobber what's already there, no hesitation πŸ’€
  • --help β€” prints the usage summary, your lil cheat sheet fr fr
  • --verbose β€” verbose module output, it's giving chatty ✨
  • --quiet β€” quiet module output, the strong silent type πŸ™ˆ
  • --ui β€” force launching GUI dialog, main character energy for your mouse πŸ‘‘

🌸 Parameters:

  • input=name [required] β€” name of input raster map, bestie you literally cannot skip this one
  • output=name [required] β€” name of output povray file (TGA height field file)
  • hftype=integer β€” height-field type (0=actual heights 1=normalized)
  • bias=float β€” elevation bias
  • scale=float β€” vertical scaling factor

πŸ’œ DESCRIPTION πŸ’œ

so r.out.pov converts a user-specified raster map layer (map==name) into a height-field file for POVray (tga==name). iconic behavior tbh 🧚

the hftype==value option β€” where value is either 0 or 1 β€” specifies the height-field type. when the user enters 0, the output will be actual heights. if you enter 1, the cell-values will be normalized. and if hftype is 0 (actual heights), the bias==value can be used to add or subtract a value from heights. use scale==value to scale your heights by value. πŸ“

the GRASS program r.out.pov can be used to create height-field files for Persistence of Vision (POV) raytracer. POV can use a height-field defined in Targa (.TGA) image file format where the RGB pixel values are 24 bits (3 bytes). a 16 bit unsigned integer height-field value is assigned as follows: RED = high byte, GREEN = low byte, BLUE = empty. 🌈

not me explaining byte assignments like it's gossip but it IS the gossip

πŸ”₯ EXAMPLE πŸ”₯

an example Povray script file may look like this:

#include "shapes.inc"
#include "colors.inc"
#include "textures.inc"
#declare Scale = 7;
light_source { <40000, Scale*3000, 5000> color MainLight }
camera {
   location < 23000, Scale*2000, 0>
   angle  90
   look_at < 23000, Scale*1400, 5000>
}
height_field  {
   tga "dem.lr.tga"
   smooth
   water_level 0.11  // 726 / 6553.6 = 0.111
    texture {
      pigment {
          image_map { // image is always projected from -z, with front facing  +z, top to +Y
             ppm "map.lr.ppm"
             once
          }
          rotate x*90 // align map to height_field
      }
    }
   finish {
          ambient 0.2         // Very dark shadows
          diffuse 0.8         // Whiten the whites
          phong 0.2           // shiny
          phong_size 100.0    // with tight highlights
          specular 0.5
          roughness 0.05
   }
   scale < 14500, Scale*6553.6, 13000 >
   translate <18300, 0, 1100>
}

like look at that script, it's giving cinematic 😭πŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

Klaus D. Meyer, GEUM.tec GbR, eMail: GEUM.tec@geum.de β€” ty for your service king 🫑


πŸ¦‹ SOURCE CODE πŸ¦‹

available at: r.out.pov source code (history)

accessed: Saturday Jan 17 05:40:52 2026

Main index | Raster index | Topics index | Keywords index | Graphical index | Full index


and that's the whole page bestie!! πŸ’– this was the GRASS GIS 8.4.2 Reference Manual, Β© 2003-2025 GRASS Development Team, running on GRASS 8.4.2, accessed Saturday Jan 17 05:40:52 2026 β€” slay, periodt, go make some height fields πŸŒΈβœ¨πŸŽ€

πŸ“¦ where this page comes from