最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Three.js開發(fā):高程數(shù)據(jù)加載

2023-02-22 09:23 作者:地理信息技術(shù)雜談  | 我要投稿

通過加載高程數(shù)據(jù)(dem),顯示地形高低起伏,達(dá)到良好的立體展示效果;Three.js能夠通過設(shè)置一系列坐標(biāo)點(diǎn)的高度,構(gòu)建成面的形式,顯示高程數(shù)據(jù)。

實(shí)現(xiàn)方式:

使用Three.js的PlaneGeometry進(jìn)行實(shí)現(xiàn),PlaneGeometry是一個(gè)平面幾何的效果,設(shè)置長(zhǎng)度和寬度值,形成一個(gè)方形的范圍,按照API的定義,通過設(shè)置平面上的多個(gè)位置的高度信息,達(dá)到高低起伏的效果。

PlaneGeometry(width :?Float, height :?Float, widthSegments :?Integer, heightSegments :?Integer)

widthSegments和heightSegments是非必填項(xiàng),默認(rèn)為1。

1、通過隨機(jī)數(shù),簡(jiǎn)單的設(shè)置高程的效果

? ? ???const geometry = new THREE.PlaneGeometry(512, 512, 511, 511);??

? ? ? ?const vertices = geometry.attributes.position.array;

? ? ???for (let i = 0, j = 0, l = vertices.length; i < l; i++, j += 3) {

? ? ? ? ? ?vertices[j + 1] = Math.random() * 20;

? ? ? ??}

//添加一個(gè)簡(jiǎn)單的貼圖const threetextureinfo =new THREE.TextureLoader().load('images/rasterimg.png');?let mesh =?new THREE.Mesh(geometry, new THREE.MeshBasicMaterial({? ? ? ? ? ? ? ?

? ? map: threetextureinfo,? ? ? ? ? ? ? ? ? ?

side: THREE.DoubleSide?? ? ? ? ? ? ??

? }));?scene.add(mesh);

效果如圖:


2、使用地形數(shù)據(jù)進(jìn)行設(shè)置,這里用了mapbox-gl的一個(gè)高程數(shù)據(jù)切片,如下圖:


使用canvas進(jìn)行圖片加載

? const canvas = document.createElement('canvas');

? canvas.width = 512;

? canvas.height = 512;

? let ctx = canvas.getContext('2d');

? ctx.drawImage(_img, 0, 0)

??const imagedata = ctx.getImageData(0, 0, 512, 512).data;

?根據(jù)圖片的顏色數(shù)值進(jìn)行高度計(jì)算,按照以上方式進(jìn)行設(shè)置,具體參見分享https://mp.weixin.qq.com/s?__biz=MzU2ODYzNzc4OQ==&mid=2247485688&idx=1&sn=490be64d201a8a58358bb1c7da9bc0cf&chksm=fc8ba8cacbfc21dcdb1bb0577d6aef4b9ba3692184006a3accd19799b38dd754f3d7c3bf7c72&scene=21#wechat_redirect

效果如下圖:

參考內(nèi)容:https://github.com/mrdoob/three.js/blob/master/examples/webgl_geometry_terrain_raycast.html

https://github.com/IceCreamYou/THREE.Terrain



Three.js開發(fā):高程數(shù)據(jù)加載的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
兴义市| 玉林市| 曲阳县| 阳西县| 托克逊县| 建水县| 化德县| 邓州市| 泰来县| 城步| 晋宁县| 怀化市| 辉县市| 东安县| 清河县| 东源县| 香格里拉县| 靖州| 东莞市| 清新县| 历史| 嘉义市| 隆安县| 新巴尔虎右旗| 蒙山县| 龙门县| 浠水县| 滁州市| 乌海市| 天水市| 凭祥市| 芦溪县| 陆良县| 阳曲县| 洪湖市| 中西区| 工布江达县| 西林县| 衢州市| 仪陇县| 任丘市|