如何使阴影更柔和?

时间:2018-01-15 12:28:32

标签: graphics raytracing

my result , but the shadow is so hard.

for (SceneLight* light : scene->lights)
{
    Vector3D dir_to_light;
    float dist_to_light;
    float pdf;
    int num_light_samples = light->is_delta_light() ? 1 : ns_area_light;
    double scale = 1.0 / num_light_samples;
    for (int i = 0; i < num_light_samples; i++) {
        Spectrum light_L = light->sample_L(hit_p, &dir_to_light, &dist_to_light, &pdf);
        Vector3D w_in = w2o * dir_to_light;
        double cos_theta = std::max(0.0, w_in[2]);
        Spectrum f = isect.bsdf->f(w_out, w_in);
        Ray shadow_ray(hit_p + EPS_D * dir_to_light, dir_to_light, dist_to_light - (EPS_D * dir_to_light).norm(), 0);
        if (!bvh->intersect(shadow_ray))
        {
            L_out += (f * light_L * (cos_theta * scale / pdf));
        }

    }
}

** abolve是我的一些代码和渲染结果。阴影看起来很难。如果我想让阴影更柔和,我该怎么办?我正在写路径追踪。 感谢。**

0 个答案:

没有答案