AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[three.js](coding)

Martin Hope
leon
Asked: 2025-04-28 18:56:11 +0800 CST

在 React Three Fiber 中使用 CameraControls 时如何实现视图偏移平移?

  • 5

在 camera-controls 源代码中,有一个视图偏移的示例。如何使用包装在“@react-three/drei”中的 CameraControls 来实现这个功能?

let offsetUpdated = false;
const viewOffset = new THREE.Vector2();
const cameraControls = new CameraControls( camera, renderer.domElement );
cameraControls._truckInternal = ( deltaX, deltaY ) => {

    viewOffset.x += deltaX;
    viewOffset.y += deltaY;

    camera.setViewOffset(
        width,
        height,
        viewOffset.x,
        viewOffset.y,
        width,
        height,
    );
    camera.updateProjectionMatrix();
    offsetUpdated = true;

}

示例来源:查看代码

现场演示:查看演示

更新:

@Łukasz-daniel-mastalerz 非常感谢!你的代码可以运行,但是有一个奇怪的着色问题MeshReflectorMaterial。我复制了你的代码,并添加了更多对象:我的场景演示

平移后出现奇怪的阴影: 阴影问题

three.js
  • 1 个回答
  • 52 Views
Martin Hope
Victoria Stuart
Asked: 2025-01-07 07:11:08 +0800 CST

指定 three.js 图形大小

  • 5

我如何为此处显示的图表指定宽度 - 例如作为嵌套的填充元素?如图所示,图表占据了整个页面宽度;我想指定一个尺寸,例如 800px x 600px。

是否有可能使用 CSS 解决方案,例如包含<div id="3d-graph"></div>在另一个 DIV 元素中?

代码来源: https: //github.com/vasturiano/3d-force-graph(“图像作为节点”)

<head>
  <script src="//unpkg.com/3d-force-graph"></script>
</head>

<body>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Nam ut fringilla enim. </p>

<div id="3d-graph"></div>

<p>Suspendisse efficitur pulvinar elementum. Vestibulum a est eu erat rutrum scelerisque non et diam.</p>

<script type="module">
  import SpriteText from "https://esm.sh/three-spritetext";

  const Graph = new ForceGraph3D(document.getElementById('3d-graph'))
    .jsonUrl('https://raw.githubusercontent.com/vasturiano/3d-force-graph/c8019651c7a851ebcd7ef595123b631fe6eca3eb/example/datasets/miserables.json')
    .nodeAutoColorBy('group')
    .nodeThreeObject(node => {
        const sprite = new SpriteText(node.id);
        sprite.material.depthWrite = false;
        sprite.color = node.color;
        sprite.textHeight = 6;
        return sprite;
      });
</script>
</body>

three.js
  • 1 个回答
  • 39 Views
Martin Hope
Pershing
Asked: 2024-09-16 06:02:27 +0800 CST

线性深度、透视深度和正交深度之间有什么区别?

  • 5

研究three.webgpu.js的代码时,我遇到了“线性深度”、“透视深度”和“正交深度”这些术语。我知道透视投影和正交投影之间存在视觉差异,但为什么viewZ不同投影之间的值会有所不同?此外,线性深度只是正交深度的另一个名称吗?

在研究了函数viewZToOrthographicDepth和之后viewZToPerspectiveDepth,我注意到没有viewZToLinearDepth函数,于是受到了启发,提出了这个问题。

const viewZToOrthographicDepth = (viewZ, near, far) => viewZ.add(near).div(near.sub(far));
const viewZToPerspectiveDepth = (viewZ, near, far) => near.add(viewZ).mul(far).div(far.sub(near).mul(viewZ));

注意:我特别指的是每种投影类型之间的深度(z)值。

three.js
  • 1 个回答
  • 21 Views
Martin Hope
Parisa Shahbazi
Asked: 2024-08-05 19:41:08 +0800 CST

是否可以使用 Autodesk APS 创建 3D 建筑配置器?或者 Three.js 更好?

  • 4

我是一名 Three.js 开发人员。我最近也知道“thatopencompany”的 ifc 文件(BIM)。

我们想要创建一个像https://planner5d.com/这样的网站。

最好的选择是什么?Three.js

或者

欧特克 APS

或者

西奥基特

?

我们需要改变纹理和材料,并替换家具等用于室内设计的物品……

3D 配置器 1

3D 配置器 2

我想创建高性能的先进 3D 室内设计配置器

拖放、更改纹理、更改模型中的对象

3D 配置器 3

3D 配置器 4

3D 配置器 5

three.js
  • 1 个回答
  • 32 Views
Martin Hope
daniel
Asked: 2024-03-20 16:03:34 +0800 CST

在 Three.js 中旋转 hdr 地图

  • 6

我已在 Three.js 场景中将 x 轴设置为向上轴。现在所有环境贴图 (hdr) 的方向都是错误的。我该如何修复?我尝试旋转 hdr 文件,但这不起作用。

this.pmremGenerator = new THREE.PMREMGenerator(renderer as any);
new RGBELoader().setDataType(THREE.UnsignedByteType).setPath('assets/').load('adams_place_bridge_1k.hdr', (texture) => {
  texture.mapping = THREE.EquirectangularReflectionMapping;
  var envMap = this.pmremGenerator.fromEquirectangular(texture).texture;
  scene.background = envMap;
  scene.environment = envMap;
  texture.dispose();
});

有立方体贴图的解决方法吗?

three.js
  • 1 个回答
  • 15 Views
Martin Hope
Bernardy Gosal
Asked: 2024-02-20 22:43:17 +0800 CST

使用 GLTFLoader 加载的模型未正确渲染

  • 7

我已经使用 gtlf 加载器将我的测试模型导入到 Threejs 中,但结果完全平坦,而不是应有的样子。它在 Threejs 编辑器中运行良好。请帮忙

import * as THREE from 'three';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';

const scene = new THREE.Scene();

const camera = new THREE.PerspectiveCamera(70, innerHeight, innerWidth, 0.1, 1000);
camera.position.set = ( 0, 0, 0 );

const renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

const light = new THREE.DirectionalLight(0xffffff, 1);
    scene.add(light);

const controls = new OrbitControls( camera, renderer.domElement );  


const loader = new GLTFLoader();
loader.load( './scene.glb' , function (gltf) {
    console.log(gltf);   
    const model = gltf.scene;
    scene.add( model );
}, function (xhr){
    console.log((xhr.loaded/xhr.total * 100) + "% loaded")
}, function (error){
    console.log('model not loaded')
}
);

function animate(){
    requestAnimationFrame( animate );
    controls.update();
    renderer.render(scene, camera);
}
animate();

在此输入图像描述

在此输入图像描述

three.js
  • 1 个回答
  • 20 Views
Martin Hope
Quicksilver
Asked: 2023-12-28 18:24:56 +0800 CST

使用 React 三纤维制作顶点上有点的网格

  • 5

我正在尝试使用 React 三纤维制作一个带有点的网格。我尝试使用 LineDashedMaterial,但它并不完美。我是 Threejs 新手。知道如何使用网格或平面制作带有点的表面吗?

<Canvas frameloop="demand" camera={{ position: [75, 1, 0.1], zoom: 15 }}>
<mesh>
    <gridHelper
        material={
          new THREE.LineDashedMaterial({
            dashSize: 0.1,
            gapSize: 1,
            vertexColors: true,
          })
        }
        rotation-y={[Math.PI / 2]}
        position={[0, 12.5, 0]}
        onUpdate={(grid) => grid.computeLineDistances()}
      />
</mesh>
</Canvas>

代码沙箱:这里

我想要实现的目标是这样的

在此输入图像描述

three.js
  • 1 个回答
  • 36 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve