我是 Three.js 的初学者。
我尝试了这里找到的代码:Creating-a-scene
然后我尝试使用此处找到的代码添加一个 Sprite : Sprite
但是我无法让它工作,因为我收到以下错误:
Uncaught TypeError: Cannot read property 'x' of undefined
at SpritePlugin.render (three.js:6973)
at WebGLRenderer.render (three.js:21007)
at render (sprite.html:43)
html 文件就在那里: http://www.planetarium2016.com/sprite.html
我的错误在哪里?这是我的代码:
<html>
<head>
<title>My first three.js app</title>
<style>
body { margin: 0; }
canvas { width: 100%; height: 100% }
</style>
</head>
<body>
<script src="https://rawgithub.com/mrdoob/three.js/master/build/three.js"></script>
<script>
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
// instantiate a loader
var loader = new THREE.TextureLoader();
//allow cross origin loading
//loader.crossOrigin = '';
// load a resource
loader.load("https://codefisher.org/static/images/pastel-svg/256/bullet-star.png");
var spriteMaterial = new THREE.SpriteMaterial( { map: loader, color: 0xffffff } );
var sprite = new THREE.Sprite( spriteMaterial );
sprite.scale.set(200, 200, 1);
scene.add( sprite );
camera.position.z = 2;
var render = function () {
requestAnimationFrame( render );
renderer.render(scene, camera);
};
render();
</script>
</body>
</html>
最佳答案
我想说下面的行可以修复该错误。
var spriteMap = loader.load("https://codefisher.org/static/images/pastel-svg/256/bullet-star.png");
var spriteMaterial = new THREE.SpriteMaterial( { map: spriteMap, color: 0xffffff } );
并且 requestAnimationFrame
是必要的。让我们保持 render
函数不变。
关于javascript - webgl Three.js - 如何显示 Sprite ?渲染错误 : Uncaught TypeError: Cannot read property 'x' of undefined at SpritePlugin.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43009719/