three.js[已解决]单击按钮时,我希望在加载为纹理的图像上产生滑动效果

three.js
我已经使用TextureLoader()从使用平面几何体的图像数组中加载了图像。为原始平面几何图形创建了两个子对象,用于向后和向前单击事件。单击右键后,将加载下一个纹理图像。我希望在加载下一个纹理时具有滑块效果。ndomEvents.addEventListener(mesh11, \"click\", function(event) {loader.load(arr[textureToShow],function(tex) {console.log(\"right:\" + arr[textureToShow]);textureToShow++;if (textureToShow > arr.length - ==>nI tried animations but it works on actual mesh but not on textures. Any help is appreciated and also please look at the logic for right and left click, they work but they do not coordinate.nIf you can formulate your problem as a JSFiddle 49 that should work, but doesn\"t, that will make it much easier for others to help you. Now the question seems very unclear to me. saiviru:ncreated two child objects for the original plane geometrynA geometry has no children. A mesh may have children, though. Are the children also meshes with their own geometries? saiviru:nI tried animations but it works on actual mesh but not on textures.nWhat worked on mesh, but not on textures? How did you try?nNote that loader.load(texture_path, function(tex) { /*Do something with the texture.*/})生成异步操作。这意味着回调(function(tex))将在文件加载且执行线程空闲后才会运行。
对不起,我不清楚这个问题。事情是这样的。我正在codepe
上更新代码,将在此处更新链接。
实际上,它是一个网格,我正在加载3个不同的图像作为纹理。将为网格创建两个子对象。单击这些按钮时,将显示一个新纹理。我想用滑块效果设置纹理过渡的动画。
再次感谢。
您可以通过预加载所有纹理,或者至少是最近的纹理,让自己更轻松。查看THREE.LoadingManager。在加载所需纹理之前,您甚至可以使“上一个”和“下一个”按钮不可见。
如何进行纹理转换?我认为最简单的方法可能是创建一个额外的平面,在其他平面滑出时滑入。每次单击其中一个按钮时,未使用的平面都会移动到要滑入的一侧,并使用新纹理进行映射,然后两个平面都会滑动。
由于某些原因,我无法在codepe
上加载代码。
这是我的代码。nvar camera, scene, renderer, control, orbit, = new Array();init();render();function = new THREE.Scene();scene.add(new THREE.GridHelper(2000, = !event.value;});// instantiate a texture = 0;// = new THREE.Mesh(geometry, material);loader.load(arr[textureToShow], = new THREE.MeshLambertMaterial({map: texture1,color: = ==>nI will try the loading manager and also by adding a new plane.nAlso, could you please check my code and also back and forward buttons logic. When a back button is clicked and forward is clicked they don\"t synchronise.nI guess codepen will fail because it does not access your image files.nPreloading with LoadingManager将是某种东西=[“images/slider0.jpg”,“images/slider1.jpg”,“images/slider2.jpg”];对于>
而言,在init和animate以及单击处理程序中,您永远不需要加载纹理。
嘿,
感谢您的积极回答。
我通过向codepe
添加代码,不知何故能够使其正常工作,这里是链接https://codepen.io/saiviru/pen/nwwnoy91当我向代码中添加loadermanager时,它说manager.onload这不是一个函数。我是否需要添加任何依赖项来运行loader manager?
我是从脑后写的,犯了一个常见的错误……n*manager.onLoad(function() {init();animate();});
在加载所有纹理之前应该是
*nhttps://threejs.org/docs/#api/en/loaders/managers/LoadingManager 16nWith this setup, you will not call init或*animate。可以在加载纹理之前允许一些功能,但这是最简单的解决方案。通过这种方式,您可以使用可用的纹理,并且永远不会在事件处理程序或其他地方再次使用TextureLoader。
您好,
我不知道由于某种原因,没有加载管理器的好文档。我无法将您的代码与我的代码集成。https://codepen.io/saiviru/pen/nwwnoy32与以前的版本有什么不同?您当然没有添加管理器。
我没有在codepe
中添加代码,而是在本地服务器中添加代码。我现在已经添加了,您能做必要的更改吗?https://codepen.io/saiviru/pen/nwwnoy23.
另外,请帮我调整滑块,我已经对额外平面的代码进行了注释。
没有。太乱了。但您必须将经理和加载器移出init,并确保不无条件地呼叫init,而只在onLoad内呼叫。您将使用我在开始时提供的连续代码段(可能会有一些更改,如>和render,而不是animate)。
最终,textures将包含您的所有纹理,单击处理程序基本上会这样做:nOnly after making this basic texture switching work fine, I will recommend you to try making a nice animation.nIf I\"m adding your code at the start it won\"t go into init() function. I have added some comments if it makes you look at the code>nYeah, I disabled the LoadingManager,因为它没有显示我想要的行为。TextureLoader.load返回一个Texture对象,该对象在加载图像之前为空。
此演示并不完美,因为它最初似乎不显示图像。但它是响应迅速的,而且代码更干净。我将cube直接添加到场景中,并从相机中删除TransformControls。(你为什么要把它们放在那里?)
非常感谢。这很好。
但主要关注的是为纹理添加滑块效果。这是最难的部分。
是否有可能将滑块动画添加到纹理中。我一直在寻找这个。我只需要一个基本的图像过渡效果。
我在上面告诉过你了。我想你得自己试一试。
我正在尽最大努力。我会问你我是否被困在任何地方。
谢谢你的帮助
[SOLVED] I want a sliding effect on images loaded as textures when a button is clickedn

three.js[已解决]正交摄影机的变换控件:gizmos缩放问题

您好,我正在使用带轨道控制的正交摄影机。我注意到当缩放照相机变焦不改变相机的位置(如透视相机)。首先,我想知道为什么这两个相机的实现方式不同?第二,我也在使用TransformControls,对于透视摄影机,更新功能上的小控件的重新缩放在这个等式中非常有效>但是使用OrbitControls更改缩放而不是正交摄影机的位置时,它没有正常工作。我试着像这样在等式中添加缩放,但没有得到任何好的结果>我应该以不同的方式包括它吗?我应该使用其他控件吗?谢谢大家的帮助!NaDaMa:首先,我很想了解为什么这两个摄像头...

日期:2021-12-11 08:00:01 浏览:1725

three.js多次渲染同一模型(obj模型),FPS要低得多

我试图在程序中渲染150个相同的树模型,但FPS突然从60下降到30+。你能告诉我什么是最好的解决办法吗?非常感谢。和平与爱。skr有两种典型的方法可以解决这个性能问题(太多的绘制调用):- 使用实例化渲染- 将所有几何体合并为一个几何体(因此只有一个网格)...

日期:2021-12-11 08:00:02 浏览:1740

three.js可缩放场景背景

three.js大家好,我有一个场景,由一个物体(反射雕像)组成,保持在一个漂亮背景的中心。我一直在使用威尼斯日落矩形hdr地图作为我的场景背景它既可以作为环境地图,也可以作为背景我看到背景不会与场景中渲染的网格一起缩放。这给人一种场景完全是假的感觉。i、 e状态向上/向下缩放,但背景不缩放。目前,我已经禁用了放大/缩小功能,这样用户就不会感到害怕。我的问题是:1. 当轨道控制放大/缩小时,我是否需要在此处使用一些着色器魔法来放大或缩小场景背景,以便看起来场景中的所有对象都在均匀缩放?或者这根本不可能做到?...

日期:2021-12-11 09:00:02 浏览:1264

three.js移动导入的Gltf模型

three.js我导入了我的gltf模型并将其添加到场景中,但现在如果我尝试移动它,它将不会=新建三、几何();var=混音器( 模型动画[0]>如何移动模式?Prakar_Srivastava:var>3D对象不能是Geometry或BufferGeometry类型。它应该是Object3D或类似Mesh、Points或Line的派生类的实例。在您的情况下,我只是这样声明变量:var mode;在动画循环中,执行以下操作:如果(mod!==未定义)>还请记住,基本3D场景的重要部分在代码片段中丢失(例如相...

日期:2021-12-11 10:00:01 浏览:1097

three.js平面明暗处理的问题

three.js嗨!我在项目中使用节点材质。我在模型渲染方面有问题。它看起来像是真实的平面阴影。如何平滑多边形?也有点像低分辨率阴影纹理贴图的自阴影。可能不是,但可能是。@Arkadiy\\u Vinkovskiy您需要在您的帖子中添加更多细节。屏幕截图不足以说明这里发生了什么。始终包括引起问题的代码,如果您使用的是模型,也要包括这些代码。更好的是,使用codepe制作一个工作示例...

日期:2021-12-11 10:00:02 浏览:991

three.js如何渲染立方体材质?

您好,直到昨天,我才相信Object3D是一组网格,而网格是一组几何体+材质,每个对象只有一个对象。我发现了立方体材质的结构,因此object3D的网格包含1个几何体(boxGeometry)和6个材质!所以问题是,这种网格的渲染效果如何?有关于它的文件吗?(这是为了提高我对three.js)非常感谢还有其他问题,与我的上一个帖子相关,如果一个网格中可能有多个材质,如何设置CustomDistanceMaterial以考虑所有材质的所有贴图?elysium11:所以问题是,渲染如何在这种类型的网格上工作?您...

日期:2021-12-11 11:00:03 浏览:851

three.js如何创建要在网格中拟合的线段

three.js伙计们,我想帮忙,假设我有一个这样的网格图像718×729 1.25 KB我想在网格面内创建线段,也就是说,我想将网格转换成这样的线图像710×828 740字节有人能帮忙吗???...

日期:2021-12-11 12:00:01 浏览:899

three.jsGLTFLoader.js这是我的登记簿错误

three.js每当我试着做决定的时候3.GLTFLoader对象我收到此错误代码:“未捕获类型错误:这是我的登记簿不是一个函数“我需要帮助!由Penta#u Trax在post#5中解决我最终发现我一直在使用错误的文件,当你需要使用jsm/example时,我使用的是js/example。其他东西也是个问题。但这是问题的基础。你能给我们看看你的代码吗?通常,如果你使用的是import语句,GLTFLoader不需要在前面加三个字符。好的,所以在这之前,我刚刚关注了这个视频,因为它是去年发布的。但是现在我试...

日期:2021-12-11 12:00:02 浏览:1060

three.js使用threejs的光流

嘿,我需要通过我的屏幕显示一束移动的光束。我不想使用任何模型或动画。我想知道我是否可以单独使用threejs来实现这一点。我也应该能够控制其运动的颜色强度和路径。嗨!也许这会有帮助:GitHub-jeromeetienne/三倍体积聚光灯: three.js扩展以提供体积聚光灯13,用于可视化光锥。您可以使用THREE.Curve()设置其路径。控制颜色强度,可能取决于曲线上的位置,也可以使用tween.js或者GSAP用于复杂的动画。创造力取决于您这是您想要的吗?https://threejs.org/e...

日期:2021-12-11 13:00:01 浏览:1297

three.js使用光线投射动态绘制多边形

我要画多边形three.js具有交点。为此,我使用下面的函数。首先,我使用光线投射器在第一个交点的第一个点添加球体。每次单击后,在交点处创建新球体,并在该交点和上一点之间创建线。现在,我希望在第一次单击时关闭多边形指向或单击该点周围。如何实现此目标。raycaster params是否与网格一起工作以检测鼠标位置周围的网格?function checkIntersectionclick() = raycaster.intersectObjects(addedObject, true);if (interse...

日期:2021-12-11 13:00:02 浏览:858