THREE.js - 纹理映射要求

时间:2016-08-02 15:10:02

标签: three.js texture-mapping

简介

我有一个Web服务,它返回包含图像路径的json结果。 这些图像不一定是方形图像(例如200px×250px)。

问题

纹理映射似乎不支持非方形图像。为了使纹理映射起作用,我必须手动下载图像,调整图像大小,并将该图像用于纹理贴图(并且它可以工作)。

问题

A)有没有办法让three.js / webgl使用非方形图像进行纹理映射?

B)是否有办法以编程方式加载&调整图像大小,然后加载它以进行纹理映射?

谢谢大家。

可能的解决方案?

我发现了什么是可行的选择。让我知道你们对此的看法。

基本上,我将加载远程图像并绘制到一个方形大小的Canvas元素。然后我可以从画布(.getImageData)获取图像并将其保存到我的Web服务器的图像文件夹中(如果不能这样做,那么我可以将图像保留在画布上)。最后,加载图像以进行纹理映射。

我知道这很模糊和简单。但是,嘿,越简越好吧? 这有用吗?

1 个答案:

答案 0 :(得分:1)

请勿以非保形方式调整大小,只需取一个方形截面(例如,如果图像为250 X 220,则只需切出220 X 220子图像)。纹理分类算法可能很好地依赖于您的大小调整可能会导致短路的角度和相关特征。