aframe.js通过three.js的THREE.PlaneGeometry创建随机山地地形

本文介绍了如何利用WebVR框架aframe.js结合three.js的THREE.PlaneGeometry创建随机地形。主要步骤包括:1. 创建平面;2. 随机化vertices的z坐标以模拟山峰的起伏。同时,为了防止地形边缘翘起,需确保边缘vertices的z值为0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

策略:


1.先通过THREE.PlaneGeometry创建一个平面;

2.然后修改这个平面的vertices的z值,z值随机化,这样山峰就高高低低层次错落。


注意:


山地边缘的vertices[i].z值要统一为0,这样边缘才不至于翘起破空。


//随机山地地形生成
		AFRAME.registerGeometry('hills', {
		
			init: function () {
			
				var terrainGeometry = new THREE.PlaneGeometry( 100, 100, 9,9 );
				
						
				//统计顶点总数
				var verticesCount=terrainGeometry.vertices.length;
				
				console.log("vertices count:"+verticesCount);				
				
				for(var i=0;i<verticesCount;i++){			
					
					//地形平面边缘不变形
					var iMod10=i%10;
					if(iMod10==9||iMod10==0||i<=10||i>=90){
						terrainGeometry.vertices[i].z=0;
					}else{
						terrainGeometry.vertices[i].z=Math.floor(Math.random()*30);
					}
					
				}
				
				terrainGeometry.rotateX(-Math.PI/2);
				
				this.geometry=terrainGeometry;
				
			}			
		
		});

之后再在<a-scene>中插入:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值