html 背景设为透明背景图片,Three.js中通过透明渲染设置默认背景图片

该博客展示了如何使用JavaScript库Three.js构建一个3D场景。通过加载纹理、OBJ模型、设置灯光和渲染器,创建了一个包含3D衣物模型的交互式场景。同时,文章还涉及了窗口大小调整的响应式设计和OrbitControls的使用。
摘要由CSDN通过智能技术生成

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

if (!Detector.webgl) Detector.addGetWebGLMessage();

var container, stats;

var camera, controls, scene, renderer;

var cross;

init();

animate();

function init() {

camera = new THREE.PerspectiveCamera(90, window.innerWidth / window.innerHeight, 0.1, 2000);

camera.position.z = 100;

controls = new THREE.OrbitControls(camera);

controls.addEventListener('change', render);

scene = new THREE.Scene();

var manager = new THREE.LoadingManager();

manager.onProgress = function(item, loaded, total) {

console.log(item, loaded, total);

};

var texture = new THREE.Texture();

var loader = new THREE.ImageLoader(manager);

loader.load('/uploads/160701/pattern-7.png', function(image) {

texture.image = image;

texture.needsUpdate = true;

});

// model

var loader = new THREE.OBJLoader(manager);

loader.load('/uploads/160701/clothes/t-shirt-01.obj', function(object) {

object.traverse(function(child) {

if (child instanceof THREE.Mesh) {

child.material.map = texture;

}

});

object.position.y = -50;

object.scale.x = object.scale.y = object.scale.z = 20;

scene.add(object);

});

// lights

light = new THREE.DirectionalLight(0xffffff);

light.position.set(1, 1, 1);

scene.add(light);

light = new THREE.DirectionalLight(0xffffff);

light.position.set(-1, -1, -1);

scene.add(light);

light = new THREE.AmbientLight(0xffffff);

scene.add(light);

renderer = new THREE.WebGLRenderer({

antialias: false,

alpha: true

});

renderer.setSize(window.innerWidth, window.innerHeight);

renderer.setClearColor(0x000000, 0);

document.body.appendChild(renderer.domElement);

container = document.getElementById('container');

container.appendChild(renderer.domElement);

container.appendChild(stats.domElement);

window.addEventListener('resize', onWindowResize, false);

}

function onWindowResize() {

camera.aspect = window.innerWidth / window.innerHeight;

camera.updateProjectionMatrix();

renderer.setSize(window.innerWidth, window.innerHeight);

render();

}

function animate() {

requestAnimationFrame(animate);

controls.update();

}

function render() {

renderer.render(scene, camera);

stats.update();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值