StarPro™ Starfield Generator
Plug-in for Nuke, After Effects and LightWave 3D
© Maas Digital LLC 2020

Version: 2.3

Contact:
http://www.maasdigital.com/starpro
starpro-support@maasdigital.com

Latest Updates

Version 2.3:

- (Lightwave only) Adds support for LightWave 2020. Note: this update drops support for LightWave 2019 and earlier. Users who have not yet upgraded to LightWave 2020 should continue to use StarPro version 2.2.

Version 2.2:

- (Lightwave only) Headless ScreamerNet render nodes no longer require a StarPro license key to render un-watermarked images.

Version 2.1:

- Fixed incorrect drawing of very faint streaks across the entire frame.
- (Nuke only) Fixed incorrect star movement when combining both camera and node transforms.

Installation

For LightWave 3D:

1) Copy all files from the .ZIP download to your Lightwave plugin directory.

> on Windows, usually `C:\Program Files\NewTek\LightWave 3D\Plugins`
> on Mac OSX, usually `/Applications/Lightwave 3D/Plugins/`

2) Add starpro32.p (32-bit) or starpro64.p (64-bit) using Lightwave's "Edit Plugins" menu. StarPro will then appear as an Image Filter plugin.

For After Effects:

1) Copy all files from the .ZIP download to your After Effects plugin directory.

> on Windows, usually `C:\Program Files\Adobe\Adobe After Effects\Support Files\Plug-ins\Effects`
> on Mac OSX, usually `/Applications/Adobe After Effects/Plug-ins/Effects`

2) StarPro will appear in your After Effects "Effects & Presets" menu under "Generate."

For Nuke:

1) Copy all files from the .ZIP download to your Nuke plugin directory.

> on Windows, usually `C:\Users\[username]\.nuke`
> on Mac OSX, usually `/Users/[username]/.nuke`
> on Linux, usually `/home/[username]/.nuke`

2) Right-click in the comp tree and choose "Other->All Plugins->Update". Then StarProNK will appear under "Other->All Plugins>S".

Usage

For LightWave 3D:

1) Add the StarPro image filter to the scene (Effects->Processing->Add Image Filter->StarPro).

2) Open the plugin properties. Make sure the "Star Database File" is set to the star database file, like hipparcos3D.stars. (StarPro should find the file automatically, but if it doesn't, click the "Star Database File" button and pick the .stars file in your LightWave plugins directory. The location of the star database is saved so you will not need to specify it again.)

3) Render away!

For After Effects:

1) Create a solid black layer.

2) Apply the StarPro Generator effect to the layer.

For Nuke:

1) Create a StarProNK node (from "Other->All Plugins->S").

2) Set "Star Database File" to one of the star database files you've installed, like hipparcos3D.stars. (these files are included in your plugin .ZIP download, and more are available on the Maas Digital website).

3) Optionally, connect your scene's 3D camera to the "cam" input of the StarProNK node.

Licensing StarPro

Full StarPro licenses can be purchased on-line at http://www.maasdigital.com/starpro.

A StarPro™ license is for one site (one company and its employees) and includes unlimited render nodes, technical support via email (starpro-support@maasdigital.com), and free updates for the life of the product.

For LightWave 3D:

After your order is processed successfully, you will receive an email containing your License Name and License Key. Use the "Purchase & Register" button in the StarPro interface to enter your license information and unlock all features of the product. (close and re-open the StarPro interface panel for the changes to take effect).

StarPro keeps this license information in a file called `starpro.ini`, which it creates in the same directory where you put `starpro.p`. If you have multiple separate installations of Lightwave on your workstations and render nodes, you must copy `starpro.ini` to the plugin directory on each machine (or enter the license key again using the plugin interface), in order for StarPro to pick up the license info.

For After Effects:

After your order is processed successfully, you will receive an email containing a file called starpro.key as an attachment. Simply copy this file into your After Effects plug-ins folder (the same folder where you installed StarPro) and re-launch After Effects.

For Nuke:

After your order is processed successfully, you will receive an email containing a file called starpro.key as an attachment. Simply copy this file into your Nuke plug-ins folder (the same folder where you installed StarPro) and re-launch Nuke.

Settings

The default StarPro settings should produce good-looking stars. You can tweak the appearance with these settings:

Star Brightness
Controls the overall brightness of all stars. Typical values: 1.0-10.0. Try to avoid very high brightness settings (>50) because this may cause over-exposure and aliasing in motion-blurred stars.

Brightness Bias
Biases the distribution of star brightnesses without affecting the brightest stars. Values less than 1 make stars generally dimmer, values greater than 1 make stars generally brighter. Typical values: 0-2.

Star Saturation
Controls the saturation of star colors. Typical values: 0.0-1.0.

Tint Strength / Tint Color
Tints stars towards a particular color. With tint strength at 0, stars have their natural colors (as specified in the star database). With tint strength at 1, stars are completely taken over by the tint color. Tint strength between 0 and 1 tints the stars to a lesser or greater degree. Negative values and values greater than 1 are allowed as well. Note: tint is applied before "Star Saturation."

Maximum Luminance
Clamps the brightest stars to this value. This helps deal with the tremendous dynamic range of real star luminances. Typical values: 0.01-1.0. To disable clamping, set this to a high value like 999.

Luminance Threshold
Stars dimmer than this are not rendered. Usually stars dimmer than 0.01 make very little contribution to the image, and ignoring them speeds up rendering. Typical values: 0-0.05.

> Note: Maximum Luminance and Luminance Threshold take effect before Star Brightness. The final rendered brightness of a star with luminance `x` is proportional to:

> `x < luminance threshold ? 0 : star brightness * min(pow(x, 1/bias), maximum luminance)`

Star Spot Size
Scales the star spot size. This setting is resolution independent; StarPro automatically adjusts the spot size so that stars appear roughly the same size regardless of the output resolution. (StarPro also handles non-square pixels correctly). Note however that smaller is not always better, and there is a lower limit for the spot size, about 1.0 at 640x480 resolution. This is to prevent aliasing (flickering/blinking) artifacts which would occur if stars were smaller than one pixel. If you set spot size lower than this limit, StarPro renders stars dimmer instead of continuing to make them smaller. Typical values: 1.0-4.0 (1.0 corresponds to about one pixel at 640x480 resolution)

Star Aspect Ratio
Controls the aspect ratio of star spots. 1.0 draws each star as a perfect circle. Values greater than 1.0 make the star spots wider than they are tall. Values less than 1.0 make the star spots narrower than they are tall. Making stars slightly narrow can improve their appearance on interlaced displays by preventing them from falling between field lines.

> Note: if you are rendering non-square pixels, such as 720x480 NTSC or 16:9 anamorphic video, StarPro already compensates so that stars appear as perfect circles on the final display. You don't need to change the Star Aspect Ratio setting unless you really want non-circular stars on the final display.

Motion Blur Segments
Controls the number of linear segments in StarPro's motion blur. StarPro renders motion-blurred stars as one or more connected line segments. At a setting of 1, StarPro draws a straight line between the star's position at the opening and closing shutter times. Higher settings break the star's path into smaller divisions. For most typical scenes, 1 segment is good enough. More than 1 segment may be necessary for extremely fast camera moves. (if you want to render a simulated time-lapse exposure, with each star describing a huge circle in a single frame, you'll need a setting of 50-100 segments)

Parent Object
Parents the star field to an object, light, or camera in the scene. Only the rotation and scale of the object affect the stars; the object's position has no effect since the background stars are "infinitely" far away. Scaling the parent object can create some really psychedelic effects. Note: this setting is saved in the Lightwave scene but not in StarPro settings files.

Projection
This controls the 3D-to-screen projection used to render stars:

Perspective ("Persp") - the ordinary Lightwave camera projection
Hemispherical ("HemiSph") - a 360x180° hemispherical projection
Azimuthal Equidistant ("AzEqu") - a 360x180° azimuthal equidistant projection

The Hemispherical and Azimuthal Equidistant settings are useful for producing planetarium graphics. Most "dome master" systems use the Azimuthal Equidistant projection.

3D Stars
Enables 3D star field rendering (see below section on 3D Star Rendering). Note that the older database sky2k.stars does not support 3D; you must use one of the newer databases (hipparcos3D.stars or hiptyc3D.stars).

Parallax Crush
Reduces the amount of parallax motion on 3D stars by adjusting the distance scale. At a setting of 0, StarPro uses the real-world 3D position of the camera to render stars, with 1.0 unit of movement in your 3D app = 1.0 light year (see 3D Star Rendering). However, you may want to allow some camera movement through your scene to create a small amount of star parallax, without zooming through light years of travel. As you increase Parallax Crush up from zero, StarPro will reduce the amount of parallax motion produced on the stars, until it reaches 100, at which point there will be no more parallax motion, no matter how far the camera translates.

Treat Pixels as:

sRGB - assumes framebuffer pixels are encoded nonlinearly with the sRGB function. Linear Luminance - assumes framebuffer pixels represent linear luminance.

sRGB is the correct setting for most Lightwave users. Only choose Linear Luminance if you are sure that your image post-processing tools expect linear-luminance pixels. (If you display a linear-luminance image without proper gamma encoding, it will look very dark.)

(note: StarPro does not work well with the current release of Juan Jose Gonzalez' Special Projection Engine, since Juan's plugin does not support an alpha channel. Stars will appear "through" scene objects.)

Anamorphic DOF
This setting only takes effect when rendering non-square pixels with depth of field. If disabled, StarPro will make circles of confusion circular on the final display. If enabled, StarPro will emulate the squeezed circles of confusion produced by optical anamorphic lenses. (for an example of this effect, look at out-of-focus backgrounds in a film photographed with anamorphic lenses - out-of-focus points become tall and skinny ellipses rather than circles).

In general, only enable this setting if you want to simulate scenes photographed with anamorphic lenses, e.g. 16:9 anamorphic video or 2.35:1 anamorphic film. Do not enable this setting for non-anamorphic material like 4:3 NTSC, 1.85:1 film, or Super 35mm film.

Load/Save Settings
These buttons export or import all of the StarPro settings to a disk file.

3D Star Rendering

When 3D Stars is enabled, StarPro renders stars at their actual 3D locations. You can fly through the stars by moving the camera.

Note that the older star database sky2k.stars does not support 3D rendering. You must use one of the newer databases like hipparcos3D.stars or hiptyc3D.stars.

Scale
By default StarPro assumes a scale of 1 unit = 1 light year, with the sun at (0,0,0). You can translate, rotate, and re-scale the stars by parenting StarPro to an object using the Parent Object setting.

Stand-in Object
`hipparcos3D_standin.lwo`, included with StarPro, is a LightWave object containing points at the locations of the brightest 3D stars in the Hipparcos catalog. This is useful as a guide for setting up scenes.

If you parent StarPro's stars to the stand-in object, the final rendering will match any translation, rotation, and scaling you have applied to it.

Background Stars
Stars that have no range data, such as the 2 million background stars in hiptyc3D.stars, are rendered at "infinite" distance. The camera can never reach them no matter how far it is translated.

Notes

StarPro's rendering time is proportional to the image resolution, number of stars visible in the frame (and above luminance threshold), the star spot size, and the length of each star's motion blur streak. Even at HDTV resolution, StarPro should rarely add more than 20 seconds to your render time, with 5-10 seconds being more typical (tested on a 3GHz Pentium 4).

Correspondence with star charts

StarPro places the +Z axis at a right ascension of 6 hours. To point the Lightwave camera at a particular right ascension/declination, use the following formulas:

`Heading = 90 - RA`
`Pitch = -DEC`

Where "RA" and "DEC" are in degrees. e.g. to point at Ursa Major (the Big Dipper), which is at approximately RA 187.5 degrees (12h30min), DEC +55 degrees, set the rotation of the Lightwave camera to Heading -97.5 degrees, Pitch -55 degrees.

`STARPRO.INI`

StarPro makes a file called `starpro.ini` in the same directory as the plugin `starpro.p`. StarPro requires write access to initialize this file with the license information and default star database filename. Once `starpro.ini` is created, read-only access will suffice.

Over-exposure

Very high Star Brightness settings will cause stars to be severely over-exposed, which may result in aliasing (jaggy edges) along motion-blurred star streaks. The solution is to reduce the Star Brightness and/or use the Maximum Luminance setting to avoid making stars too bright.

Motion Blur

Lightwave's anti-aliasing setting does not affect the quality of StarPro's motion blur. There is only one setting: perfect! StarPro does obey Lightwave's motion blur on/off switch, so at least "Low" anti-aliasing is necessary to activate motion blur.

Depth of Field

StarPro follows Lightwave's depth of field settings by enlarging star spots that are out of focus. Due to a limitation of the Lightwave API, you must use the standard aperture height setting of 0.5906 inches (“35mm motion picture”). Other aperture height settings will cause incorrect calculation of the circle of confusion, so the star spots will be larger or smaller than they should be.

Targeted or Skewed Camera

Due to a limitation of the Lightwave API, StarPro cannot track the motion of the Lightwave camera if it is targeted to an object or skewed (parented to an object that is scaled, then rotated). For correct star motion you will need to avoid targeting the camera or parenting it to a non-uniformly scaled object.

Star Databases

StarPro ships with a primary database of 118,217 stars derived from the ESA's Hipparcos star catalog (hipparcos3D.stars). The Hipparcos catalog includes range data to enable 3D rendering.

StarPro also includes a secondary database of 297,643 stars derived from the Sky2000 star catalog from NASA's Goddard Space Flight Center (sky2k.stars). This database includes more stars than Hipparcos but does not have range data for 3D rendering. Prior to version 1.4, sky2k.stars was the only database distributed with StarPro.

Finally, at our website you can download a much larger database of about 2.4 million stars which combines the Hipparcos and Tycho-2 star catalogs (hiptyc3D.stars). This includes all of the 3D stars from Hipparcos plus over 2 million background stars. This database is excellent for rendering spectacular images of the Milky Way. Note that this database requires about 100MB of RAM and may take longer to render than the smaller databases, especially if Luminance Threshold is low.

Star Databases File Format

You can also substitute your own star database, as long as it adheres to the following format:

A star database file consists of a 32-byte header followed by any number of 32-byte binary star records. (StarPro determines the number of star records in a file by dividing the file size by 32, then subtracting 1 for the header)

The 32-byte header consists of the ASCII characters `STARPRO2` followed by 24 spaces.

Each following star record has the following format:

    struct star {
           double ra;    // right ascension, in degrees
           double dec;   // declination, in degrees
           float lum;    // linear luminance (not magnitude)

           unsigned char red, green, blue;
           // color - these values are assumed to be sRGB-encoded
           // and normalized such that the greatest of the three is 255
           // (color is sRGB-decoded then multiplied by 'lum' by the renderer)

           char pad[1]; // pad for alignment & sizing
           double range; // distance from sun, in light years (-1 for "infinite" distance)
    };

The struct is packed with no extra padding between members. The floats and doubles are stored in little-endian IEE754 format.

Support

For technical support, or to report a bug, email starpro-support@maasdigital.com.

Software and documentation © Maas Digital LLC 2011. All rights reserved.
StarPro™ is a trademark of Maas Digital LLC.