使用GI获得柔和阴影
摘要: 所谓的GI可以简单的理解为渲染一个像素的时候,就在那个像素的法向量位置渲染一个半球,统计并作为光源输入。现在使用一个比较粗糙的平行光在天空盒上的投影函数:f(t)=cos(t)*4/(1-cos(a)),其中a是光斑夹角的一半。GI花了好长时间,图如下:
阅读全文
posted @
2009-01-30 06:54 陈梓瀚(vczh) 阅读(2541) |
评论 (0) 编辑
修正了Fresnel,正确绘制高亮和凸多面体
摘要: 之前搞错了一个fresnel公式,实际上全透明物体的fresnel公式应当如下:
f=入射角
t=出射角,有sint=sinf/n
新的factor=(sin2(f-t)/sin2(f+t)+tan2(f-t)/tan2(f+t))/2,这样的话出现全反射的时候,factor=1。
阅读全文
posted @
2009-01-28 00:27 陈梓瀚(vczh) 阅读(2183) |
评论 (0) 编辑
重新使用Fresnel为材质建模并增加锥形
摘要: 由于之前的建模方法乱七八糟,现在使用一般的Fresnel方法为材质建模。这是一个处理折射和反射光比率的函数。计算方法如下:factor=bias+scale(1+I×N)^power,将factor剪裁之[0,1]范围内之后,折射光/反射光比率为factor/(1-factor)。bias、scale与power是材质参数,需直接指定。
阅读全文
posted @
2009-01-24 09:55 陈梓瀚(vczh) 阅读(1765) |
评论 (0) 编辑
实现透明物体折射
摘要: 明天得开始研究别人是怎么处理材质的了。目前使用的方法是(反射来源×反射基准)×折射比率+(光源×材质颜色)×(1-折射比率)+[(折射来源+底面反射)×衰减+(1-衰减)]×透明物体内部颜色减。等材质完全做完之后,目前的渲染算法就可以为GI服务了。最后是计算混合的代码:
阅读全文
posted @
2009-01-22 06:02 陈梓瀚(vczh) 阅读(2198) |
评论 (2) 编辑
孔子曰:三日不编程,食肉无味
摘要: 由于一时找不到题目写,所以这两天就搞了一个简单的基于光线追踪的软件渲染器。准备花点时间做下去了。从昨天开始到现在实现的东西有反射、阴影、多光源、线性变换等。
阅读全文
posted @
2009-01-19 00:48 陈梓瀚(vczh) 阅读(4053) |
评论 (5) 编辑