我正在创建一个 Three.js 中的 3d 世界地图,为了更好的质量和精度,我想通过依赖于当前缩放级别的图块加载纹理。
我想在three.js中实现与此类似的东西。
目前我有一个大纹理,请参阅fiddle。
var mesh = THREE.Mesh(
new THREE.SphereGeometry(radius, segments, segments),
new THREE.MeshPhongMaterial({
map: THREE.ImageUtils.loadTexture('https://raw.githubusercontent.com/turban/webgl-earth/master/images/2_no_clouds_4k.jpg'),
bumpScale: 0.005,
specular: new THREE.Color('grey')
})
);
Run Code Online (Sandbox Code Playgroud)
但我想从这里请求瓷砖中的纹理。
是否有在three.js 中完成的类似解决方案,或者是否有人知道如何从瓷砖拼接纹理。
我想瞄准具有相机视觉的物体(因为用户会看到物体,而不是用鼠标指向物体).
我像这样从相机投射光线
rotation.x = camera.rotation.x;
rotation.y = camera.rotation.y;
rotation.z = camera.rotation.z;
raycaster.ray.direction.copy( direction ).applyEuler(rotation);
raycaster.ray.origin.copy( camera.position );
var intersections = raycaster.intersectObjects( cubes.children );
Run Code Online (Sandbox Code Playgroud)
这让我得到了交叉点,但它似乎有时会徘徊.所以我想添加目标(十字准线).那将是光线末端或中间的物体(网格)上的某种东西.
我该如何添加它?当我创建一个常规线时,它位于相机前面,因此屏幕会变黑.
无法弄清楚为什么我的div不在行的右下角。
<div class="row">
<div id="col-xs-4">
<p>pplplplplp</p>
</div>
<div id="col-md-8 pull-right">
<p>pplplplplp</p>
</div>
<div id="bottomrightcontainer">
<p>pplplplplp</p>
</div>
</div>
#bottomrightcontainer{
background-color: white;
border: 2px solid white;
border-radius: 2px;
z-index: 1;
position: absolute;
width: 17%;
height: 29%;
right: 0px;
bottom: 0px;
}
Run Code Online (Sandbox Code Playgroud)
这将其放置在窗口的底部而不是其父行。