gpt4 book ai didi

javascript - Three.js 插入图片

转载 作者:太空狗 更新时间:2023-10-29 13:12:34 32 4
gpt4 key购买 nike

我试图在 PlaneGeometry 网格上附加一个简单的图像,但它似乎不起作用。

window.onload = function(){


var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// camera
var camera = new THREE.PerspectiveCamera(95, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.y = -250;
camera.position.z = 400;
camera.rotation.x = 45 * (Math.PI / 180);

// scene
var scene = new THREE.Scene();

var img = new THREE.MeshLambertMaterial({
map:THREE.ImageUtils.loadTexture('img/front.jpg')
});
// plane
var plane = new THREE.Mesh(new THREE.PlaneGeometry(200, 200),img);
plane.overdraw = true;
scene.add(plane);
// add subtle ambient lighting
var ambientLight = new THREE.AmbientLight(0x555555);
scene.add(ambientLight);

// add directional light source
var directionalLight = new THREE.DirectionalLight(0xffffff);
directionalLight.position.set(1, 1, 1).normalize();
scene.add(directionalLight);

// create wrapper object that contains three.js objects
var three = {
renderer: renderer,
camera: camera,
scene: scene,
plane: plane
};
renderer.render(scene,camera);
};

这是我的完整 javascript 文件, Canvas 为 580x300

每当我运行它时,我只看到一个黑色方 block 。有任何想法吗?谢谢!

这里是我给需要的人的引用:

http://www.html5canvastutorials.com/webgl/html5-canvas-webgl-texture-with-three-js/

最佳答案

从 github 下载最新标签并使用示例后,很明显 CORS是罪魁祸首。如果我打开 Chrome 开发者工具并查看控制台,会出现许多错误消息:

Cross-origin image load denied by Cross-Origin Resource Sharing policy.

如果您使用的是 Chrome,请使用标志 -allow-file-access-from-files 启动它

使用 Chrome 17.0.963.79 测试。

window.onload = function(){

var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// camera
var camera = new THREE.PerspectiveCamera(95, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.y = -250;
camera.position.z = 400;
camera.rotation.x = 45 * (Math.PI / 180);

// scene
var scene = new THREE.Scene();
scene.add(camera); //ADDED

var img = new THREE.MeshBasicMaterial({ //CHANGED to MeshBasicMaterial
map:THREE.ImageUtils.loadTexture('img/front.jpg')
});
img.map.needsUpdate = true; //ADDED

// plane
var plane = new THREE.Mesh(new THREE.PlaneGeometry(200, 200),img);
plane.overdraw = true;
scene.add(plane);

// add subtle ambient lighting
var ambientLight = new THREE.AmbientLight(0x555555);
scene.add(ambientLight);

// add directional light source
var directionalLight = new THREE.DirectionalLight(0xffffff);
directionalLight.position.set(1, 1, 1).normalize();
scene.add(directionalLight);

// create wrapper object that contains three.js objects
var three = {
renderer: renderer,
camera: camera,
scene: scene,
plane: plane
};
renderer.render(scene,camera);
};

关于javascript - Three.js 插入图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9718130/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com