gpt4 book ai didi

javascript - 三.js设置背景图片

转载 作者:行者123 更新时间:2023-12-02 16:16:29 25 4
gpt4 key购买 nike

如何创建静态背景图片?

对于默认背景:

scene = new THREE.Scene();

// ...

renderer = new THREE.WebGLRenderer( { antialias: false } );
renderer.setClearColor( scene.fog.color, 1 );

如何为scene.fog设置图像,或为clearcolor设置不透明度?

最佳答案

如果您尝试设置静态背景图像(即使旋转主摄像头,背景也不会改变),则必须创建 2 个场景和 2 个摄像头。
第一个场景将由应用纹理的基本平面组成。
第二个场景将包含您的所有对象。
这是一个可以做到这一点的代码:

<html>
<body>

<script src="Three.js"></script>
<script>
var color = 0x000000;

// Create your main scene
var scene = new THREE.Scene();

// Create your main camera
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

// Create lights
var light = new THREE.PointLight(0xEEEEEE);
light.position.set(20, 0, 20);
scene.add(light);

var lightAmb = new THREE.AmbientLight(0x777777);
scene.add(lightAmb);

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

// Create a cube
var geometry = new THREE.BoxGeometry(1, 1, 1);
var material = new THREE.MeshLambertMaterial({
color: 0xff00ff,
ambient: 0x121212,
emissive: 0x121212
});

var cube = new THREE.Mesh(geometry, material);
scene.add(cube);

// Set up the main camera
camera.position.z = 5;

// Load the background texture
var texture = THREE.ImageUtils.loadTexture( '1.jpg' );
var backgroundMesh = new THREE.Mesh(
new THREE.PlaneGeometry(2, 2, 0),
new THREE.MeshBasicMaterial({
map: texture
}));

backgroundMesh .material.depthTest = false;
backgroundMesh .material.depthWrite = false;

// Create your background scene
var backgroundScene = new THREE.Scene();
var backgroundCamera = new THREE.Camera();
backgroundScene .add(backgroundCamera );
backgroundScene .add(backgroundMesh );

// Rendering function
var render = function () {
requestAnimationFrame(render);

// Update the color to set
if (color < 0xdddddd) color += 0x0000ff;

// Update the cube color
cube.material.color.setHex(color);

// Update the cube rotations
cube.rotation.x += 0.05;
cube.rotation.y += 0.02;

renderer.autoClear = false;
renderer.clear();
renderer.render(backgroundScene , backgroundCamera );
renderer.render(scene, camera);
};

render();
</script>
</body>
</html>

**Demo right here **

希望这有帮助。

注意(2014/06/28):此代码适用于最新版本的 Three.js:R67

关于javascript - 三.js设置背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19865537/

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