问题标签 [uv-mapping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1253 浏览

image - Blender 导出的 UV 贴图纹理未在三个 JS 中显示

Blender 导出的 UV 贴图纹理未在三个 JS 中显示

问候,2014 年 11 月 13 日

简而言之,我正在尝试使用下面的代码来帮助three.js从已成功加载的混合器导出文件中识别材料,而变形影响效果很好!但是,搅拌机内的 UV 贴图纹理没有显示,并且控制台没有抛出错误?我可以轻松地使用 imageutils 单独加载纹理,但 UV 映射当然会丢失!奇怪的是,当我单独加载 UV 图形时,我得到了象征 UV 图形的奇怪图案,但意义让我失望了?...我是 three.js 的新手,尝试了许多代码组合,如下面的最后一次尝试所示。任何想法如何尝试 three.js 来识别 UV 材料?

非常感谢,泰德

0 投票
3 回答
1813 浏览

c++ - DirectX/C++:Obj 导出后,纹理坐标在引擎中不正确“正确”

如果我绘制一个平面,则纹理坐标会正确映射。(4 个顶点,4 个 TC,6 个索引(2 个多边形))

即使它被细分,(9 Verts, 9 TC, 27 Indices(8 polys)) 纹理也会显示: 在此处输入图像描述

(玛雅复平面) 在此处输入图像描述

我可以使用我的 [书面] Obj 转换器并将纹理坐标加载到缓冲区中。但是,如果我在 Maya 中挤出一个面,甚至应用平面 UV 贴图来“修复”损坏的 uv,(上图)纹理坐标在引擎中会变得非常狂野。(以下) 在此处输入图像描述

Obj 纹理坐标格式有问题吗?

更新:我用 D3D11_PRIMITIVE_TOPOLOGY_LINELIST 绘制,并注意到索引也发生了变化。在此处输入图像描述这会是问题吗?或者我应该在http://www.gamedev.net/topic/600234-texcoord-count-is-different-than-vertex-count/上重建纹理坐标

0 投票
0 回答
83 浏览

java - 如何将颜色应用于具有未知索引的不规则多边形?

我有一组不规则多边形的顶点 (X,Y),有些有 4 个顶点,有些超过 4 个。我正在创建一个顶点数组,用于从使用 getTransformedVertices() 的顶点集绘制方法。纹理的索引和 UV 是未知的,所以我必须使用下面的 Triangulate() 方法计算 tem。我在 setColor() 和 setImage() 方法中设置了颜色和纹理。

但是,具有超过 4 个顶点的多边形无法正确渲染。我已经尝试了几个星期,几乎搜索了一半的互联网。这是我能想到的。具有 4 个顶点和轮廓的多边形工作正常。但我无法在多边形上正确显示纹理。请帮忙

在具有超过 4 个顶点的多边形上未正确渲染纹理 (BLUEBIRD POLYGON)

PolygonTriangulation.java - 来自 AssetFX - http://www.experts-exchange.com/Programming/Languages/Java/Q_27882746.html

0 投票
1 回答
3606 浏览

three.js - Three.js 高效地将 Uvs 映射到平面

我正在开发一个游戏,其中有许多相同纹理但长度/高度不同的墙壁。目前我正在克隆一个基础纹理并为每面墙设置重复值。这会在内存中创建许多纹理。

我想要做的是改变平面 uvs 以正确适应纹理。我对此进行了尝试,得出了一些结果。

正如您可能会说的那样,这样做的问题是创建了一个额外的面孔,这不是什么大问题,但我真的很想避免这种情况。最重要的是,如果平面长度不能被其高度整除,则纹理将拉伸/压缩。此外,其中的平面高度段是固定的,导致限制。

我不太关心创建额外的面孔。这是必要的吗?一张脸的每个三角形可以有多个紫外线吗?需要吗?

我不熟悉 Uv,必须有一种有效的方法来让我的墙壁看起来不荒谬而不会破坏记忆,对吧?

演示:http ://www.titansoftime.com/uv.php

0 投票
0 回答
2921 浏览

three.js - ThreeJS 将 uv 坐标传递给 RawShaderMaterial?

我正在尝试从头开始创建一个带有纹理贴图的着色器。查看其他材质(着色器)及其来源,似乎它们都具有传递给它们的“uv”属性。我很难弄清楚该 uv 属性是在哪里生成和分配的。它是设置在几何体、材料还是两者上?

我正在使用默认的 THREE.Geometry 对象,例如THREE.SphereGeometry. 我假设那些已经在它们上设置了属性,但是当我将它们的网格作为场景子项检查时,我看不到它们上设置了任何属性键/值。

ShaderMaterial这是由 a或 other生成的着色器的示例:

顶点着色器

片段着色器

但是,当我尝试上述操作时,我的着色器(使用 RawShaderMaterial)只是变为空白并且我得到“无法编译”。

三中是否有一些魔法可以在着色器、对象和属性之间建立关系?

我发现了一个THREE.js 生成 UV 坐标的问题,但我再次猜测三个默认对象已经正确设置了 UV 属性?

在这种情况下,我特别想使用 RawShaderMaterial。有人可以指出三个源中为对象生成 UV/传递给着色器的位置,或者告诉我如何正确设置 UV 以在运行时在片段/顶点中使用?

0 投票
0 回答
514 浏览

three.js - 使用从搅拌机导出的 UV 贴图,但更改图像参考 Three.js

我目前正在将默认纹理映射到搅拌机中的模型,然后将其导出为 .json 模型。

然后我将模型加载到我的场景中,并允许用户动态更改映射到它的图像文件。所有图像的大小和视觉比例都相同,因此我想以相同的方式将它们映射到几何图形。

是否可以将使用 Blender 导出的 UV 映射与这些新图像重用?当我手动设置

uv映射都是错误的。

最终,我想指定一种将所有纹理映射到模型的方法,然后能够切换纹理。有没有比尝试重用我制作的搅拌机 uvs 更好的方法?

谢谢。

0 投票
1 回答
100 浏览

3d - 网页上的 UV 纹理映射,用于逼真的产品预览

我需要为客户提供他们在线购买的产品的真实预览。他们为衬衫选择某种面料,然后将该特定图案投影(映射)到衬衫的 3D 模型上,这样他们就知道衬衫的外观了。

什么是这样做的好方法?希望网游开发者对此有一个好的答案!

0 投票
1 回答
1746 浏览

three.js - 为什么我的 three.js 模型在导入后缺少人脸?

我已经与three.js 问题斗争了12 个小时,试图确定为什么缺少一些向外指向的对象面。只有当我修改了网格模型、挤压平面或刀在网格中投影了一个孔时,才会出现这种情况。

我在网上找到了一些似乎对我不起作用的解决方案:我已经为所有材料添加了双面黑客,这确实让我可以看到有孔的物体,因此它可以部分工作。我摆弄了不同的导入器(JSONLoader、OBJLoader),它们似乎都有与上面列出的相同的问题,所以它让我相信它确实是模型本身。

我在网上看到的研究表明,修改网格可能会使法线搞砸,所以我在模型查看器上看不到的任何面只需翻转并再次执行 UV 贴图,但这并不能解决问题。

我希望知道 Blender 和 three.js 的人会知道问题所在。我知道这很简单,我只是错过了一步,因为我是新手。

这是演示站点和代码的链接:http: //guitar.dodgestat.com/objloader/

0 投票
1 回答
464 浏览

c++ - D3D11/C++ 像素着色器中的 uv 插值不准确。如何避免?

我正在尝试在屏幕上绘制一个带有纹理的四边形,以使纹素和像素完美对齐。听起来很容易。我使用这些着色器绘制了 2 个三角形(作为 TRIANGLE_LIST,所以有 6 个顶点):

其中 outputSize 和 topLeftPos 是常量,以像素为单位表示。

现在对于 outputSize = (102,12) 和 topLeftPos=(0,0) 我得到(我所期望的):
链接到图像(因为我不允许发布图像)

但是对于 outputSize = (102,12) 和 topLeftPos=(0,0.5) 我得到: x=0, y=0.5 的输出
链接到图像(因为我不允许发布图像)

如您所见,有一个 uv 不连续性,其中 2 个三角形连接并且 uv 的插值不准确)。这基本上只发生在 0.5 附近的位置(在 x 和 y 中)(实际上低于 0.49 它正确捕捉到 texel 0 和高于 0.51 它正确捕捉到 texel 1,但在两者之间我得到了这个工件)。

现在,出于我需要的目的,拥有完美的像素映射是必不可少的。谁能告诉我为什么会这样?

0 投票
0 回答
1458 浏览

python - 使用 openmaya API 2.0 创建 UV 集

我为 Maya 编写了一个自定义阅读器节点(在 python 中使用 openmaya API 2.0),我想将我的 uv 集发送到一个常规的 Maya 网格节点。

我想知道在网格节点中推送 uv 集的最佳方法是什么?我无法找到我必须创建的数据以及如何将它们发送到网格节点。

我的读者是OpenMaya.MPxNode将自定义数据推送到OpenMaya.MPxSurfaceShape. 该形状通过外网/网内插头链接到常规的 Maya 网格。我尝试使用compute但没有成功填充此形状的 uvSet 插件。我希望将 UVSet 发送到网格。

以下代码示例是一个有限的测试,我的唯一目标是创建一个新的 UVSet 并将其附加到网格。

任何可以提供帮助的想法或文档?我尝试了几件事,但总是收到以下错误。

错误:

运行代码:

更新 1: THEODOX 输入

我添加了以下行 (59)

结果:我仍然收到相同的错误消息