记录做这个demo的那些破事儿。又一个图片展。应用exture array技术制造一个古怪的山脉,咔~——ZwqXin.com
这个想法来源于这张图,觉得效果会不错的说,然后看到D3D有个这类型的demo,于是做了....虽然。
本文来源于 ZwqXin (http://www.zwqxin.cn/), 转载请注明
原文地址:http://www.zwqxin.cn/archives/opengl/texture-array-demo.html
问题的关键在于:上面那样的效果需要4个矩形旋转拼合产生,但是我以前写的地形Terrain地形都是一次过,连续的:算法决定一个M*N网格虽然理论上至少得有(M+1)*(N+1)-1个顶点,但是一般地形制造都会省略每个平面方向(X,Z决定之平面)的最后各一排的顶点,也就是说只用M*N个顶点描述。这样对大地形来说没什么。但是现在我得把一个地形切成四块,旋转拼接——于是这些“不见了的顶点”成为问题了(注意断裂处本来也该有地形):
尝试了一些做法未果,因此采取了笨方法:直接修补,把空隙两端连接起来。出现了一堆小问题,譬如坐标,纹理坐标的对应。其间还有MFC读地形图时出现的错误(原因不明),需要修补......反正从上面第二张图到第三张图花费了不少时间。
4个本为一体的地形分块是不可能旋转拼接的,直接效果会像上面那样。因此施用小技法“旋转r纹理坐标”
出来结果了,呵呵。纹理图都是256*256的,解析度低,见谅吧~~
这是个自动旋转的山形。为什么最山地上面反而是绿色的呢?呵呵,特殊爱好而已。雪“融化”那刻,自我感觉蛮好的嘿嘿。代码一匹布甘乱,就不放了,放出效果(可执行程序)。
在上篇日志:学一学, Texture Array纹理数组 的最后附有本效果demo。
DEMO使用了shader,需要下载glew库到指定目录,下载见此:OpenGL常用的库