   float3 sample1;
   float3 sample2;
 
-  sample1.x = volume<bpc>(pos - make_float3(DELTA, 0.0f, 0.0f));
-  sample2.x = volume<bpc>(pos + make_float3(DELTA, 0.0f, 0.0f));
-  sample1.y = volume<bpc>(pos - make_float3(0.0f, DELTA, 0.0f));
-  sample2.y = volume<bpc>(pos + make_float3(0.0f, DELTA, 0.0f));
-  sample1.z = volume<bpc>(pos - make_float3(0.0f, 0.0f, DELTA));
-  sample2.z = volume<bpc>(pos + make_float3(0.0f, 0.0f, DELTA));
+  sample1.x = volume<t_bpc>(pos - make_float3(DELTA, 0.0f, 0.0f));
+  sample2.x = volume<t_bpc>(pos + make_float3(DELTA, 0.0f, 0.0f));
+  sample1.y = volume<t_bpc>(pos - make_float3(0.0f, DELTA, 0.0f));
+  sample2.y = volume<t_bpc>(pos + make_float3(0.0f, DELTA, 0.0f));
+  sample1.z = volume<t_bpc>(pos - make_float3(0.0f, 0.0f, DELTA));
+  sample2.z = volume<t_bpc>(pos + make_float3(0.0f, 0.0f, DELTA));
 
   return sample2 - sample1;
 }
 
-template<int bpc>
+template<int t_bpc>
 __device__ float4 blinnPhong(const float4& classification, const float3& pos,
                              const float3& L, const float3& H,
                              const float3& Ka, const float3& Kd, const float3& Ks,
                              const float shininess,
                              const float3* normal = NULL)
 {
-  float3 N = normalize(gradient<bpc>(pos));
+  float3 N = normalize(gradient<t_bpc>(pos));
 
   if (normal != NULL)
   {

  // Calc hits with clip sphere.
  float tsnear;
  float tsfar;
  if (clipSphere)
  {
    // In probe mode, rays that don't hit the sphere simply aren't rendered.
    // In ordinary sphere mode, the intersection data is memorized.
    if (!intersectSphere(ray, sphereCenter, sphereRadius, &tsnear, &tsfar) && useSphereAsProbe)
    {
      d_output[y * width + x] = 0;
      return;

    src.y *= src.w;
    src.z *= src.w;

    if (t_frontToBack && (t_mipMode == 0))
    {
      dst = dst + src * (1.0f - dst.w);
    }
    else if (!t_frontToBack && (t_mipMode == 0))
    {
      //dst = dst * src.w + src * (1.0f - src.w);
    }

    if (t_earlyRayTermination && (dst.w > opacityThreshold))
    {
      break;
    }
