html 制作人物模型,box.html · 啦啦嘿/threejs模型星空和人物模型 - Gitee.com

My first three.js app

body { margin: 0; }

canvas { display: block; }

// 连个小盒嵌套

// 场景

var scene = new THREE.Scene();

// 相机

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

// 光,没有光反射光的材质看不见,黑乎乎一片

var ambientLight = new THREE.AmbientLight( 0xffffff, 1 );

scene.add( ambientLight );

var pointLight = new THREE.PointLight( 0xffffff, 1 );

camera.add( pointLight );

scene.add( camera );

// 渲染器

var renderer = new THREE.WebGLRenderer({ antialias: true});

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

document.body.appendChild( renderer.domElement );

var textureLoader = new THREE.TextureLoader();

var boxTexture = textureLoader.load('box.jpg')

// 几何结构

var geometry = new THREE.BoxGeometry(1,1,1);

// 材质

var material = new THREE.MeshBasicMaterial( { map: boxTexture, side: THREE.DoubleSide} );

// 正方体、网格

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

cube.name = "box"

// default (0,0,0)

scene.add( cube );

// 一面一个材质

envirmentBox = new THREE.BoxGeometry(200, 200, 200);

envirmentBoxList = [

new THREE.MeshBasicMaterial( { map: textureLoader.load('skybox/rt.png'), side: THREE.DoubleSide} ),

new THREE.MeshBasicMaterial( { map: textureLoader.load('skybox/lf.png'), side: THREE.DoubleSide} ),

new THREE.MeshBasicMaterial( { map: textureLoader.load('skybox/up.png'), side: THREE.DoubleSide} ),

new THREE.MeshBasicMaterial( { map: textureLoader.load('skybox/dn.png'), side: THREE.DoubleSide} ),

new THREE.MeshBasicMaterial( { map: textureLoader.load('skybox/bk.png'), side: THREE.DoubleSide} ),

new THREE.MeshBasicMaterial( { map: textureLoader.load('skybox/ft.png'), side: THREE.DoubleSide} ),

];

envirmentTexture = new THREE.Mesh( envirmentBox, envirmentBoxList )

envirmentTexture.name = "skybox"

scene.add( envirmentTexture )

// 相机往上移动

camera.position.z = 5;

// 鼠标操作相机 args 相机,渲染元素

new THREE.OrbitControls(camera, renderer.domElement);

// 需要循环渲染场景

function animate() {

requestAnimationFrame( animate );

box = scene.getObjectByName("box")

// box.rotation.x += 0.01

// box.rotation.y += 0.01

// box.rotation.z += 0.01

skybox = scene.getObjectByName("skybox")

// skybox.rotation.y += 0.001

renderer.render( scene, camera );

}

animate();

// window.requestAnimationFrame(()=>renderer.render(scene, camera));

window.addEventListener("resize", () => {renderer.setSize( window.innerWidth, window.innerHeight);

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

camera.updateProjectionMatrix();

})

一键复制

编辑

Web IDE

原始数据

按行查看

历史

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值