EMAIL: tuabihtucl@yahoo.fr NAME: Thibaut Jonckheere TOPIC: Music COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT. TITLE: Cello COUNTRY: France RENDERER USED: Povray 3.5 TOOLS USED: Wings3D to model all the objects RENDER TIME: short - a few minutes (on pentium 4) ADDITIONAL REMARK : the design of the cello-character is inspired from an illustration by Laure Massin (book: "Le piano des couleurs", in French) DESCRIPTION OF HOW THIS IMAGE WAS CREATED: No post-process here. Everything was modelled in Wings3D, and rendered with Povray 3.5 The edges around the different objects, which help to give the cell-shaded look, were obtained with a Pov macro. As I am finishing and submitting this image in a rush before the deadline, I don't have time to give the sources (too many files -one for the contour of each object in the present state- I would need to clean and order). If you are interested, just drop me an email. Anyway, I plan to post the macro and an example on news.povray.org soon. Here is a short explanation of the method used to get the edges : - the method works only for mesh objects (hence the use of Wings3D to model everything) - "silhouette edges" : the macro looks in turn at each edge of the mesh object; for each edge, it looks at the 2 faces sharing this edge, and if one face is visible (normal pointing towards the camera) while the other is hidden (normal points away from the camera), it means that this edge belongs to the silhouette contour of the object. I then place a cylinder for each edge belonging to the contour (the width and colour of the cylinder being adjustable parameters) - "crease edge" : as for the silhouette, each edge of the object is considered. Here, the angle between the two faces sharing this edge is computed, and if it is larger than a given threshlod, the edge is a "crease edge", and a cylinder is plotted along this edge. - To be able to compute all this, Povray needs to know the "edge structure" of the mesh object it considers, which tells that, for example, edge number xx is between vertices xx and xxx, and is shared by faces xxxx and xxxxx. This structure is computed first, with a perl script, using as input the mesh data of the object.