【发布时间】:2016-08-02 15:10:02
【问题描述】:
简介
我有一个 Web 服务,它返回一个包含图像路径的 json 结果。 这些图片不一定是方形图片(例如 200px x 250px)。
问题
纹理映射似乎不支持非方形图像。为了使纹理映射工作,我必须手动下载图像,调整它的大小,然后使用该图像进行纹理映射(它可以工作)。
问题
A) 有没有办法让 three.js/webgl 使用非方形图像进行纹理映射?
B) 有没有办法以编程方式加载和调整图像大小,然后加载它以进行纹理映射?
谢谢大家。
可能的解决方案?
我找到了可行的选择。让我知道你们对此的看法。
基本上,我将加载远程图像并绘制到一个正方形大小的 Canvas 元素。然后我可以从画布 (.getImageData) 中获取图像并将其保存到我的 Web 服务器的图像文件夹中(如果不能这样做,那么我可以将图像保留在画布上)。最后,加载图像进行纹理映射。
我知道这是相当模糊和简单化的。但是,嘿,越简单越好,对吧? 这行得通吗?
【问题讨论】:
-
three.js 确实支持无特殊处理的非方形纹理:jsfiddle.net/greggman/MZpx8
-
@gaitat。我不明白。此示例使用一个正方形的 .jpg。
-
不,它不是正方形;它的大小是 1280x1202