Surface finish describes what the surface of a shape should look like. Keyword finish {} has four options. None of these options is required. The syntax is the following:
finish {
phong p // phong highlight in [0,1]
ambient a // ambient factor in [0,1]
diffuse d // diffuse factor in [0,1]
reflection r // reflection factor in [0,1]
}
All factors shown above, p, a, d and r are real
values in the range of 0 and 1 inclusive. Their default values are shown below:
| Keyword | Minimum | Maximum | Default |
| phong | 0 | 1 | 0 |
| ambient | 0 | 1 | 0 |
| diffuse | 0 | 1 | 0.6 |
| reflection | 0 | 1 | 0 |
finish {} is used in a shape like pigment {}. For example, the following torus has color SpicyPink, phong value of 0.6 and fully reflexive. After adding color and surface finish, this torus is rotated about the x-axis 30 degree and then translated to < 5, 6, 5 >.
torus {
5, 1
pigment { color SpicyPick }
finish {
phong 0.6
reflection 1.0
}
rotate 30*x
translate < 5, 6, 5 >
}
To use refraction, we must make the object transparent. This is done with fourth component of the color keyword. Instead of using rgb, we can use rgbf, where f means filter. The value of the fourth, filter, component is in the range of 0 and 1, with 0 being non-transparent which is the default and 1 being completely transparent. The following defines a half-transparent blue color.
color rgbf< 1, 0, 0, 0.5 >
If a color name is used, we can add the filter keyword followed by its value. The following defines a 70% transparent navy-blue color.
color NavyBlue filter 0.7
There are two ways to specify refraction and IOR. In pre-version 3.0, we use two keywords: refraction and ior. Keyword refraction specifies the amount of refracted light, which is a real number in the range of 0 and 1. However, due to a bug in versions 1 and 2 that may darken the surface of an object which is not a realistic effect, the use of 1 is highly recommended. The index of refraction keyword ior also requires a real value. Commonly used IOR values are given in the table below. Of course, you can use any value!
| Material | Air | Water | Crown Glass | Flint Glass | Diamond |
| IOR | 1.000292 | 1.33 | 1.51 | 1.71 | 2.47 |
In pre-version 3.0, refraction and ior appear in finish. The following defines a 100% transparent and refractive torus of white color with IOR 1.51 (i.e., water).
torus {
0.625, 0.375
pigment { color White filter 1 }
finish {
phong 1
refraction 1.0
ior 1.51
}
}
The follow image contains a sphere (IOR 1.33, water) and a torus (IOR 1.51, crown glass). They are 100% transparent (i.e., filter being 1). Due to refraction (i.e., light bending), the ground texture (i.e., checker) can be seen on the top part of both objects.
The following image illustrates the effect of IOR. The four spheres, from right to left, have IOR's 1.33 (water), 1.51 (crown glass), 1.71 (flint glass) and 2.47 (diamond). Thus, a higher IOR makes us to see "more" through refraction. The sphere in the top has a "weird" IOR 0.75, which means incoming light ray is un-bent! The produced effect is different.
If compatibility is not a problem, we can use interior as follows:
torus {
0.625, 0.375
pigment { color White filter 1 }
finish { phong 1 }
interior { ior 1.51 }
}