Apo Treasures

Parallel Perspective

The existence of parallel perspective in Apophysis 3D hack is a gem of a treasure for those who enjoy stereoscopic images. It makes the process of setting up good views and getting stereo results that are consistently usable without eye-strain very easy. It is also the quality that makes it possible to create 3D Webscapes textures with Apophysis 3D hack.

Definition

Parallel Perspective is the special case where perspective lines DO NOT CONVERGE as distance from the viewpoint increases. It is different from normal perspective where perspective lines converge at a defined infinity point or points in the picture or off-picture but relating to the photo, drawing or illustration. Perspective lines themselves are usually not part of a picture but are an illustration to help us understand the effect of perspective. Another way of describing normal perspective is the observation that objects farther away appear smaller than the same objects nearby. By contrast in parallel perspective no matter how far away the object is it remains visibly the same size.

Parallel perspective can take a number of forms. Some location maps use a kind of parallel perspective. There might be a marker saying, “you are here,” and trails or roads lead to different areas within a region that is illustrated on the map. If it were a public park, little structure symbols might be used to show where bathrooms are available or camping sites, or picnic facilities exist. The symbols would be the same size for any location on the map. Trees and roads would be drawn to the same scale everywhere on the map.

Another kind of parallel perspective is used in what is termed “primitive art” which is a style typical of times in the past and the tendency of a number of modern artists to represent things in a simple style without attempting to portray a realistic perspective. Typically they show placid scenes of small towns or farms and houses. A painting might show several streets of a town with beautifully painted buildings on each street. The buildings pictured on a street at the back of the town would be essentially the same scale as buildings on the closest nearby street. Farm scenes might show cows and horses at the same size whether they are close to a road in the foreground or at the back of a distant fenced field.

Here are some images illustrating Parallel Perspective and comparing it to Normal Perspective. The first is Normal Perspective as you would experience in using a digital camera.

normalperspective Apo Treasures

Normal Perspective and Stereo Camera

Normal Perspective lines spread out from the viewpoint. Nearby objects thus appear larger than farther ones. Normal every-day reality is experienced this way.

Parallel Perspective is uniquely different and fun to work with.

parallelperspective Apo Treasures

Parallel Perspective

It’s easy to see that in order to capture a larger Fractal, the virtual camera’s Render Size is increased enough to show as much of the Fractal as you might want. Distant portions of the fractal have the same size as a similar feature close to the virtual camera.

This next picture illustrates how a stereo image is captured in Apophysis.

stereoparallelperspective Apo Treasures

Stereo Parallel Perspective

Apophysis Perspective

In the Adjust Panel <F5> of the 3D hack version of the program there is a control called “Perspective.” It’s purpose is to simulate the effect of normal perspective so that nearby objects seem larger than the same object farther away. The parameters for this setting can be adjusted to values that distort the image to an extreme degree. You could call that a “special effect” which generally you won’t want to use.

For most stereoscopic purposes the setting should be set to Perspective = 0 and left there. The following illustrations will show what this control does and why it is best left at 0 or only used in small amounts.

Stereoscopic images are generally pairs of very similar pictures. The precise differences between them are what make them stereoscopic. Their purpose is to provide image data to each eye that the brain can process into a recognition of depth placement in a volume of space rather than just placement on a flat surface. Yet the images themselves are flat because each eye has only a single perspective.

What changes are there between each eye’s perspective? If they are done correctly, there will be ONLY one definable change – a slight horizontal displacement of each image detail according to relative distance from the camera or viewpoint. Any changes other than strictly horizontal placement changes are errors and cause various degrees of eye stress as the mind attempts to connect the information in each picture in a recognizable way.

In order to render good stereo images with Apophysis the above information is important. When the Perspective setting is something other than 0, the result is that some image information will shift up or down during the attempt to define two stereo viewpoints.

Here’s an image designed by changing various parameters from those provided in a tutorial called Xaos Bubbles Tutorial, written by Nightmares06. Specifically, in Transform 1 the variation for Hexes=1 is changed to Hexes=0 and instead the Variation Flower=6 is used, along with the corresponding Variables, Petals=4 and Holes=1.125.

correct stereo pair Apo Treasures

Correct Stereo Pair

If you wish to try and duplicate these results, note that instead of setting the Pitch to 60 as instructed in the tutorial, the Pitch here is set to 90 and the Final Transform is enabled and used to create post_rotate_x = 0.333. This change approximates the desired view-angle and specifically makes it possible to use the Yaw control to establish accurate stereo-camera viewpoints.

adjust panel Apo Treasures

Adjust Panel Settings

transform editor fx Apo Treasures

Transform Editor FX enabled

The next picture has the value, Perspective=0.1. Note that the nearby flower is larger than it’s corresponding flower in the distance. This gives a nice perspective effect.

persp 0dot1 Apo Treasures

Perspective = 0.1

The image can be viewed in stereo because the discrepancies are minimal, but they do exist. Note the horizontal reference lines and the arrows which point out where image data has moved slightly up or down between the two side views.

As the Perspective value is increased or the Yaw is increased the errors tend to increase. The next illustration is not intended for stereo viewing as it uses a Yaw difference = 40 degree angle. This first picture has Perspective=0.1. Notice that the errors have increased especially for more distant background or closer foreground objects.

persp y40 0dot1 Apo Treasures

Perspective = 0.1, Extreme Yaw angle

The following final image has the same extreme Yaw difference angle=40 (+20 and -20), but this time there is NO perspective. The setting is Perspective=0. In this case, even though the change of angle is extreme the image details remain perfectly horizontal, they don’t move up or down at all. This illustrates what is happening in Apophysis and how to get excellent stereo results. It is possible to introduce small amounts of perspective for the effect as long as you keep it really small.

persp y40 0 Apo Treasures

Extreme Yaw difference, no perspective

 

Add a Comment

Apo Bugs

I encounter various bugs in Apo quite often. That’s part of the nature of the program and a person learns to work around those bugs. For beginners who haven’t encountered them yet, they can prove puzzling or confusing.

Eventually I hope to list as many of them here as can be identified. Maybe it will help beginners and maybe a programmer working on updating the code will find it useful in making the program better! If you know of specific bugs and a work-around method, feel free to comment about them here, or send me an email with the information.

I’ll start with a simple one.

While working in the “Adjust Panel” one can enter numerical values directly by selecting the value already there, then typing in the new value. For some reason this process frequently stops working. The program fails to update, despite entering the number and clicking ENTER on the keyboard.

That is partly why I wrote the Rotate Pitch Script because I found that when the above problem occurs, the script will force the values to update correctly.

One effect of the bug is that as you work with Pitch=90 and make edits, it is useful to occasionally look at the fractal from a different vantage point such as Pitch=0. Often after switching back and forth by manually entering a value, the program refuses to recognize the activity, but the little Pitch value window will show the value I’ve entered, making it seem as if it changed, but the preview remains the same.

A similar effect of this bug is that after working at Pitch=90, then opening the Mutation panel, the central window in that panel will show the current side view, but the previews are all rendered from Pitch=0. Often if one of those Mutation options is clicked, the main preview will redraw showing the new flame from a Pitch=0 direction, but the Pitch control box fails to update and still shows Pitch=90.

This causes confusion because it is false information.

To verify the actual value, click on the word “Pitch” and start to slowly drag the mouse either left or right. This forces the value to update and begin incrementing as you drag. If it has been showing false information of Pitch=90 while the program is really working from Pitch=0, then this click drag action will cause the values to instantly change from the visible but false 90, showing that now you are adjusting values near Pitch=0.

There seems to be only two solutions to this issue. Use a script to control the values, or use the click-drag action of your mouse. The issue with Click-drag is that it can be difficult to arrive at the precise value you’re trying to get to.

 

Add a Comment

Gradient Files

ApoMap

This little program is helpful in designing your own gradients but it’s not the only way to go.

In the Adjust panel under the Gradient tab there are four small buttons on the bottom right corner. The first one is “copy gradient to clipboard.” The next is “paste gradient from clipboard.” The third one is “open gradient browser.” The last one says “Smooth Palette.”

The first two are pretty self explanatory but it might be helpful to understand the last two. The gradient browser is a handy tool to open and explore previously saved collections of gradients for Apophysis. When you save gradients from the program it saves them in container files called UGR files. Each one can contain a large number of gradients identified with names. It is helpful to organize them so that only similar gradients exist in each one but that’s up to you to organize.

The smooth palette button opens a menu where you can navigate to any bmp or jpg image file. Once you’ve selected an image file, the program will analyze the file and create a new gradient based on colors that it samples at random from the image. For best results, prepare ahead of time by copying just small portions of image files from which to sample. Often a single source image can provide many smaller color samples.

You can use any digital image as a source for gradients, including painting small image files in a graphics program. This gives you a bit more control over the results.

Once the gradient is made, it loads into Apo and your Flame will be painted with the new colors. Remember to Right-click the gradient area and save the gradient in a convenient UGR file.

Gradients can be loaded into ApoMap from the clipboard, which makes it convenient for fine tuning a gradient to match your current flame, or you can design new gradients from scratch by drawing with the RGB tool.

The thing to be aware of is that ApoMap saves gradients in Fractint map files instead of UGR files. There is only one gradient in each map file. The gradient browser can open both UGR and MAP files.  A directory for Map files can fill up with a couple dozen files quickly, but using them in Apo one at a time is not very convenient. To get better organized it’s handy to stuff all those Map files into one or two UGR files.

Datagram has written a handy utility that will do exactly that. It works real well and is very convenient and It’s called the Map-to-UGR-Converter-Compiler.

 

Add a Comment

Rendering By The Slice

There are two ways to think about the “slice function”…

One way is that Apophysis does it’s own internal slicing when you have an image render that requires more memory than you have installed on your computer. Say your image render needs 500 MB but you only have 364 MB of physical RAM available. If you check the box to limit the memory usage, Apo will automatically break the task into “slices” and render them one at a time and compile them together into one image when the process is done. Say you check it and use the value of 128 MB as a limit, as it begins working you will see a note at the bottom informing you that it is working on “slice 1 of 4.”

The second way is to slice up a big image manually so that it doesn’t render all at once, occupying the next two weeks of your computer time!

The goal is to render in smaller time segments so that You can get full access to your computer once in awhile and eventually still get that larger render accomplished. After they are rendered they get assembled as layers in Paint Shop Pro or Photo Shop. The following gives directions for working in PSP.

Note:

The following instructions are based on certain assumptions about how Apophysis is being used.

  1. The renderings being discussed are rendered without transparency, or if rendered with transparency have been combined with a black background so that what is being worked on is no longer transparent. The reason this is important – transparent renderings cannot be overlapped and combined as described here. To combine transparent renderings they will need to be trimmed for an exact edge-to-edge fit. The same may be true if the desired background is a gradient of colors or a non-black background.
  2. The alignment options assume that the Adjust panel/Camera tab/Rotation control remains at 0 (zero). If this control is not ZERO it will change how the alignment of the slices can be accomplished. In most cases, any rotation of the flame can be accomplished without having to make use of the “Camera Rotation” control.

Open one of your rendered slices and enlarge the Canvas or start a new image that is big enough for all your layers. Load each image as a New Layer, and align the layers using “difference” as the method which makes the overlap areas turn black when it’s properly aligned. Assuming your background color is BLACK, change the layer properties to “Lighten” which allows the layers to blend and minor differences from render to render are not a problem and won’t create a visible line. When you are done, flatten all the layers into one layer.

Slicing

Here’s an example. Say you want an image that is 3000 pix wide x 2000 pix high. The “Scale” property in Apo is directly tied to the “Width” factor but NOT tied to height. So the key here is to leave the Width=3000.

The slicing will be done only on the height factor.

This example has a finished image that is 2000 pix high so let’s make 10 slices, each slice 250 pixels high. The reason is that you want some overlap for the later compositing process. You also want to make sure you capture the full desired height of your flame. If there is extra area you can easily crop the assembled image.

Start by correctly scaling and centering your desired view in the preview window. Then set the Image Width and Height to the overall values you want, for this example it is 3000 x 2000, click update, then save your parameters.

Before you start slicing you need more information.

Go to the “Adjust panel” and click the “Camera” tab. Make a note of what values exist for the “X position” and the “Y position”. These represent the center of your desired view for the whole thing. For this process you will be changing the “Y position” values, but do NOT change the “X position” values.

The next task is to find out where the top of your image is and the bottom. You do this in the Main panel preview window.

In this example (yours will be different) my overall center is Y=0.005.

Click and drag your preview from very near the top of the preview window and approximately in the center from left to right. Accuracy here is not important. Drag that point down till your pointer is as close to the very center of your preview window as you can gauge it by simply looking at it. Release the mouse, and the “Y position” value will update in the “Camera Tab” of the “Adjust Panel.” Write that value down as it’s the location of the top of your image.

In this example the value is Y= -0.997. (yours will be different)

Now click near the bottom of your preview window, which is where the actual center of your image is at the moment, and drag that point all the way to the top of the preview window. When you release the mouse, the “Y position” data will update showing the location of the bottom of your image.

The bottom of this example is located at Y=1.061. (yours will be different)

Using the calculator, the distance between the top and bottom is found by adding these numbers together, and ignoring the minus sign for the top value. For this example the total distance for Y=2.058.

We want 10 divisions and we will start at either the top or bottom. That leaves 9 increments to fill up the rest of the space. In this example let’s start at the top and work down.

2.058 / 9 = .2286667 (rounded off)

This is the incremental distance between the centers of each slice.

Starting with -0.997, add your increment of .228667 and get -0.768333.
Next, add the increment again and get -0.539666, and so on until the last increment yields +1.0610003. You now have the centers for each of the 10 slices, each of which will be 250 pixels high.

Now you’re ready to set up the slices

Go to the “Adjust Panel” and click the “Image Size” tab. Make sure that the check box for “Maintain Aspect Ratio” is UNCHECKED! If you followed all the directions above the Width will show 3000 and the height will show 2000. Select the “Height” value and change it to read 250. Click the “Apply” button and the preview should update to a very wide but not tall slice, 3000 x 250.

Next, click the “Camera” tab and go to the “Y position” box. Eliminate the value already there and enter the value for the top of your image. In this example that would be -0.997. If the number already there has many digits you might have to click and drag carefully to select the whole thing and use -backspace- on the keyboard. When you’re sure it’s clean, enter your top value. Then click -Enter- on the keyboard.

The preview window should now be positioned so that it is centered on the top of your image. Save this parameter-set using an appropriate name, and a number designating the first of 10 slices.

Go back to the “Y position” box and enter the next position down in your list. In the example case, -0.539666. Click -Enter- and then save the parameters as your 2nd of 10 slices. Continue till all 10 are saved.

At your leasure, select one of those parameters and render it. When they are all rendered, assemble them in a graphics program.

 

Add a Comment

devArt Thumbs

Recent Comments