【发布时间】:2014-12-28 05:02:55
【问题描述】:
所以我要做的就是抓取我保存在文件夹中的纹理。我得到的错误是:
"GET file:///E:/Html/Expo%20Sites/Good%20Site/tex/dirt.jpg net::ERR_FILE_NOT_FOUND"
我正在获取纹理,将其放入变量中,创建几何体,创建材质,然后创建对象并将材质分配给它。我是 Three.js 库的新手,所以我可能遗漏了一些非常明显的东西。如果你想看看,这里是代码。
var mousePos = {x: 0.0, y: 0.0};
var windowCenterX = window.innerWidth / 2;
var windowCenterY = window.innerHeight / 2;
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);
renderer.shadowMapenabled = true;
renderer.shadowMapType = THREE.PCFSoftShadowMap;
document.body.appendChild(renderer.domElement);
var dirtTex = new THREE.ImageUtils.loadTexture('tex/dirt.jpg');
var geometry = new THREE.BoxGeometry( 1, 1, 1);
var floor = new THREE.BoxGeometry(10, 1, 10);
var material = new THREE.MeshLambertMaterial({map: dirtTex});
var cube = new THREE.Mesh(geometry, material);
var floor = new THREE.Mesh(floor, material);
var directionalLight = new THREE.DirectionalLight(0xCCFFCC, 1.0);
var hemiLight = new THREE.HemisphereLight(0xCCFFCC, 0xCCFFCC, 0.6);
cube.position.z = -5;
cube.castShadow = true;
cube.recieveShadow = true;
scene.add(cube);
floor.position.z = -5;
floor.position.y = -3;
floor.castShadow = true;
floor.recieveShadow = true;
scene.add(floor);
directionalLight.position.set(0, 1, 0);
directionalLight.shadowDarkness = 1.0;
directionalLight.castShadow = true;
directionalLight.shadowCameraVisible = true;
directionalLight.shadowCameraRight = 5;
directionalLight.shadowCameraLeft = -5;
directionalLight.shadowCameraTop = 5;
directionalLight.shadowCameraBottom = -5;
scene.add(directionalLight);
hemiLight.castShadow = true;
scene.add(hemiLight);
function Update()
{
requestAnimationFrame(Update);
if(mousePos.x == null || 0)
mousePos.x = 1;
if(mousePos.y == null || 0)
mousePos.y = 1;
cube.rotation.x = mousePos.y / 500;
cube.rotation.y = mousePos.x / 500;
renderer.render(scene, camera);
}
Update();
document.onmousemove = function (e)
{
if(e.pageX != null)
mousePos.x = e.pageX;
if(e.pageY != null)
mousePos.y = e.pageY;
mousePos.x = (mousePos.x - windowCenterX);
mousePos.y = (mousePos.y - windowCenterY);
}
【问题讨论】:
-
是不是给你
var dirtTex = new THREE.ImageUtils.loadTexture('tex/dirt.jpg');这一行的错误?
标签: javascript image three.js textures