feat: initialize sunrise with 100-player shared rooms
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
import {readFileSync,writeFileSync} from 'node:fs';
|
||||
import {createTerrainGeometry} from '../src/scene/terrainGeometry.ts';
|
||||
import {applySummitTerrain} from '../src/scene/summitTerrain.ts';
|
||||
import {structurePosition} from '../src/scene/structures.ts';
|
||||
import {SUMMIT_TERRAIN} from '../src/constants/summitTerrain.ts';
|
||||
import {SUMMIT_TRAILS} from '../src/constants/summitTrails.ts';
|
||||
const meta=JSON.parse(readFileSync('public/terrain/gwanaksan.json','utf8'));const b=readFileSync('public/terrain/gwanaksan.f32');
|
||||
const g=createTerrainGeometry(meta,new Float32Array(b.buffer,b.byteOffset,b.byteLength/4),true);applySummitTerrain(g,meta);
|
||||
const start=structurePosition(SUMMIT_TERRAIN.start.latitude,SUMMIT_TERRAIN.start.longitude,meta.origin),p=g.getAttribute('position'),idx=g.getIndex();
|
||||
const vertices=[],faces=[],indices=new Map();
|
||||
for(let i=0;i<p.count;i++){const x=p.getX(i)-start.x,z=p.getZ(i)-start.z;if(x>=-42&&x<=32&&z>=-75&&z<=30){indices.set(i,vertices.length);vertices.push([x,-z,p.getY(i)+meta.observerSurfaceElevation+(p.getX(i)**2+p.getZ(i)**2)/(2*6371008.8)]);}}
|
||||
for(let i=0;i<idx.count;i+=3){const tri=[idx.getX(i),idx.getX(i+1),idx.getX(i+2)];if(tri.every(j=>indices.has(j)))faces.push(tri.map(j=>indices.get(j)));}
|
||||
writeFileSync('assets/summit/blender-plateau-study/context.json',JSON.stringify({vertices,faces,boundary:SUMMIT_TRAILS.rockPolygon,start:SUMMIT_TERRAIN.start}));console.log({vertices:vertices.length,faces:faces.length});
|
||||
Reference in New Issue
Block a user