三维地形交互式编辑_第1页
三维地形交互式编辑_第2页
三维地形交互式编辑_第3页
三维地形交互式编辑_第4页
三维地形交互式编辑_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三维地形交互式编辑中点移位细分1.1 细分方法海拔栅格数据是具有细节特征和统计自相似特性的分形曲面。细节特征通过随机来获得,而表面属性控制由细分方法和递归插值算法来把握。海拔栅格一般用于地表网格、云彩和岩石等纹理图像生成,凹凸纹理计算和几何纹理生成等多个用途。随机表面的细分方法可以用于任意网格,但一般主要以三角网和四边形网为主,四边形网在很多应用中较为方便。三角高度网格和四边形高度网格三角网的随机中点移位方法对正常三角形(三条边的比值位于一定范围内)和狭长三角形,或者对于较长边或边上细分方法和三角形中心点分割算法。使用边遍历算法,先处理所有边的细分,之后按照三角形遍历并根据该三角形的细分点确定

2、连线方式。基于边的细分方法基于内点的细分方法只使用内点的细分会产生狭长三角形。2 四边形网的随机中点移位方法对于狭长四边形,可以使用边分割方法将其分成两个四边形。也可以使用先用square 数据生成diamond数据,之后再用diamond数据生成square 数据。建立在等距四边形网格上的随机中点移位海拔栅格。建立在任意尺寸上的四边形网格的随机非中点移位海拔栅格。非中点移位是使用目标网格间距控制细分的自适应递归控制算法。原则上可以按单步或两步进行任意中间位置的分割,并按照双线性插值求取平均高度和随机数范围。任意网格的随机中点移位方法凹多边形和带有空洞的多边形依据顶点划分为凸多边形或三角形。对

3、凸多边形的几何中心点按照平均法向进行限定随机移位。接着在多边形边界上选择边创建分点,此时要相应地处理邻接的另一个多边形并使用该点为边上分点。或使用多边形的现有顶点,则不需要考虑相邻多边形。使用最多的是任意三角剖分或四边形剖分表面或实体,被划分的边必须双侧翼(无向前或向后翼)和长边,中点位于边的中点,平局高程是线的平均法向上含两翼各点的均值,并在该向量上进行随机位移处理。不规则石头可以用此方法建模。具备自拼接特性的规范四边形网的随机中点移位方法规范四边形网是具有形如(2 m1)(2 n1) 的四边形网格。考虑到计算速度和非重复的表面规模,一般可选用256 256 栅格。为了能较好的进行自拼贴,右

4、侧和下侧边界的坐标分量为256 整数倍的坐标分量值将回绕到0 坐标分量值。1.2 种子网格的产生1 由跨距 span 构造 M0 N0 阵列初值,可选用行列序或层序安排随机数使用的顺序格局,并且一般要求 span 是 2 m 和 2n 的公因子。随机种子网格各点的随机值大小和式样受随机数种子srand 以及随机数范围 lrand 和 hrand 限定。由于计算机所使用的随机数都是伪随机数,因此可以使用不同的随机数模型,如:随机数种子 r0(0,1)模型 1: rn 13.96 rn (1rn )模型 2: rn 1(a rnbc ,此时使用的参数和随机值均为整数。) %模型 3:混沌映射模型。

5、 。假设随机数范围为(0,1),则每点的高程 h (lrand rand ( ) (hrand lrand ) heightScale 。由任意图像的小尺寸灰度图(可经采样、马赛克或变换处理)转换为高度栅格。该方法的好处是可以选择性使用图像的某种特征作为高度网格的基本式样。3由重叠 IFS或可加入某种随机性所产生的低分辨率分形集作为初始种子网格n hh h / n 。4由随机生长方法获取(在0 平面上由一个或多个种子点,按指定的生长法则产生)。此时为任意网格(低分辨率或高分辨率),为了能进行自适应细分,需要建立光栅格式。由经颜色表转义的混沌图形的灰度图像转化为高程图给出。由随机几何图形与颜色叠

6、加方法合成。用连续随机叠加的方法。8 用数学曲面法(包括样条曲面)yf (x, z) 。种子网格可以与目标网格具有相同的尺寸。可以对种子栅格数据进行编辑,也可以对目标栅格数据进行编辑。通过对种子栅格的编辑,可以把握地形数据的基本式样。1.3 细分模型细分一般是在种子网格的基础上进行,也可以回退到高层(废弃部分数据)。随机中点移位方法将随机数范围与粗糙度因子相结合:hnewh ( heightScal e hrand lrand ) cosare k (rand ( )1) ,22其中 k 是细分层次。对细分的结果按照将目标网格数据调整到heightScale lrand heightScale

7、 hrand 之间。可选择平滑处理,使表面接近常规的丘陵地形式样。也可选择增加目标网格最低限制,可形成大面积平整区域的地形特征。表面插值或光滑细分方法使用三线性、三立方插值,切角等方法在种子网格的基础上形成平滑表面。1.4 高度变换高程映射方法:区间( -128, 127)上的连续映射(0,1)上的自映射: h4 h (1h)(0,) 上的自映射 h4 h (1h /)(/2, / 2)上的自映射 h(2h) (1 2h /)/ 2三角函数(1, 1) 上的自映射: h sin(hk/ 128), k(0,255) 的整数(0,1)上的自映射: hsin(2hk/128) / 21/ 2,k(

8、 0,255) 的整数(/2, / 2)上的自映射: hsin(2 h /k / 128) / 2, k (0,255) 的整数2 离散自映射(即 (128, 127) 上的一个置换,也可以映射到(128,127) 的一个子集上)颜色表转换(即将高程值作为颜色索引,并通过颜色表将对应的颜色转换为灰度值,即高度)其它方法(如油画处理、矩阵变换等)海拔栅格的编辑方法移位面编辑 (细化后的曲面) :按粗网格、均衡曲线、随机表格数据、细分算法和插值方法控制的曲面。移位面的作用是为表面构造细致的几何纹理。基础面编辑 ( 032767):使用不同大小的指数面顶曲面按微量堆积和挖掘的方法进行编辑(初值为 0

9、)。基础面的作用是构造任意形状地形(如岩洞等)的粗网格面。将移位面和基础面进行叠加而得到最终的栅格。图形编辑工具:顶点编辑、点模式、点大小、均衡曲线、清空基础面、重新生成移位面(重建随机表格,可选择保留粗网格) 、改变目标栅格尺寸 (用插值保留编辑数据) 、改变显示类型 (山、云、石纹 )、推拉工具等。上下阀值限定、上下阀值翻转、中间定向翻转,多边形区域上的参数修改、光顺、锐化,提升和沉降多边形(开或闭的直线或曲线),含力学模型的堆积(如喷砂)和挖掘,风蚀和水洗方法,打磨石、侵蚀刷(依据尺寸和强度),对于纹理解释可修改伴随的颜色表对栅格的理解做进一步调整,多边形区域上的连续随机增加,两个地形数

10、据的非对称个性化插值,通过非规则几何的运动扫略方式进行的增减操作等。可对任意的空间三角和四边形混合网(可封闭为体)进行随机中点移位处理。网格的控制点为粗网格点,网格的平面看成基础面,随机表位于纹理坐标对应的表面点(要求具有自拼贴属性)的合成效果。随机表面总是依据顶点法向进行几何贴图,顶点法向也可以让平面真正地鼓起来。为海拔栅格及空间表面预定义了多种细分算法。细分这种曲化算法可以用于海拔栅格的基础面编辑。多种随机移位细分方法来构造移位面,可用路径划分出不同的区域并各自使用独有的细化参数和模型,来构造多种表面的组合面。粗网格点以及细分一次、二次等的点,对最终栅格的贡献依赖于均衡曲线。正常情况下,粗

11、网格的随机值要重要得多,其变化要影响周边的四个粗网格区域,而最抹一层细分产生的网格点的变化只影响本身一个点。用不同颜色区分粗网格、一阶网格、二阶网格及其它层细分网格(用灰色),即网格的顶点编辑允许任意点(关于层和均衡曲线)的受限修改。2.1 整体编辑和局部编辑基于 256 256 自拼接海拔栅格的整体编辑是按照坐标回绕方式同等地处理每一个顶点。局部编辑一般有层次点修改和区块(2 2、44 等等)修改,并且一般要按照作用强度模式进行改变(与整体编辑相比,方法相同,强度控制方式不同):局部编辑首先通过选择模式把鼠标光标位置的拾取矩形( 22 或 55 等)获取几何图形的( x, z) 坐标确定编辑

12、区域(圆或矩形,用二维数组):typedefstruct_collect intx:10;/ x 坐标intz:10;/ z 坐标intw:8;/四叉树的半宽(半径)intdir:4;/四个方位占2 位,每个方向的两片各占1 位( 01, 10, 11) COLLECT;先获取光标所拾取的三角形, 再根据相机位置与鼠标点的射线方程与三角形的交点在三角面上反算出最近的 (x, z) 坐标点。2.2 编辑算法1 光顺:矩阵、卷积矩阵、切角、一次(一阶)和三次(三阶)。锐化(粗糙化):在局部均值上确定理解的随机值,并将此随机按一定限定进行长幅修改。提升与沉降:主要针对局部均值进行修改,非均值部分只做

13、少量缩小。4 上下翻转:通过指定平面ya 对低于或高于该平面的部分进行对称到另一侧。图像编辑方法:如油画效果等。高程变换高程相关的纹理合成地形使用的纹理可以是使用4 片或多片按照高程进行纹理合成(称为高程纹理),亦可以将海拔栅格转换为高度图并用颜色表控制生成纹理。可自拼接纹理是按照N N 回绕一线的方式构成的。在拼接时与海拔栅格的处理一样,先将图像扩展为 (N+1)(N+1),多出的一线是读取的回绕数据。这样,拼接时就可以将边框线重叠,形成可缩放的无缝连接。一般使用可自拼接细节图(通常是小尺寸,如6464 )拼接为大尺寸如1025 1025,再与由高程数据处理过的257 257 纹理图像进行合

14、成,产生1025 1025 的大纹理(当然,可以将高程纹理固定在地表网格上,渲染时再与细节纹理进行合成)。3.1 按照高程数据合成大纹理小纹理按高程数据合成大纹理将高程分成四段,使用低位置编号段进行两两插值,最后一段不插值区间重叠线性插值将高程分成三段,使用低位置编号段进行两两插值五等分区间的三次样条插值四等分区间的区间中点三次插值,或边界重复的三次样条插值非等分区间的区间线性插值样条(当然可以使用三次样条)最常用3.2 纹理细节有多种方式。将自拼接几何块固定纹理是较方便的方法。3.3 与几何颜色混合几何高程一般有固定的颜色渐变序列,与表面纹理混合形成自然的纹理。4 四叉树 LOD算法4.1

15、底层网格的三角划分11113663111163361113131关于中心区域的展开4 4 网格权值分配矩阵S1316916913是一个三次高程曲面5761316916913113131围成的“体积” ,与其后的两种表面三角化方法形成的“体积”较近者为所选三角划分。1111011000000000S 111 11 11 0 01+10110+1011012* 481 1 11481 0 018 0 1106 011011110110000000004.2 自适应层次划分方法会打乱原始的四叉树层次,数据结构和算法较复杂。4.3 层次四叉树方法多块拼合粗虚线为实际计算的N N 栅格数据,细实线为渲染

16、的(N+1) (N+1)栅格数据,其中的右侧和下边均使用了回绕数据(即自拼贴的后续栅格的左侧和上边的数据,右下角=左上角像素)。具有自拼贴属性的几何或纹理与环的特征连接表面同构用 y( x, z) 表示几何或纹理数据,将其转换为环面上的分割角( z)20,1, ,256) ,z, ( z256(x)2。x, ( x 0,1, ,256)256Rcos( z), 0, Rsin(z)将 y(x, z)cos(x), y( x, z) sin( ( x),0 绕 y 轴旋转 (z) 角:y(x, z)cos(z) cos( (x), y(x, z) sin( x), y( x, z) sin( (

17、 z) cos( ( x)再加上平移R cos(z), 0, R sin( (z) ,即为所求y( x, z) 映射到环面的三维坐标。而该坐标点的纹理坐标为 (x / 256, z / 256) ,顶点法向是上式中的y( x, z) =1 时的三维向量。3 预处理void setup_quadtree(int x, int z, int width)int width2, m, n;n = width * lod_level;m = (x - location0) * (x - location0) + (z - location2) * (z - location2); width2 = w

18、idth 1;if(width 1) & m n * n) /此处添加平整度测试和相机裁剪inti, j;m = (z - width2) & MASK2) SHIFT2);n = (z + width2) & MASK2) SHIFT2);i = (x - width2) & MASK2);j = (x + width2) & MASK2);quadtree(z SHIFT2) + x = NODE_POINT;quadtreem+i = EDGE_POINT;quadtreem+j = EDGE_POINT;quadtreen+i = EDGE_POINT;quadtreen+j = ED

19、GE_POINT;setup_quadtree(x - width2, z - width2, width2);setup_quadtree(x + width2, z - width2, width2);setup_quadtree(x - width2, z + width2, width2);setup_quadtree(x + width2, z + width2, width2); else quadtree(z SHIFT2) + x = EDGE_POINT;编辑与浏览流程5.1 参数生成目标类型(0-地形、 1-纹理): DWORD product = 0;表面贴图数据:Tex

20、turetex = w, h, image;地图子块编码和子块个数:DWORDidImg,numImg;/图像纹理DWORDidGeo, numGeo;/几何纹理一般情况下,地表栅格控制大尺寸地表轮廓(山脉、丘陵或平地) ,几何纹理控制地表的细节特征,图像纹理进一步细化地表形成真实的地表形体。三种数据均可以用单个或多个同类(也许允许异类)数据进行拼接。天空盒数据用内置的模型自动生成和扩展。天空盒也是地表栅格的生成目标之一。地形参数设置对话框:INITPARAM种子网格规模SEEDS(1,2,4,8,16,32,64,128,256 )高程范围因子heightScale(0,1)表面粗糙度模型:

21、floatcoarse = 0.7F;(使用数组具有更好的效果控制。乘积序列,如果是非中点可按最小加速度曲线计算该序列的插值)。海平面高度: floatelevation = 0.0; (用来确定天空盒的底面高度)。高程最低限lowLimit = -128.0F; ( -1,1)随机数种子randStart = 0.5F; ( 0,1)随机数参数:randscale,randShift使用时, 先生成数值的随机数模型: 0-Logistic, 1-素数线性映射,编辑控制参数设置对话框:EDITPARAM操作域尺寸( 1, 32,64)作用区模式:指数、余弦、样条等作用方式:层次方法、邻接点选项

22、:使用随机(随机因子)表明:表面细分、平滑矩阵、卷积矩阵强度:一次滤波、三次滤波高程映射: -128 127上的自映射( Logistic 映射、三角函数等) ,置换,颜色表转换等。浏览模式参数设置对话框:VIEWPARAM地形数据显示模式:线框、表面纹理选项:波浪,天空盒,雾纹理:(纹理文件名,插值的位置) 4 显示因子: y 因子、 (x, z )因子细节层次( 1,2,3,4,全)视锥角( 0, 90)颜色表设置对话框:COLORTABLEPARAM编辑连续彩色曲线(编辑RGB样条曲线)修改 256 色颜色表(编辑16 16 颜色块表)5.2 命令和工具文件:新建、打开、保存、另存为、合

23、成(按比例与当前数据合并) 、保存位图、退出初始化种子(随机粗网格、读入图像、生长、点随机叠加)编辑:场景状态(编辑、浏览)数据类型(地形、纹理、颜色表(在256*511 上背景竖线条表示为颜色的RGB分形曲线)操作形式(点的徒手画类型、连续折线类型、多边形区域类型)整体编辑:比例、高程变换、最低限、提取种子公共编辑:提升、沉降、光顺、折皱、上翻、下翻;其它编辑:路、桥;布局(房、车、树、草);贴图(堆放图片的地表设计)查看:更换天空盒、更换基础纹理(一般用四层) 、更换细节纹理读入和保存颜色表、设置连续颜色表控制、修改单个颜色经颜色表转换数据显示(面、线框)背景模式(背景色、天空盒)细节层次( 8,16,32,64)浏览模式(步行、飞行)帮助:地形编辑操作、地形原理、关于地形编辑器。工具栏 :新建、打开、保存、保存图像;地形、纹理、颜色表;撤消、重做;提升、沉降、光顺、折皱、上翻、下翻、浏览;背景色、表面/ 线框、细节层次(8,16,32,64)、步行 / 飞行。5.3 渲染一般,观察点与水平面形成固定夹角(15 45 度),编辑时要根据观察点及高程线的观察效果调整综合高程(主要是粗网格点的)数值。主要的浏览方式有两种:约束在表面上的步行方式和保持绝对海拔高度的飞行方式。改变倾角(即改变了高度)、调整观察高度、绕观察中心的y 轴矢量旋转、保持高度的飞行控制(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论