Quanwei1992 / GAMES101

GAMES101: 现代计算机图形学入门 作业
MIT License
483 stars 104 forks source link

pa3 displacement mapping #6

Open changshou83 opened 1 year ago

changshou83 commented 1 year ago

我认为应该把displacement_fragment_shader中的这段

Vector3f n = (TBN * ln).normalized();
Vector3f p = point +  n * huv * kn;

根据注释修改为

Vector3f p = point +  normal * huv * kn;
Vector3f n = (TBN * ln).normalized();

然后将下面进行着色的代码中的normal修改成上面的n

diffsue[i] = kd[i] * intensity * std::max(0.0f,normal.dot(light_dir)); // 应该修改为n
specular[i] = ks[i] * intensity * std::pow(std::max(0.0f,normal.dot(h)),150); // 应该修改为n
wheelmaker129 commented 7 months ago

我认为应该把displacement_fragment_shader中的这段

Vector3f n = (TBN * ln).normalized();
Vector3f p = point +  n * huv * kn;

根据注释修改为

Vector3f p = point +  normal * huv * kn;
Vector3f n = (TBN * ln).normalized();

然后将下面进行着色的代码中的normal修改成上面的n

diffsue[i] = kd[i] * intensity * std::max(0.0f,normal.dot(light_dir)); // 应该修改为n
specular[i] = ks[i] * intensity * std::pow(std::max(0.0f,normal.dot(h)),150); // 应该修改为n

正确的,因为点是沿着原来的normal方向移动的