我正在使用具有three.js的节点在服务器端渲染对象。我有OBJLoader和MTLLoader,并且正在使用MockBrowser模拟DOM。每当我打印模型的屏幕截图时,我都能看到模型很好,但是纹理尚未加载到模型上。如果我在浏览器中使用three.js并且可以看到纹理,则我使用的代码可以很好地工作,但是在具有完全相同的代码的node.js中,我看不到纹理。我打印出纹理的图像对象,它返回的只是一个空图像对象。如果需要的话,我会提供代码,但是我不确定该怎么做。
我没有收到任何错误或任何东西,纹理将不会加载到对象上。
答案 0 :(得分:0)
我想我将其范围缩小到以下事实:three.js将纹理的图像src分配为URL而不是base64值,并且因为我使用的节点画布无效。我只是使用以下方法手动加载了图片:
for row in reader:
from collections import OrderedDict
# MAKE A COPY
row_copy = OrderedDict({key: value for key, value in row.items()})
result.append(row_copy)
然后将对象的材质设置为该值。由于js的执行方式,我在加载多个对象和纹理时仍然遇到问题,但是至少加载了纹理,只是有时没有在正确的对象上加载。我会弄清楚的。将此留给可能遇到此问题的任何人。