En three.js dibujo un mapa usando la opción scrollMap. Como esto
// ADD CAMERA const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); camera.up.set( 0, 0, 1 ); camera.position.set(GAME_CONTEXT.camera_init_position.x, GAME_CONTEXT.camera_init_position.y, GAME_CONTEXT.camera_init_position.z); camera.lookAt(Utils.GetCameraLookAtDirection(GAME_CONTEXT, camera)); // ADD MAP const loader = new THREE.TextureLoader(); const height = loader.load(GAME_CONTEXT.height_map_link); const texture = loader.load(GAME_CONTEXT.texture_map_link); const map_geometry = new THREE.PlaneBufferGeometry(GAME_CONTEXT.width, GAME_CONTEXT.height, 64, 64); const map_material = new THREE.MeshStandardMaterial({ color:'orange', //side: THREE.DoubleSide, map:texture, displacementMap: height, displacementScale: GAME_CONTEXT.scale, //alphaMap: alpha, //transparent:true }); const map_plane = new THREE.Mesh(map_geometry, map_material); map_plane.position.x += GAME_CONTEXT.width/2; map_plane.position.y += GAME_CONTEXT.height/2; scene.add( map_plane );Ahora, si tengo una coordenada (x,y,z) en el mundo del juego (la z es la altura de la superficie del mapa de desplazamiento en (x,y)), ¿cómo puedo calcular el vector normalizado que representa el vector perpendicular al plano? ?
Como en esta imagen, si la parte amarilla es la superficie del terreno en el mapa de desplazamiento, entonces quiero que el vector en rojo también esté normalizado.
¿Cómo se puede calcular esto?