Q77:怎么用Ray Tracing画仿射变换之后的图形

77.1 理论说明

 


如上图所示,椭球面是球面通过仿射变换T得到的。

 

现在我们的问题是:怎么ray trace变换后的椭球面?

(先重申一点:经过仿射变换之后,直线还是直线,光线还是光线)

 

我们应该这么做:

1,将光线通过仿射变换的逆变换得到“逆变换光线”;

2,用“逆变换光线”去撞击球面,得到球面上的撞击点p和法向量n;

3,通过球面上的撞击点p计算椭球面上对应撞击点p’;

4,通过球面上的法向量n计算椭球面上对应的法向量n’;

 

(接下来,只是简单地列出相关的结论。至于“推导过程”,参考《Ray Tracing from the Ground Up. 2007》和《Fundamentals ofComputer Graphics. 3rd. 2009》的相关章节)


77.1.1将光线通过仿射变换的逆变换得到“逆变换光线”

 

要对光线进行仿射变换的逆变换,则需要对光线的起点和方向向量分别进行仿射变换的逆变换。

设:原光线的起点为o,方向向量为d;“逆变换光线”的起点为o’,方向向量为d’。

分别对光线的起点和方向向量进行仿射变换的逆变换:

o’ = T-1o                      “式子1

d’ = T-1d                      “式子2

这里需要重点说明的是:点的仿射变换是考虑平移(Translation)的,而向量的仿射变换是不考虑平移的。具体的变换过程,参考《Ray Tracing from the Ground Up. 2007》的第二十

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值