Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CPR(9.1)							      CPR(9.1)

NAME
       cpr, cprview - cheesy polygon renderer and viewer

SYNOPSIS
       fb/cpr [	-a aspect ] [ -c rgbaz ] [ -w nx ny ] file ...

       fb/cprview [ file ...  ]

DESCRIPTION
       Cpr  creates an image from a list of polygons in	three dimensions.  Its
       output is a picture file, written to standard output.  The -w flag sets
       the  width and height of	the output file.  The default size is 640A480.
       The -a flag indicates the aspect	 ratio	of  the	 image.	  The  default
       aspect  ratio  is  the  ratio of	the output file's width	and height, in
       pixels.	It may be set independently to handle displays with non-square
       pixels.	 The  -c flag indicates	which channels the output image	should
       have.  Possible values are -crgb	(the default), -crgba, and -crgbaz.

       Cpr's input is a	simple textual command language, read from  the	 input
       files named on the command line (default	standard input).  Each command
       is a single character followed by arguments, separated by spaces.   The
       commands	are:

       v  fov near far ex ey ez	lx ly lz ux uy uz
	      Set  viewing  parameters.	  Fov  is the horizontal field-of-view
	      angle.  (ex, ey, ez) is the eye location from which the scene is
	      viewed.  These and all other coordinates are floating point val-
	      ues.  (lx, ly, lz) is the	location the eye is looking  at	 --  a
	      point  that the viewing transformation will map to the center of
	      the screen.  (ux,	uy, uz)	indicates the up direction.  It	is the
	      coordinate  of  a	point that the viewing transformation will map
	      somewhere	on the ray ascending from (lx, ly, lz) through the top
	      of  the screen.  Exactly where on	that ray the image of (ux, uy,
	      uz) is depends on	the field of view angle.  Near and far are the
	      distances	from the eyepoint to the near and far clipping planes.
	      Objects closer than near or farther than far will	 not  be  dis-
	      played.  Both near and far must be positive, with	far>near.

       t  x0 y0	z0 x1 y1 z1 x2 y2 z2 c0	c1
	      draw  a  triangle.  (x0, y0, z0),	(x1, y1, z1), and (x2, y2, z2)
	      are the corners of the triangle.	C0 and c1 are  the  colors  of
	      the  two	sides  of the triangle,	with c0	being the color	of the
	      side from	which the vertices are viewed clockwise.  Color	values
	      are  integers  with  absolute  values no larger than 255.	 Their
	      absolute values index a table of colors whose  entries  are  set
	      using  the  c  command (vide infra).  A positive color indicates
	      that the object should be	drawn in exactly that color;  a	 nega-
	      tive  value  means  that	the  polygon should be a shade of that
	      color computed according to the light source position.

       p  c0 c1	[ x y z	]* ;
	      draw a polygon.  C0 and c1 are the colors	of its two sides.  The
	      (x, y, z)	values are its vertices.

       h  c0 c1	nx ny x0 y0 x1 y1 file
	      draw  a height field from	a file of z values.  C0	and c1 are its
	      colors.  X0, y0, x1, and y1 give the range of x  and  y  values.
	      The  file	 contains an array of nx by ny floating	point numbers,
	      in row major order, in the native	floating-point	representation
	      of the machine running cpr.  This	is not portable.

       s  c0 c1	x y z r
	      draw  a  sphere of the given color, with center at (x, y,	z) and
	      radius r.

       {      push the transformation stack.  Cpr maintains a stack of	trans-
	      formation	matrices.  The following transformation	commands oper-
	      ate on the top of	the stack.  All	objects	to be drawn are	 oper-
	      ated on by this transformation.

       }      pop the transformation stack

       R  angle	axis
	      Rotate by	the given angle	(in degrees) about the specified axis,
	      which must be 0 for x, 1 for y, or 2 for z.

       T  dx dy	dz
	      Translate	by the given offset

       S  sx sy	sz
	      Scale by the given factors in the	x, y, and z directions.

       M  m00 m01 m02 m03 m10 m11 ... m33
	      Multiply the top	of  the	 transformation	 stack	by  the	 given
	      matrix.

       c  num r	g b a
	      Set  the	red,  green,  blue  and	I+- components of the numbered
	      color table entry.  Color	components must	be integers between  0
	      (black) and 255 (full on).

       l  x y z
	      Set the direction	that the light source shines from.

       b  r g b	a
	      Clear the	background to the given	color.

       Cprview	displays  a  wire  frame  version  of a	cpr image in a window.
       Dragging	with button 1 rotates the image.  Button 2 pops	 up  a	reread
       menu item that causes the input files to	be reread.  Button 3 pops up a
       menu containing output and exit items.  Output writes a	pic(1)	repre-
       sentation of the	display	on standard output.  Exit exits.

SOURCE
       /sys/src/fb/cpr.c
       /sys/src/fb/cprview.c

								      CPR(9.1)

NAME | SYNOPSIS | DESCRIPTION | SOURCE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=cpr&sektion=9&manpath=Plan+9>

home | help