问题标签 [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.
3d - 如何测量 UV 坐标?
我有一个导出 UV 映射 3D 模型的 3D 建模程序。
但是,UV 坐标似乎无效或使用了我不理解的系统。我需要帮助了解 UV 坐标如何映射到位图的像素(X,Y)
我有几个 150x100 到 200x600 范围内的纹理。以下是一些摘录:
根据上述数据,考虑到最大可测量像素为 600,700+ UV 坐标是否会回绕到图像的开头?<0 UV 坐标是否从图像的末端向后测量?
3d - 为什么这些 UV 映射坐标用 0-1 和像素表示?他们不应该只使用0-1系统吗?
好吧,我有许多 3D 模型的 UV 坐标,它们清楚地在 0-1 范围内,许多看似像素值的坐标在 100-300 范围内。
我怎么知道将坐标解释为哪一个?有这方面的标准或系统吗?
我注意到导出文件中的每个 3d 网格都可能使用任一系统。这是正常的程序吗?如果是,我如何解释 UV 纹理映射坐标以在我的 3d 引擎中正确显示它们?
0-1系统中的坐标示例:
按像素测量的坐标示例:
c++ - OpenGL 纹理映射
我是游戏编程和图形编程的新手。但是,我很想学习,所以我开始用 OpenGL 构建游戏引擎。我已经实现了所有基本的图形功能,现在我想为我的三角形网格添加纹理支持。
我唯一能找到的纹理映射教程是针对单个多边形的——如何定义环绕整个网格的纹理?
我正在使用 lib3ds ( http://code.google.com/p/lib3ds/ ) 从 .3ds 文件加载网格。.3ds 文件是否带有一些纹理坐标数据或什么?
java - Android 纹理映射 - 使用 PNG 文件映射不正确
在 opengles 方面我不是专家,但我一直在我的很多应用程序中使用它。我创建了一个新应用程序来让自己在 opengles 上焕然一新,然后我画了一个正方形。现在我应用了纹理映射,但映射不正确。我一遍又一遍地彻底检查了紫外线坐标,它似乎是正确的。经过数小时的困惑,我终于决定将 .png 再次更改为我从网上下载的随机文件。瞧!它映射正确。当我切换回旧的 .png 时,它再次映射不正确。有人能告诉我为什么会这样吗?
c++ - 将多边形从 3d 空间展开到 2d 空间(使用三角形)以获得纹理坐标
所以我在 Ogre3D 中创建了一个模型,这个模型由许多任意旋转和位置的三角形组成。我想像许多建模程序一样“展开”模型,以便所有三角形都映射到 2d (x,y) 但三角形大小保持不变。这是用于应用贴花。必须保持三角形大小的原因,以便在应用纹理时不会有任何拉伸。
这是我正在考虑的方向,但我无法将其可视化并实现正确的算法:
一旦返回,将有所有三角形的转换版本,以便它们全部展开并放置在纹理上,我遇到的问题是映射到 x,y 空间。我不确定如何将 3d 空间中的三角形转换为 2d 空间,以便它保持其所有属性(例如从倾斜视图到表面的垂直视图)任何帮助将不胜感激。
iphone - 将 Cinema 4D 模型和纹理放入 iPhone 应用程序
我是一名 iPhone 开发人员,我正在尝试将我在 Cinema 4D 中创建的 3D 模型放入我正在制作的应用程序中。我实际上已经找到了一种方法来获取模型(通过将其导出为 .dae 或 obj 并使用 python 脚本),这种方法非常有效,但是我无法获得它附带的纹理。我的脚本实际上也只能处理 1 个纹理。
基本上我需要在 c4d 中创建和导出 UV 贴图(但我不知道如何执行此操作),或者我想办法将多个纹理读取到我的 Open Gl - ES 应用程序中,使用脚本或 PowerVR。(这可能更好)
对于菜鸟问题,我很抱歉,但我在 3D 世界中非常陌生。
干杯
python - 提取 Blender 原始坐标 (ORCO)
我已经从 Blender(2.5+)制作了一个导出器(在 Python 中)到自定义格式。困扰我的是,我下载的大多数模型都不包含 UV 层,而是使用自动生成的纹理坐标。
问题是:如何从 Python 访问 Blender 生成的坐标(ORCO)?
编辑 2:示例文件: http ://dl.dropbox.com/u/16317117/orco.blend
通过使用立方体加载默认场景并将其纹理单元类型更改为“木材”来创建。默认映射已经生成:平面。如果您渲染场景,您可以看到正确应用了木材纹理,就好像立方体具有适当的 UV 展开一样。
编辑3:答案。
我在 Yafaray blender exporter 源中找到了答案。谢谢你们!如果您看到此线程-请回复,以便我可以奖励您。
生成坐标 (ORCO) 是顶点的“标准化”局部坐标。基本上,给定对象的局部边界框:Orco(v) = 2*(v-center)/size
.
opengl-es - openGLES 中的简单 2D UV 映射问题
我对低级openGL编码相当陌生,我有一个问题,也许我太累了,无法找到解决方案。我敢肯定答案很简单,我正在做一些非常愚蠢的事情,但是这里......
我有一个 1024 x 512 的纹理,我正在渲染一个 2D 四边形,它打算使用该纹理的一部分。四边形与我尝试渲染的纹理部分的大小相同,例如顶点之间的 100 x 100 以渲染 100 x 100 的纹理部分。假设基于零的像素坐标,纹理像素来自 0(s) 和 104(t),因此 UV(st) 被计算为 0 / 1024 和 104 / 512,范围为 100 / 1024 和 204 / 512。
然而,当我渲染四边形时,我从 103(t) 处的像素坐标中得到一条线,它是图像不同部分的一部分,所以它真的很突出。我可以通过将 UV 设置为 0 / 1024 和 105 / 512 来解决这个问题,但这对我来说似乎非常错误。
我一直在寻找一段时间,找不到我做错了什么。我在 glparams 中尝试了 GL_LINEAR、GL_NEAREST、clamping 等,但无济于事。有人可以指导我解决我的错误吗?
algorithm - 有效地将二维形状放置在矩形中。如何接近它?
我一直在七个互联网上进行广泛搜索,但无济于事。最接近我需要的似乎是切割库存问题,仅在 2D 中(这令人失望,因为 Wikipedia 没有提供有关如何解决该问题的任何说明)。另一个相似的问题是UV 展开。那里有解决方案,但仅限于您从各种 3D 软件的附加组件中获得的解决方案。
长话短说-我想要的是:给定一个已知宽度和高度的矩形,我必须找出可以在该矩形内放置多少个已知尺寸(可以随意旋转)的形状(多边形)。
例如,我可以选择一个 T 形块并在同一个矩形中以一种有效的方式将它们打包,从而每个矩形有 4 个形状
以及根据它们的边界框平铺它们,在这种情况下我只能适合 3
但是,当然,这只是一个例子……我认为解决这个特殊情况并没有多大用处。我现在能想到的唯一方法要么是回溯它们的复杂性,要么只解决这个问题的特定情况。所以......有什么想法吗?
opengl-es - OpenGL:大型纹理“映射”与多个单一纹理性能
我正在决定是否要将整个场景的多个纹理映射到几个 1024x1024 纹理图集中。拥有更少、更大的纹理是否有很大的好处,这样您就可以减少 GL 渲染调用,尽管总三角形数量相同?这是普遍现象吗?
在我的例子中,我的目标是具有大约 5,000 个三角形场景和 16 个纹理的 iPad。考虑到分布,如果我不合并,我正在查看大约 5 倍的 glDrawArrays 调用。