今天晚上一口气写了400多行一共十几个循环,一运行,挂了。。。找了接近2个小时的错,发现居然错在这句话
for (int i=0;i<x-1;i++)
      for (int j=0;j<x-1;j++);
        {
            .....
        }
其中一个循环不小心按了个分号,循环的时候直接跳过去了,唉。。。真是害死我了,那么多循环,多一个分号在中间还真相当隐蔽啊,主要程序也不报错,只怪自己写太急了,最后得不偿失。。。
   
不过今天晚上还是有点收获的,根据水面的法线信息渲染出了水底的Caustic效果,基本和那些论文里的效果差不多,只是因为网格太少了,马赛克比较明 显,下一步要把它渲染到纹理里,还要实现tileblur的效果,尤其是tile的实现估计比较麻烦,因为水经过折射后原来的方向就乱了,具体还得考虑 下。而且目前速度也是个问题,光这一步就比前面所有的时间加起来都多了,主要是浮点运算比较复杂,之前考虑在GPU里实现的,但是后来发现在GPU里实在 是不好以三角形为单位进行运算,最后只好在CPU里算好了传进去,但速度狂降。。。
最后上个图,右面是法线图,左面是得到的Caustic纹理