16、光线追踪中的群组、边界框优化与三角形实现

光线追踪中的群组、边界框优化与三角形实现

1. 更新 normal_at() 函数

为了更准确地计算法线,需要更新 normal_at() 函数,使用新的 world_to_object() normal_to_world() 函数。具体做法是,先调用 world_to_object() 将世界空间的点转换为对象空间的点,再计算法线,最后调用 normal_to_world() 将法线转换回世界空间。以下是更新后的 normal_at() 函数的伪代码:

function normal_at(shape, world_point)
    local_point ← world_to_object(shape, world_point)
    local_normal ← local_normal_at(shape, local_point)
    return normal_to_world(shape, local_normal)
end function

在处理群组中的图案时,将点从世界空间转换到对象空间时,需要使用新的 world_to_object() 函数,否则图案不会应用群组变换,效果可能不符合预期。

对于群组的 local_normal_at() 函数,实际上群组本身并不需要这个函数,因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值