openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-devel] 3dsMax OpenEXR support


From: Greg Ward
Subject: Re: [Openexr-devel] 3dsMax OpenEXR support
Date: Thu, 17 Apr 2003 14:09:28 -0700

I agree with Florian that we shouldn't introduce a redundant attribute. Since the horizontal view angle is alread covered by the screenWindowWidth attribute, I suggest we not adopt the xViewAngle attribute I suggested.

However, I want to add to my earlier e-mail, as there are a few other attributes I would like included (or considered for inclusion). I'm using these already in Photosphere 1.0 (free OS X application for a limited time from "http://radsite.lbl.gov/pickup/photosphere.tar.gz";):

"gmtOffset"   a FloatAttribute that records the difference
                between the recorded time ("capDate") and Greenwich mean time.

"longitude"   a FloatAttribute that records the degrees west longitude
                where the image was taken.

"latitude"            a FloatAttribute that records the degrees north latitude
                where the image was taken.

"expTime"             a FloatAttribute that records the exposure time (in 
seconds)
                for this image.

"aperture"            a FloatAttribute that records the lens aperture (in 
f-stops)
                for this image.

"asa"         a FloatAttribute that records the effective ASA of the film or
                camera response.

"view"                a StringAttribute that records the specific view 
parameters
                used to generate this image.  I use the Radiance view 
specification
                (see below for details), but you can use something else I 
suppose.

-Greg

------------------- Radiance view specifications (from <http://radsite.lbl.gov/radiance/man_html/rpict.1.html>):

-vtt
Set view type to t. If t is 'v', a perspective view is selected. If t is 'l', a parallel view is used. A cylindrical panorma may be selected by setting t to the letter 'c'. This view is like a standard perspective vertically, but projected on a cylinder horizontally (like a soupcan's-eye view). Two fisheye views are provided as well; 'h' yields a hemispherical fisheye view and 'a' results in angular fisheye distortion. A hemispherical fisheye is a projection of the hemisphere onto a circle. The maximum view angle for this type is 180 degrees. An angular fisheye view is defined such that distance from the center of the image is proportional to the angle from the central view direction. An angular fisheye can display a full 360 degrees. Note that there is no space between the view type option and its single letter argument.

-vp x y z
Set the view point to x y z. This is the focal point of a perspective view or the center of a parallel projection.

-vd xd yd zd
Set the view direction vector to xd yd zd.

-vu xd yd zd
Set the view up vector (vertical direction) to xd yd zd.

-vh val
Set the view horizontal size to val. For a perspective projection (including fisheye views), val is the horizontal field of view (in degrees). For a parallel projection, val is the view width in world coordinates.

-vv val
Set the view vertical size to val.

-vo val
Set the view fore clipping plane at a distance of val from the view point. The plane will be perpendicular to the view direction for perspective and parallel view types. For fisheye view types, the clipping plane is actually a clipping sphere, centered on the view point with radius val. Objects in front of this imaginary surface will not be visible. This may be useful for seeing through walls (to get a longer perspective from an exterior view point) or for incremental rendering. A value of zero implies no foreground clipping. A negative value produces some interesting effects, since it creates an inverted image for objects behind the viewpoint. This possibility is provided mostly for the purpose of rendering stereographic holograms.

-va val
Set the view aft clipping plane at a distance of val from the view point. Like the view fore plane, it will be perpendicular to the view direction for perspective and parallel view types. For fisheye view types, the clipping plane is actually a clipping sphere, centered on the view point with radius val. Objects behind this imaginary surface will not be visible. A value of zero means no aft clipping, and is the only way to see infinitely distant objects such as the sky.

-vs val
Set the view shift to val. This is the amount the actual image will be shifted to the right of the specified view. This is option is useful for generating skewed perspectives or rendering an image a piece at a time. A value of 1 means that the rendered image starts just to the right of the normal view. A value of -1 would be to the left. Larger or fractional values are permitted as well.

-vl val
Set the view lift to val. This is the amount the actual image will be lifted up from the specified view, similar to the -vs option.


Begin forwarded message:

From: Florian Kainz <address@hidden>
Date: Tue Apr 15, 2003  2:52:50  PM US/Pacific
To: Greg Ward <address@hidden>, address@hidden, address@hidden
Subject: Re: [Openexr-devel] 3dsMax OpenEXR support

I guess we forgot to document screenWindowWidth and screenWindowCenter;
they are listed in ImfHeader.h, but there is no explanation anywhere.
We will add an explanation to our "Technical Details" web page.

Florian


Greg Ward wrote:

This makes sense, but I wasn't aware of the screenWindowWidth and
screenWindowCenter parameters. Where are these documented? Is there a
complete list of defined EXR attributes somewhere?  I was going by
<http://www.openexr.com/details.html>.

-Greg

From: Florian Kainz <address@hidden>
Date: Tue Apr 15, 2003  11:38:59  AM US/Pacific
To: Drew Hess <address@hidden>
Cc: address@hidden
Cc: Steve Blackmon <address@hidden>
Subject: Re: [Openexr-devel] 3dsMax OpenEXR support

An xViewAngle attribute may not be necessary; the OpenEXR file header
already has a few required attributes that are meant to describe the
view pyramid.

- pixelAspectRatio (type float) defines the aspect ratio (width over
  height) of a single pixel.  Together with the display window,
  pixelAspectRatio defines the image's aspect ratio.

- We assume that the image is produced by a pin hole camera with the
  pin hole at the coordinate origin.  The camera points into positive
  z direction, and projects the image onto the z == -1 plane (the
  "projection plane".

  The (display window of) the image stored in the file corresponds to
  a rectangular region in the projection plane, the "screen window".
  The screen window's center and width are defined by the header's
  screenWindowCenter (type V2f) and screenWindowWidth (type float)
attributes. The screen window's height is equal to screenWindowWidth
  divided by the image's aspect ratio.

This definition of the view pyramid is more complicated than the
xViewAngle, but it allows oblique view pyramids where the projection
center does not coincide with the center of the image (for example,
in photographs taken with wide-angle shift lenses).  If necessary,
the definition can also be expanded for orthographic views.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]