好不容易理解作者的良苦用心了!!!
在上面这图中作者阐述了他用到的Map,是一个三角形triip(按行排列)。
在这个图中,模糊级别升高后的图形,(图中黑点被渲染)
在这里作者用了很晦涩的语言讲述了他的道理。
特别是最后一句:
the only thing that change is the connection data;
仅仅需要改变连接数据。?
意思很模糊啊 。。。。。
想了很久总算明白了。。
比如0 1,2, 3,4,5,6 是一个trip,现在如何去掉其中的3呢。。。。。。
很简单,,,把3改为2 就可以了。。也就是所谓的 connection data!!!
0 1 2 2 4 5 6
比如说
1-- 2 - 3 - 4 - 5
6- 7- 8- 9- 10
11- 12- 13- 14- 15
16- 17- 18- 19- 20
21-- 22--23-- 24-- 25
也就是把6 这个点拉到1位置上。画6的时候画1就行了!!
预先置一个数组。来描述画的顺序。。
1.这样可以修复crack
2.怎么修复pop呢。也就是突然的改变!!高度?
作者用了线性插值法。。
不让它突然改变高度,而是根据,当前的模糊度所占的区间进行线性插值。
公式如下:
很简单啦。。不说了。。
也就是斜坡算法啦!!
下面说一下OpengL中的正反面判别。。
//Opengl是按照顶点出现的顺序判断的。
//默认为顶点按照逆时针排序。三个点一个面!。。。有出现的顺序,这个面就被确定了。
//如果opengl经过映射发现是顺时针,那么opengl认为就是反面咯。
//我认为是全是正面,opengl不承认!!!它有它的规则。呵呵。
比如说 ,按照顺时针画了个图,本来是反面。。
但是你把反面一转,
正面就朝上了!!opengl说那就是正面。。。
问题是:
如何保证看到的面全是正向面呢??????????????????
opengl也无法保证啊
很简单的方法是把这个面封装成一个体!!!
那就永远看不到反面了!!!。。
否则总会看到地!
所以说有了阴影体的概念!!!。
它的特点是,要么 我看到的东西全是正面,要么全是反面!!!!
概念很简单,如果你在我的阴影体中,那么就说明有阴影,否则没有阴影。
反面光线=正面光线
但是有个问题,,
被你看到的光线是否也符合这个等式呢?????
有些光线理你而去了!!
有些反面被对着你。。
有些正面也被对着你。。
如果被对着你的正面和被对着你的反面所发出的光线相等。。
这个时候!!!呵呵。。。。
就当然是相等了。。
如何保证呢?
如果进去了必须得出来!!就可以保证啦!!!
也就是说,在一 条线只要保证同时穿过两正面和两个反面。。。
高斯包围体!!
就这么叫吧!!
1.保证物体是个高斯包围体!但是,也不一定啦。只要保证所有测试光线同时穿过两个正面和反面就行了。
相关资源:Terrain+Rendering+Using+GPU-Based+Geometry+Clipmaps