将高度图映射到四边形球面立方体的“块”

时间:2014-05-28 19:00:18

标签: mapping heightmap

我有一个程序性的行星发生器,我的设置是我有一个四叉树设置,将立方体的六个面分成更小,易于管理的四边形。当摄像机接近地形时,这些四边形会分开,当它从它们后退时,地形四边形“崩溃” - 就像任何其他四叉树地形系统一样。问题在于,目前,为了取代地形的顶点,我使用3D脊状多分形来计算顶点高度,并且必须使用算法的输出直接移位顶点。相反,我想生成一个高度图,其高度 比四叉树叶子节点中的顶点高。也就是说,高度图中必须有比地球四边形中的顶点更多的纹素。每个四边形的顶点密度为17x17(总共289个顶点),而高度贴图纹理的分辨率为192x192个纹素(总共36,864个纹素)。我甚至不知道我插入脊状多分形算法的位置,以生成不会映射到任何顶点的纹素的颜色(因为我插入顶点位置以生成所有高度)。更不用说了,我不太清楚如何读取高度图,以便高度确实正确地映射到顶点。我需要高度图具有如此高分辨率的唯一原因是因为我还将它们用于法线贴图。

1 个答案:

答案 0 :(得分:0)

作为起点,请查阅维基百科关于四边形球形立方体(QLSC)的文章,该文章由F. K. Chan(分析师)和E. M. O'Neill(程序员)于1973 - 1974年首次提出。这篇删节文章基于1975年计算机科学公司为美国海军准备的报告,该文章在维基百科的文章中引用。 QLSC是用于通过来自内切立方体的六个平面正方形上的等面积单元的适当(非线性)变换将球上的六个球面正方形划分为等面积单元的数学构造。单元分辨率是可选择的(用户指定的),并且基于与四叉树结构一致的正方形的分层划分。这些单元以“反向Z模式”二进制位串串行连接在一起。通过屏蔽串行单元地址中的偶数或奇数位,可以获得平面正方形上单元格的x或y坐标。

QLSC于1977年被美国海军用于气象应用。它也被NASA用于1989年的宇宙背景探测器(COBE)。它已被天文学家和天体物理学家用于全天星测绘和辐射编目。由于数据存档和检索的效率,大气和海洋科学家将其用于数据库结构。它用于地理信息系统(GIS)中,用于高光谱数据处理,以及地形数据的大地测量表示。

现有的海军原始报告只有几份。但是,可以从弗吉尼亚州斯普林菲尔德的国家技术信息服务中心(NTIS)获得(通过亚马逊)的转载。 Chan在美国国家航空航天局/ GSFC第五届年度飞行力学/估算理论研讨会论文集中提到了25页的“四边形球形立方体地球数据库”,Greenbelt,Maryland(1980)。 Stack Overflow中的一些文章可以通过使用关键字Quadrilateralized Spherical Cube(通过Google)搜索获得。