Ray Tracing Part VI

        
    This week I will implement BRDF for my ray tracer. BRDF defines how light is reflected at an opaque surface.
    Now We have seven new models.
      • Blinn-Phong
      • Modified Blinn-Phong
      • Normalized Modified Blinn-Phong
      • Phong
      • Modified Phong
      • Normalized Modified Phong
      • Torrance-Sparrow

    Summary :
    To implement this part I added new section to materials and shading class. 

    Each material has a brdf struct if it has brdf feature. In brdf structure we have brdf type and exponent.
    In previous parts we only have blinn phong shading. We calculate half vector and find the color. Now we have different formulas for each algorithm. When we call blinn phong, I calculate color according to enum type.

    In some brdf types we need to change diffuse shading.
    Each model has different approach. Each of them we can find a final equation.



    Blinn-Phong :kd+ kscosp(αr ) /  cos θi
    Modi ed Blinn-Phong : kd+ kscosp(αr 
    Normalized Modified Blinn-Phong : kd / π + ks * cosp(α) * (p+8) / 8π
    Phong : kd+ ks *cosp(β) /  cos θi
    Modified Phong: kd+ ks *cosp(β) 
    Normalized Modified Phong:  kd/ π +  ks*cosp(β) * (p+2) / 2π
    Torrance-Sparrow: kd / π + ks * D(α) * F(Φ) * G(wi,wo) / 4cos θicos(Φ)




    Let's start with BlinnPhong

    0.612s
     

    Modified Blinn-Phong



    0.655s

    Normalized Modified Blinn-Phong 

    0.552s


    Phong
    0.684s

    Modified Phong: 
            
    0.6442s


    Normalized Modified Phong: 

    0.652s

    Torrance-Sparrow:
    0.712s

                                                                      
      122s

      126s


    Yorumlar