TITLE: "Mate in two." NAME: Peter Jones COUNTRY: Australia EMAIL: pjones@powerup.com.au WEBPAGE: http://www.powerup.com.au/~pjones/creative/raytrace.htm TOPIC: Glass COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT. JPGFILE: pj-chess.jpg ZIPFILE: pj-chess.zip RENDERER USED: POV-Ray 3.0 for Windows TOOLS USED: PaintShop Pro 4.10 (file conversion); AutoCAD (shape of knight,angle calculations) RENDER TIME: 20h21m Total (Box lid 17h35m; Box side 0h31m; Scene 2h15m) HARDWARE USED: P133 with 24 Mb RAM IMAGE DESCRIPTION: "Mate in two." The game is almost over. It is White's move - and the game can all be over in two moves, if only the player could find the right move. Can you? (Solution available if you want it, from my web page! :)) DESCRIPTION OF HOW THIS IMAGE WAS CREATED: There were several steps in the creation of this image. The Chess Pieces: Of course, a chess board is pretty useless without pieces, so they were the first things to be created. Three bases were created: small for the pawns; medium for the knights, rooks, and bishops; large for the queen and king. Onto these were placed the shapes of the pieces, most of which are "lathe" objects with various CSG additions and/or subtractions. The knight was the difficult one - after fiddling with a few methods, I finally drew the outline in an AutoCAD pline, then extracted the vertex coordinates with a custom lisp routine. I fed the coordinates into a POV-Ray "sweep" object. The pieces are defined in "CHESSSET.INC". The Piece Textures: It didn't take long into the development of the pieces (sometime before I finished rendering the first pawn, in fact) before I confirmed that GLASS is a truly horrendous material to work with, as far as ray tracing is concerned anyway! I wanted quick 'n easy textures to use while building my scene (black and white plastic, in fact), but I also wanted the ability to switch easily between the textures. The result was a #declare variable which can be used to select any of the predefined textures in "CHESSTEX.INC". (I have allowed for at least six, and more can be added fairly easily, but at the time I write this file I only have plastic and glass defined.) The Chess Board: After getting my pieces set up, I decided to make my chess board configurable as well. This resulted in a board which can have any size squares, any width border, and any thickness - and as an added bonus a complete set of pieces positioned correctly is also #declared using a #switch statement within a #while loop. At the moment the board itself is restricted to wood textures, but somewhere along the way I may make that configurable too. (I only hope that, one day, I have a reason to actually use all the flexibility I've programmed into it...) The Box: To create the image on the lid of the box, I rendered the file "CHESSBOX.POV" at 800x600 with an anti-alias factor of 0.1, then added the borders and text in PaintShop Pro to make an image_map. After rendering this image (which took 17h35m) I spent a little while juggling the filter (the "f" in rgbf) values of my glass textures, but this would not have much impact on the picture I've used (and I certainly wasn't going to waste any time rendering it again...) I used the final values with "CHESSBX1.POV" to produce the secondary picture of the two pawns on the side of the box. (Created at 640x480, no anti-aliasing, render time approximately 31 minutes. This was the image that sent me scuttling to find "max_trace_level"!) Then, of course, they weren't visible in the final image... The trickiest part of making the box was the maths required to prop the lid at an angle against the lower part of the box. The Table: A simple glass table with chrome supports. The Room: A simple room with four walls, a nice planking floor, and a plain ceiling. There is actually no way to enter or leave the room: I've got plans for making doors and windows in the walls, but I didn't bother for this scene. The ceiling has two light globes in it: a bright white one in the centre of the room, and a yellow one in the corner behind the camera. The Game: The position of the game in progress is taken from a chess puzzle by Taverner (1889). I got the puzzle from ChessMaster 5000. The pieces were placed on the board, and all excess pieces have been removed by the players. The piece of paper is there to: (a) protect the table, and (b) give the white pieces something to reflect/refract. It is just a scan of the first thing that came to hand: the back of my most recent Mastercard statement :-) To calculate the positioning of the pawns lying on their sides I drew up the profile in AutoCAD, determined the two most "outstanding" points, and rotated the profile appropriately. Then I could easily find the rotation angle and the offset distance of the centre... Before doing the final, full-size rendering of the image, I tweaked the texture of my white pieces, giving them the faintest hint of blue. Then, after doing the final render (2h15m) I realised that one of the black knights had, um, escaped... I considered changing the title of the image to "One of our knights is missing", but finally opted to put him back into the picture and run it again. The ZIP file contains all of the POV and INC files required to recreate the scenes. I have also included GIF conversions of the TGA files I used for the image maps. I haven't included the scan I used for the A4 sheet; any appropriately sized image would do... The contents of the ZIP file, then, are: PJ-CHESS.POV Source for the submitted image; CHESSSET.INC Definitions of the chess pieces; CHESSTEX.INC Selectable textures for the pieces; CHESSBRD.INC Chess board, configurable; CHESSBOX.INC Definition of box and lid; FURNITUR.INC Definition of the table; ROOM.INC Definition of the room; CHESSBOX.POV Source for image on top of box lid; CHESSBX1.POV Source for image on side of box lid; CHESSBOX.GIF GIF files of post-processed image maps CHESSBX1.GIF used on the box lid. CHESSBX2.GIF Post-Processing Applied with Paintshop Pro: Converted the image to JPG format; Applied a gamma correction of 85; Added title and name to bottom left corner.