jjzjj

javascript - 如何在 three.js 中导入 json 和渲染

大家好,我编写了导入json文件并使用three.js渲染它的代码,我从three.jseditor导出了json文件。它在控制台中没有显示任何错误window.onload=function(){varshapeObjectUrl="test.json",scene=newTHREE.Scene(),camera=newTHREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,0.1,1000),renderer=newTHREE.WebGLRenderer(),loader=newTHREE.JSONLoader

javascript - 如果一个点在相机的视野之外,Three.js 线就会消失

我按照文档中的说明创建了一行:http://threejs.org/docs/#Reference/Objects/Line.但是当其中一个线点在相机视野之外时,线就会消失。我也尝试使用https://github.com/spite/THREE.MeshLine,但我仍然遇到同样的问题。我该如何解决? 最佳答案 如果您更新线的顶点,您还必须更新线的边界球体以使截锥体剔除正常工作。line.geometry.computeBoundingSphere();或者,您可以通过设置来防止线的截头截头剔除line.frustumCulled

javascript - 场景中的静态对象 - Three.js

我的场景中有两个对象。我正在使用用于移动相机,所以感觉物体会随着我手的移动而旋转。问题是另一个物体也在移动,我希望它始终保持在我面前。我的意思是,即使相机移动,对象也始终位于Canvas/资源管理器内的同一位置。抱歉,如果我没有正确解释自己。感谢任何帮助。编辑:varcontrols=newTHREE.LeapTrackballControls(camera,controller);所以,我在场景中间有一个球体。我使用LeapTrackball库将相机围绕场景中心移动。这让用户感觉球体围绕着他的中心旋转。model=newTHREE.Mesh(modelGeo,modelMat);mo

javascript - three.js - 如何限制缩放以使对象不会因相机而损坏

我正在创建three.js应用程序。我已经加载了我的STL对象。我使用过“OrbitControls”。当我开始使用鼠标的中间滚动按钮缩放我的对象时,它会在某个点中断。我的相机和控制代码如下:camera=newTHREE.PerspectiveCamera(55,window.innerWidth/window.innerHeight,1,15);//camera.position.set(3,0.15,3);//positionandpointthecameratothecenterofthescenecamera.position.x=-3;camera.position.y=4

javascript - 你能在 three.js 场景之间共享网格吗?

是否可以在场景之间共享网格或几何体?我有多个场景,它们应该是相同的、大的、网格的,但是当我尝试在它们之间共享网格时,我得到了WebGL上下文错误。我怀疑在将它们添加到场景时在网格或几何体上设置了一些变量,从而防止它们在另一个场景中重复使用。编辑:更具体地说,我正在尝试在不同场景之间共享已使用JSONLoader加载的几何体。IE。在此示例中,“apps”是一组具有场景的应用程序:varloader=newTHREE.JSONLoader();loader.load('obj/tree/tree.js',function(geometry){apps.map(function(app){

javascript - 如何在不拉伸(stretch) three.js 前景的情况下增加视角

我有一个带纹理地板平面的three.js场景,需要非常特定的视角才能与静态2D叠加层对齐我的问题是,我越是增加相机FOV以获得我需要的视角,前景就越拉伸(stretch),而我不希望这样。我似乎需要一个非常高的FOV(~120-150)来使纹理跟随墙壁,而且它是如此之高以至于相机正在渲染位于它后面的东西。我需要将相机几乎移动到场景的中心才能显示整个楼层,这感觉不对。我怎样才能调整这个场景以获得正确的视角而不失真?实例:http://warriorhut.net/testing/shapes/backend/room/view.basic.php相关的相机设置是:varWIDTH=102

javascript - 如何使用新的 THREE.TextureLoader 加载多个纹理

如何使用Three.js中的新THREE.TextureLoader加载多个纹理?目前我正在像这样加载我的纹理:vartexture1=THREE.ImageUtils.loadTexture('texture1.jpg');vartexture2=THREE.ImageUtils.loadTexture('texture2.jpg');vartexture3=THREE.ImageUtils.loadTexture('texture3.jpg');vartexture4=THREE.ImageUtils.loadTexture('texture4.jpg');vartexture5=

javascript - 更新 three.js 中的 ShaderMaterial 属性

来自three.jstutorialonshaders,我们了解到我们可以更新ShaderMaterial的统一值:varattributes={displacement:{type:'f',//afloatvalue:[]//anemptyarray}};varuniforms={amplitude:{type:'f',//afloatvalue:1}};varvShader=$('#vertexshader');varfShader=$('#fragmentshader');//createthefinalmaterialvarshaderMaterial=newTHREE.Mes

JavaScript:将 52 位整数转换为 20 位和 32 位整数

在其他可以表示64位整数的语言中,可以很容易地做到这一点......Howtostorea64bitintegerintwo32bitintegersandconvertbackagainHowtostorea64bitintegerintwo32bitintegersinRuby//convert64-bitntotwo32-bitxandyx=(n&0xFFFFFFFF00000000)>>32y=n&0xFFFFFFFF但是JavaScript不能表示64位整数。它canonlyrepresent52-bitintegers没有问题。现在这意味着不可能将一个64位整数转换为两个3

javascript - three.js 3d 模型作为超链接

我正在尝试找出一种方法,将通过Three.js创建的3D模型用作超链接。换句话说,如果我单击一个立方体(THREE.CubeGeometry),我希望打开另一个页面。例如,在thisthreejs.orgexample中,我怎样才能改变它,而不是在方框上制作小点,点击方框会打开另一个页面,比如超链接? 最佳答案 实现它的一种方法是在创建每个多维数据集时将自定义userData(URL)与它相关联。所以这是一个示例代码,我们如何在生成数据时将数据放入多维数据集(在jsfiddle中,第25-63行之间使用了类似的逻辑)varobjec