Computer Science 3710 - Computer Graphics -

Class Project - Ray-Tracing Using

POV-Ray

Site and Project Authored By:     Michael Munroe

Course Instructor:     Dr. S. K. Wismath

_________________________________________

A Scene from Writing on Stone Provincial Park

Southern Alberta, Canada

===> click on the images to view them full-size <===

Writing on Stone - Reference Image

1. Introduction

        For the project we were assigned in the Spring 2010 Computer Science 3710 - Computer Graphics class, I chose to model the hoodoos and surrounding scene from a photo I took while at the Writing on Stone Provincial Park in Southern Alberta. The location is found about fourty five minutes east of Lethbridge, around the Milk River area. The hoodoos are remarkable mainly for two reasons. First, they are a beautiful, natural formation found in nature, caused by wind and water erosion, and second, because they hold archaeological value. On the side of the river that I was not located on, there is a dig site where many hoodoos and other land formations have been found with writing on them. Hence, the name Writing on Stone Provincial Park. As a third, personal reason, I find the non-dig side of the park rather enjoyable to hike through and the hoodoos are fun to climb on!

POV-Ray Creation - Writing on Stone - Primary View

2. How I did it

        I chose to use POV-Ray for this project. It was the first software choice that I had heard about, and looked up. Upon looking into the website for the POV-Ray software, I found the tutorials that come with the software quite intuitive, useful and thorough. There was an option to acquire modelling software, but I chose, instead, to do all of the object work strictly through POV-Ray functions and code. I figured this would be a great way to acquire the knowhow of what makes the coordinates system work, as well as a better understanding of to what end the modelling software really can assist us in computer art/graphics.

        I chose to start by creating the ground form that I would place the rest of my scene on. After looking through the various projects from other years and on other sites, there are many images that abstract the ground to just a simple flat plane. That is not to say that I did not find the images interesting, I just found the images with more texture added to the ground to be more immersing.

        After picking through the countless tutorials on how to use just about every function POV-Ray has to offer, I chose to use a height field (or digital elevation model as I know it) that would give me somewhat random bumpiness to the surface. I then created a textured pigment that allowed me to color the ground in a way that looked somewhat like grass (albeit, not the prairie grass we find in the coulees here in Southern Alberta). After getting the ground placed in the scene, I chose to determine how to make trees, as I figured that these would be the most difficult objects to model.

        It turns out, that instead of finding a tutorial on how to create trees in POV-Ray, I found a useful generator include that would make all of my trees for me. I could now easily generate, scale and position my trees around my scene. I found this generator at TOMTREE - Tree Generator for POV-Ray, which was created for use by anyone who downloads it to make trees in POV-Ray. The tool comes with the choice of Birch, Olive and Palm trees. I chose to use Birch trees throughout my image. The bushes that are found in my image happen to be trees that are scaled and then placed lower than the plane to give the illusion of bushes. As useful as this tool came to be, it added exponentially to the rendering time of my project. From mere minutes to nearly an hour. Of course, with such an easy way to make trees, I could help but put a lot around the scene.

        After figuring out my trees, I moved on to the design of my hoodoos. To do this, I had the choice of merging and subtracting various shapes until I had an object that resembled a hoodoo, or I could go with a more advanced tool in POV-Ray. I chose to go the extra mile and determine a means of using the blob tool to create the base of my hoodoos. To make the disc-like tops, I chose to union several disc shaped cylinders to make the shape. I then textured each part of the hoodoo with an appropriate granite texture and colour.

        Once I had the code in place to create all the objects I needed for my scene, it was time to place the objects in my scene. This was, by far, the most painstaking part of the project, as many of the items had to be positioned using coordinates that were manually determined and entered. As I am still learning how to make my own functions and use the myraid of Mathematical aids in POV-Ray, I just did not have the knowhow to be able to auto generate all of the features based on equations. A few pieces were, mainly the trees, were placed using loop commands, but the rest are a tonne of object entries; each to position an object in the scene. Most of these manually posistion objects are the hoodoos.

        As a final touch to my project, I figured it would be neat to have some writing on stone in the scene, so I created a model sign for the park and used inlaid text on the stone-like sign to give it a nice look. There are three of these signs in the scene, with a few of the angles created depicting these signs. I used a spotlight on each to allow the words to appear easily to the viewer, even though I did not form actual light objects to mount on the ground in front of each sign. I would have found the results a little better with some realized spotlights, instead of just the light from them.

POV-Ray Creation - Writing on Stone - View 2

3. Difficulties

        The most difficult portion of the project was the postioning of the objects in my scene. Being that many were manually place, a lot of trial and error was used to determine adequate placement of features. The biggest issue I had with the placement scheme was the fact that my surface was uneven. This meant that I had issues with the static heights I was going to use to place objects. I spent many a time re-rendering the image over, and over just to find it needed more tweaking. After several tweaking attempts, some changes were made to level the ground a little more, and this made it much more manageable to place the features in the scene successfully.

        Another difficulty was in the shear volume of information there is available regarding ray-tracing images. I found that I spent far too much time with the tutorials, and this limited the amount of time I had to throw effort at the actual image. In the end, I am happy with the product I produced, although with more time I could create much more realistic looking hoodoos to go with the wonderful looking trees I was able to include.

        Lastly, I had some difficulties when it came time to render the final product. At first, I wanted to keep the environment I was working with small, so that I could manage the number of objects that would be needed, as well as the rendering time. In the end, I ended up making the workspace larger to handle the scale of the "far off" hoodoos in the principal image. This turned an adventure into a near nightmare at render time. With such a large space filled with so many objects, I didn't realize the workload to render it all. Had I been more experienced and thoughful, I would have scaled everything down and put the load on how to position the camera adequately to give the small objects a larger scale. The result? I could not render the image using any computer at my disposal at the university. I tried to render it on a lab machine in the main student computer labs in B7, and it could not be done. These lab machines run a 32-bit operating system, so anything that is run must be contained within ~3.25GB. It couldn't even make it through the main set of loops for generating my patch of trees; crashing due to lack of memory to bind all the objects. To my discovery, the detail that the tree generator I used uses causes a massive load on the binding process as it has to detail every leaf, branch, root, and possible seeds, too! At this stage in the project, I did not want to have to redesign all my trees, but I wasn't sure how I was going to make things work. Thank goodness for my computer at home, as it happened to have enough memory and power to get the job done. Total size in memory of the render? 20GB!!! Wow! I couldn't believe it. Short of benchmarks, I have never used that much pagefile on my computer before. I thought it was going to crash for sure. The largest it managed to get at the university was 15GB on the new machines in the New Media labs at B5 (they have 64-bit Windows XP), and it still crashed. Well, thanks to my oversupply of RAM in my computer, I was able to render my project without further design.

POV-Ray Creation - Writing on Stone - View 3

4. Conclusions

        Even though I felt rushed with the project part (after messing with tutorials for too long), I really enjoyed working on this. It was really enjoyable to learn how high quality still graphics are created. After putting in the effort with POV-Ray, I have a far greater respect for the people that make such images professionally. It took me forever just to make my simple image, I can only imagine the skill and effort it takes to make some of the really high quality stuff I saw in the POV-Ray Hall of Fame. In the end, I think I may dabble a little more in ray-tracing to see what other kinds of fun images I can muster, but I feel that I would need some serious art-skill injections before it became more than a hobby for me. It was also fun to see the limits of my current state of computing at work. It is not too often that I get to overpower a computer for a project, and this one put my new i7 computer to the test. It stood up to the challenge, but I have learned that one must always keep the hardware that will be rendering the job in mind when scaling all the details into the graphics!

POV-Ray Creation - Writing on Stone - View 4

_________________________________________

Disclaimer: This site is for the personal use of the author and those patrons who have been authorized to do so. The content contained within this website is the personal creation of the author, and the author reserves the copyright on all included properties.