我已经使用Three.js几周了,我设法将纹理应用于通过代码直接创建的多维数据集,但是一旦我尝试使用OBJLoader
加载OBJ文件,我注意到我无法使用相同的方法加载TextureLoader
的简单png或jpg纹理。
现在我不完全确定会出现什么问题,如果这不是正确的方法,如果我只是不能加载一个简单的图像或者我没有正确应用它。
我已经看到应用纹理似乎很容易使用MTL文件,但不幸的是我不知道如何制作。
我目前的代码如下所示:
var loader = new THREE.OBJLoader( manager );
loader.load( 'models/tshirt.obj', function ( object ) {
object.position.x = 0;
object.position.y = -200;
object.scale.x = 10;
object.scale.y = 10;
object.scale.z = 10;
obj = object;
texture = THREE.TextureLoader('img/crate.png'),
material = new THREE.MeshLambertMaterial( { map: texture } );
mesh = new THREE.Mesh( object, material );
scene.add( mesh );
} );
但它似乎没有用。该模型不加载并从Three.js给我随机错误。如果不是上面的代码,我改变scene.add( obj);
模型实际加载。
我应该在这做什么?我应该继续尝试制作MTL文件吗?
我的完整工作代码可以在http://creativiii.com/3Dproject/old-index.html
看到编辑:添加网格而不是obj时出现的错误是
three.min.js:436 Uncaught TypeError: Cannot read property 'center' of undefined
答案 0 :(得分:2)
尝试以下代码:
Traceback (most recent call last):
File "/usr/bin/google_metadata_script_runner", line 11, in <module>
load_entry_point('google-compute-engine==2.8.3', 'console_scripts', 'google_metadata_script_runner')()
File "/usr/lib/python2.7/dist-packages/google_compute_engine/metadata_scripts/script_manager.py", line 109, in main
debug=bool(options.debug))
File "/usr/lib/python2.7/dist-packages/google_compute_engine/metadata_scripts/script_manager.py", line 69, in __init__
self._RunScripts(run_dir=run_dir)
File "/usr/lib/python2.7/dist-packages/google_compute_engine/metadata_scripts/script_manager.py", line 80, in _RunScripts
script_dict = self.retriever.GetScripts(dest_dir)
File "/usr/lib/python2.7/dist-packages/google_compute_engine/metadata_scripts/script_retriever.py", line 213, in GetScripts
return (self._GetAttributeScripts(instance_data, dest_dir) or
File "/usr/lib/python2.7/dist-packages/google_compute_engine/metadata_scripts/script_retriever.py", line 179, in _GetAttributeScripts
dest.write(metadata_value.lstrip())
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2014' in position 201: ordinal not in range(128)
纹理加载更改来自:How to apply texture on an object loaded by OBJLoader?。