当前位置: 首页 > 知识库问答 >
问题:

如何映射图像上的部分球体在three.js

仉磊
2023-03-14

我创建了一个完整的球体外瓷砖,当它们位于视野内时,可以单独处理它们。

为此,我将一个等矩形全景图分成几个二次图像,将它们映射到这些瓷砖上。但不知何故,纹理会在每个瓷砖中最高和最低的线段行上移动。

一些导入的sqare图像的示例

原始测试图像:

我怎样才能把纹理正确地映射到瓷砖上?创建图块的代码如下:

/*
    segment Data:
    x/y are generated by a loop
    maxX/maxY are the maximum values of these loops
*/
sphere = new THREE.SphereGeometry(radius, 4, 4, segmentData.x * 2 * Math.PI / segmentData.maxX, 2 * Math.PI / segmentData.maxX, segmentData.y * Math.PI / segmentData.maxY, Math.PI / segmentData.maxY);
texture = new THREE.TextureLoader().load(tileImagePath);
material = new THREE.MeshBasicMaterial({map: texture});
mesh = new THREE.Mesh(sphere, material);
scene.add(mesh);

我对three.js很陌生,所以这可能是一个非常简单的问题。

希望有人能帮忙?

共有1个答案

侯焱
2023-03-14

多亏了ScieCode,问题原来是由r103和r104版本中的错误引起的。

它将在下一版本中修复:https://github.com/mrdoob/three.js/issues/16454

 类似资料:
  • 我有一个OpenGL程序,我想用地球的位图对球体进行纹理处理。我在搅拌器中准备了网格,并将其导出到OBJ文件。该程序加载适当的网格数据(顶点、uv和法线)和正确的位图-我已经用骨骼位图检查了它的纹理立方体。 我的程序是纹理球体,但不正确(或以我不期望的方式)。这个球体的每个三角形都包括这个位图的变形副本。我检查了位图,uv似乎没问题。我尝试了多种尺寸的位图(2的幂,2的倍数等)。 纹理是这样的:

  • 如果位图是(或不是)旋转,我如何在android上映射RectF边界框? 我已经在左侧图像上有RectF,需要将其坐标映射到右侧图像。 很棒的油漆描述

  • 我已经创建了两个球体,目前正在尝试对它们进行纹理处理。然而,纹理坐标似乎有点偏离。 纹理应用于两个球体的结果(你可以忽略不在正方形周围的黑线,这只是相机-是的,这是AR应用程序): 现在,我使用perl脚本导出球体,我发现它将obj文件转换为顶点和纹理代码列表OBJ2OPENGL。obj文件已转换为2160顶点。 当我渲染球体时:

  • 问题内容: 使用Graphics2D,我如何拍摄黑白图像,并用来定义 在另一幅图像上应该渲染和不应该渲染的图像? 例如,如果我有一个图像,例如一个字段,并且在该字段上是一头 母牛,那么在用Java渲染时 , 在相同尺寸的另一幅图像上,我会在黑色背景上以与母牛相同的坐标绘制一个白框图像会是 全黑的,除了我有白盒子的那头牛? 问题答案: 编辑:基于聊天中的长时间讨论,很明显有人 对意图有误解,而最初的

  • 问题内容: 使用Graphics2D,我如何拍摄黑白图像,并用来定义 在另一幅图像上应该渲染和不应该渲染的图像? 例如,如果我有一个图像,例如一个字段,并且在该字段上是一头 母牛,那么在用Java渲染时 , 在相同尺寸的另一幅图像上,我会在黑色背景上以与母牛相同的坐标绘制一个白框图像会是 全黑的,除了我有白盒子的那头牛? 问题答案: 编辑:基于聊天中的长时间讨论,很明显有人 对意图有误解,而最初的

  • 使用Graphics2D,我如何拍摄黑白图像,并使用它定义应该在另一个图像上渲染什么和不应该在另一个图像上渲染什么? E、 g如果我有一个图像,比如说,一个字段,在该字段上是一头奶牛,在另一个相同尺寸的图像上,我在黑色背景上,在奶牛的相同坐标处绘制一个白色框,当用Java渲染时,除了我有白色框的奶牛之外,图像将全部为黑色?