gpt4 book ai didi

c++ - 光线追踪阴影错误

转载 作者:行者123 更新时间:2023-11-30 01:58:14 25 4
gpt4 key购买 nike

Comparison

http://pastebin.com/vkTJt0sT

我正在尝试渲染与左侧相似的图像,但阴影+反射有问题。

目前,只有影子代码是开放的,用于显示问题。

如您所见,红色球应该在绿色球附近有阴影,但由于某些奇怪的原因,所有像素都被弄乱了。当我关闭代码的阴影部分时,它会正常呈现没有阴影的红球。

我觉得这个问题的根源也是在影响反射。希望你们能给我一些提示;我正在失去它。

最佳答案

鉴于您的左图显示癌症,这是阴影射线击中被反射的物体的经典案例。对阴影射线进行 HitTest 时,您需要排除生成射线的表面。只需将源对象传递到影子函数中,然后忽略它。

此方法仅适用于凸形。如果你有做自阴影的形状(例如环面),你需要更通用。通常的方法是定义一个 epsilon(浮点误差容限)并忽略比它更近的任何交点。

另一种方法是检测您击中表面的。您不应该在球体上进行自阴影,因为光线的转换方向与表面法线的大致方向相同(出射光线与表面法线的点积为正)- 这应该不算影子。

关于c++ - 光线追踪阴影错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com