three.js 相关问题

Three.js是一个轻量级的跨浏览器JavaScript库/ API,用于在Web浏览器上创建和显示动画3D计算机图形。 Three.js脚本可以与HTML5 canvas元素,SVG或WebGL结合使用。

动态更改MeshBasicMaterial不透明度

{ “进口”:{ “三”:“https://unpkg.com/ [email protected]/build/ Three.module.js”, “三/</desc> <question vote="0"> <pre><code>&lt;script type=&#34;importmap&#34;&gt; { &#34;imports&#34;: { &#34;three&#34;: &#34;https://unpkg.com/<a href="/cdn-cgi/l/email-protection" data-cfemail="a4d0ccd6c1c1e4d2948a9592968a94">[email protected]</a>/build/three.module.js&#34;, &#34;three/addons/&#34;: &#34;https://unpkg.com/<a href="/cdn-cgi/l/email-protection" data-cfemail="d5a1bda7b0b095a3e5fbe4e3e7fbe5">[email protected]</a>/examples/jsm/&#34; } } &lt;/script&gt; &lt;script type=&#34;module&#34;&gt; import * as THREE from &#39;three&#39;; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); camera.position.z = 10; camera.position.x = -5; const renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); const geometry = new THREE.BoxGeometry( 2, 2, 2 ); var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); const cube = new THREE.Mesh( geometry, material ); scene.add( cube ); material.opacity = 0.2; material.transparent = true; function animate() { requestAnimationFrame( animate ); renderer.render( scene, camera ); } animate(); &lt;/script&gt; </code></pre> <p>以上工作,立方体的不透明度正在改变,但如果移动<pre><code>material</code></pre>更新到setTimeout函数,如:</p> <pre><code>// material.opacity = 0.2; // material.transparent = true; var tmout = function() { material.opacity = 0.2; material.transparent = true; } setTimeout(tmout, 1000 ); </code></pre> <p>那么不透明度不会改变。为什么 <pre><code>material</code></pre> 在 setTimeout 内没有改变?这里有什么不正确的吗?</p> </question> <answer tick="false" vote="0"> <p>使用箭头函数从调用模块内捕获 this 的上下文。 ́\<em>(ツ)</em>/́</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>import * as THREE from &#39;three&#39;; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.z = 10; camera.position.x = -5; const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); const geometry = new THREE.BoxGeometry(2, 2, 2); var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); const cube = new THREE.Mesh(geometry, material); scene.add(cube); material.opacity = 1; material.transparent = true; function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); setTimeout(() =&gt; { this.material.opacity = 0.2; this.material.transparent = true; }, 1000); } animate();</code></pre> </div> </div> <p></p> </answer> </body></html>

回答 0 投票 0

为什么我加载有材质的 GLTF 模型时得到的是黑色模型?

我正在尝试加载具有glb 格式的3D 模型。 这是代码: 我除了什么: 图像 我有什么:图片 var renderer = new THREE.WebGLRenderer(); 渲染器.setSize(1000, 1000); 渲染器。

回答 1 投票 0

Blender 模型在 THREE.js 中看起来完全不同

我想在我的网站上使用一个 Blender 模型,我在其中使用 THREE.js,但是当我加载 GLTF 文件时,它看起来损坏了。东西丢失或位置错误,灯光也似乎......

回答 1 投票 0

ExtrudeBufferGeometry 导致输出旋转

我正在尝试挤出一些形状,但是我发现挤出后,输出看起来像是旋转了一点。 我渲染了三角形的实际形状和挤压形状......

回答 1 投票 0

使用 ThreeJs 渲染的形状具有不稳定/模糊的边缘

我正在尝试使用基本的盒子几何图形在 ThreeJs 中渲染这个立方体,但线条很奇怪且不稳定。即使我将线框设置为 false 并放置一个实心立方体,立方体的边缘仍然像......

回答 1 投票 0

WebGL: INVALID_VALUE: texImage2D: 宽度或高度超出范围是什么意思

我想在 Three.js 后处理中使用 UnrealBloomPass,但是添加effectComposer.addPass(unrealBloomPass) 后出现黑屏,在控制台上我得到以下信息 WebGL:INVALID_VALUE:

回答 1 投票 0

纹理未应用于使用 Three

我正在尝试将纹理应用于 nextjs 组件内部的球体。 我已经用下面的代码尝试过,但它只会显示一个黑球。 我读过这可能与

回答 1 投票 0

Three.js - 如何限制缩放以便对象不会因相机而破裂

我正在创建 Three.js 应用程序。我已经加载了我的 STL 对象。我使用过“OrbitControls”。当我开始使用鼠标中间滚动按钮缩放对象时,它会在某个点中断。 我的相机...

回答 2 投票 0

在Three.js中,使用WebVR时,如何移动相机位置?

我正在尝试调整现有的 Three.js 项目以与 WebVR 配合使用。我已经取得了不错的进步——我可以在 VR 中环顾场景,但我无法将相机位置移离初始位置

回答 2 投票 0

react-三纤场景背景比原始图像更亮

我的反应三纤维背景应该是黑暗的星空。但在场景中却非常明亮。这是原始图像: 这是天空盒的代码: const { 场景 } = useThree(); ...

回答 1 投票 0

用三个创建大炮主体。网格

我有一个 THREE.js 平面,使用 Perlin 噪声上下移动点来制作地形。现在我需要为相机添加物理特性,以防止它从飞机上掉下来。 我希望能够

回答 1 投票 0

Three.js中如何保证球体周围的背景纹理平滑连接?

下面是设置纹理并将其映射到大球体上的代码。我已经尝试了各种包装,但背景仍然不光滑,因为有一个明显的连接......

回答 1 投票 0

如何在反应三纤维中定位物体

我在画布上有一个立方体网格,我想将其移动到左侧(更改其 X 轴)而不更改其旋转点。我尝试将参数position={[1,0,0]}应用于...

回答 1 投票 0

如何加载样条场景而不阻塞反应中的主线程

我使用React构建了一个登陆页面,然后决定在主页中添加一个样条场景,它工作得很好,除了在加载时,当时整个页面冻结并且当我单击...

回答 2 投票 0

Three.js - 视图宽度

有没有办法找出场景渲染部分的宽度? 例如,如果我们有一个宽度为 100 的网格,但使用一定程度的缩放进行渲染...我如何计算...的宽度...

回答 2 投票 0

仅将材质设置为来自 Open Bim 组件库/三个 js 的fragmentMesh 类的一个实例

我尝试为特定的fragmentMesh 设置独特的材质。然而,事实证明,fragmentMesh 可以有多个实例,因此材质将应用于其所有实例。 怎么...

回答 1 投票 0

Three.JS 渲染 .stp 文件

我希望基于“.stp”文件创建一个简单的 3D 模型预览。 在搜索时我发现了三个 JS libairy。这个库允许您渲染 3D 文件,如下例所示:https://thirdjs....

回答 1 投票 0

需要 Threejs AnimationClip 示例

in ThreeJS:我有一个 object3D,想用它做简单的关键帧动画:移动、旋转、缩放。 这里有一个简单的例子:https:// Threejs.org/examples/#misc_animation_keys 但它确实...

回答 3 投票 0

React 三纤维为 obj 模型添加纹理

在我的应用程序中,我想向加载的 .obj 模型添加纹理。我的 .fbx 加载模型也有同样的情况。下面是我的示例代码,但这仅适用于 sphereGeometry 之类的东西,而不是......

回答 3 投票 0

如何制作(动态)文本以3D模型的形状?

我是Three.js的初学者。我想让我的 3D 模型像这样的文本代替像素,或者小文本像薄膜一样覆盖它。看来我需要使用粒子系统...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.