Epic的SIGGRAPH 2013笔记后面的矩形区域光镜面反射因子

时间:2016-07-27 12:25:01

标签: opengl deferred-rendering

我正在尝试按照SIGGRAPH 2013的Epic笔记实现区域灯光。它们提供了一种管区域灯的方法,我已经实现了它并且它正在工作。现在我正在尝试实现矩形区域灯,遵循与用于管灯的方法类似的方法。

认为管灯只是一个矩形灯总是面对阴影点,边缘有两个半球,我修改了Epic给出的最具代表性的点的计算。

这是计算MRP计算的输入数据的方式:

[HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command]
 @="\"L:\\Portable_Python_2.7.3.1\\App\\pythonw.exe\" \"%1\" %*"

这是我修改的计算MRP的函数:

vec3 R  = reflect(-viewDirection, normal);

vec3 P0 = LightPosition + LightLeft * -halfWidth;
vec3 P1 = LightPosition + LightLeft *  halfWidth;
vec3 L0 = P0 - worldPosition;
vec3 L1 = P1 - worldPosition;

vec3 LightVector = GetRectangularLightLForSpecular(L0, L1, R, halfHeight, LightUp);

正如你从这张照片中看到的那样,结果并不是正确的,因为平面surgafe上的反射光的形状在每一端都有“帽”。

enter image description here

0 个答案:

没有答案