Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
#canvas { background:#248079; } /* Name Badge */ html, body { margin: 0; padding: 0; overflow:hidden; } #name-card-container{ position:fixed; bottom:0px; height:38px; width:100%; display:flex; justify-content:center; } #name-card { display:flex; justify-content:center; font-family:Avenir; font-size: 14px; font-weight:500; line-height:38px; border-radius:4px 4px 0 0; overflow:hidden; box-shadow: 0 0 10px rgba(0,0,0,0.10), 0 0 2px rgba(0,0,0,0.20); } #name-card > div.dark-background{ background:#1d1e22; padding:0 10px 0 20px; height:100%; color:#fff; } #name-card > div.light-background{ background:#fff; padding:0 20px 0 10px; height:100%; } #name-card span.emoji{ font-size:18px; } #name-card a { text-decoration:none; } #name-card a:hover{ text-decoration: underline; } #name-card a:visited{ text-decoration: none; } #name-card div.dark-background a{ color:#fff; } #name-card div.light-background a{ color:#000; }
JavaScript
//Create color palette var Colors = { cyan: 0x248079, brown: 0xA98F78, brownDark: 0x9A6169, green: 0x65BB61, greenLight: 0xABD66A, blue:0x6BC6FF }; var scene = new THREE.Scene(); var h = window.innerHeight, w = window.innerWidth; var aspectRatio = w / h, fieldOfView = 25, nearPlane = .1, farPlane = 1000; var camera = new THREE.PerspectiveCamera( fieldOfView, aspectRatio, nearPlane, farPlane); var renderer = new THREE.WebGLRenderer({canvas:canvas,alpha: true, antialias: true}); const dpi = window.devicePixelRatio; renderer.setSize( w*dpi, h*dpi ); const theCanvas = document.getElementById('canvas'); theCanvas.style.width = `${w}px`; theCanvas.style.height = `${h}px`; renderer.shadowMapEnabled = true; renderer.shadowMap.type = THREE.PCFSoftShadowMap; document.body.appendChild( renderer.domElement ); camera.position.set(-5,6,8); // camera.position.set(0,0,8); // front // camera.position.set(-10,.2,0); //left // camera.position.set(0,10,0); //top // camera.position.y=4; camera.lookAt(new THREE.Vector3(0,0,0)); //Ambient light var light = new THREE.AmbientLight( 0xffffff ,.5); var shadowLight = new THREE.DirectionalLight(0xffffff, .5); shadowLight.position.set(200, 200, 200); shadowLight.castShadow = true; var backLight = new THREE.DirectionalLight(0xffffff, .2); backLight.position.set(-100, 200, 50); backLight.castShadow = true; scene.add(backLight); scene.add(light); scene.add(shadowLight); // grassland left var geometry_left = new THREE.BoxGeometry( 2, .2, 2 ); var material_grass = new THREE.MeshLambertMaterial( { color: Colors.greenLight } ); var ground_left = new THREE.Mesh( geometry_left, material_grass ); ground_left.position.set(-1,0.1,0); scene.add( ground_left ); customizeShadow(ground_left,.25) // mess, opacity //river var geometry_river = new THREE.BoxGeometry( 1, .1, 2 ); var material_river = new THREE.MeshLambertMaterial( { color: Colors.blue } ); var river = new THREE.Mesh( geometry_river, material_river ); river.position.set(.5,.1,0); scene.add( river ); customizeShadow(river,.08) // mess, opacity //river bed var geometry_bed = new THREE.BoxGeometry( 1, .05, 2 ); var bed = new THREE.Mesh( geometry_bed , material_grass ); bed.position.set(.5,.025,0); scene.add( bed ); //grassland right var geometry_right = new THREE.BoxGeometry( 1, .2, 2 ); var ground_right = new THREE.Mesh( geometry_right, material_grass ); ground_right.position.set(1.5,0.1,0); scene.add( ground_right ); customizeShadow(ground_right,.25) // mess, opacity var tree=function(x,z){ this.x=x; this.z=z; //trunk var material_trunk = new THREE.MeshLambertMaterial({ color: Colors.brownDark }); var geometry_trunk = new THREE.BoxGeometry( .15, .15, .15 ); var trunk = new THREE.Mesh( geometry_trunk, material_trunk ); trunk.position.set(this.x,.275,this.z); trunk.castShadow = true; trunk.receiveShadow = true; scene.add( trunk ); //leaves var geometry_leaves = new THREE.BoxGeometry( .25, .4, .25 ); var material_leaves = new THREE.MeshLambertMaterial({ color: Colors.green}); var leaves = new THREE.Mesh( geometry_leaves, material_leaves ); leaves.position.set(this.x,.2+.15+.4/2,this.z); leaves.castShadow = true; customizeShadow(leaves,.25) // mess, opacity scene.add( leaves ); } //left tree(-1.75,-.85); tree(-1.75,-.15); tree(-1.5,-.5); tree(-1.5,.4); tree(-1.25,-.85); tree(-1.25,.75); tree(-.75,-.85); tree(-.75,-.25); tree(-.25,-.85); //right tree(1.25,-.85); tree(1.25,.75); tree(1.5,-.5); tree(1.75,-.85); tree(1.75,.35); function customizeShadow(t,a){ //opacity, target mesh var material_shadow = new THREE.ShadowMaterial({opacity:a}); var mesh_shadow = new THREE.Mesh( t.geometry, material_shadow ); mesh_shadow.position.set(t.position.x,t.position.y,t.position.z); mesh_shadow.receiveShadow = true; scene.add( mesh_shadow ); } var material_wood = new THREE.MeshLambertMaterial({ color: Colors.brown }); //bridge - wood block for (var i=0;i<6;i++){ var geometry_block = new THREE.BoxGeometry( .15, .02, .4 ); var block = new THREE.Mesh( geometry_block, material_wood ); block.position.set(0+.2*i,.21,.2); block.castShadow = true; block.receiveShadow = true; scene.add( block ); } //bridge - rail var geometry_rail_v = new THREE.BoxGeometry( .04,.3,.04 ); var rail_1 = new THREE.Mesh( geometry_rail_v, material_wood ); rail_1.position.set(-.1,.35,.4); rail_1.castShadow = true; customizeShadow(rail_1,.2); scene.add( rail_1 ); var rail_2 = new THREE.Mesh( geometry_rail_v, material_wood ); rail_2.position.set(1.1,.35,.4); rail_2.castShadow = true; customizeShadow(rail_2,.2); scene.add( rail_2 ); var rail_3 = new THREE.Mesh( geometry_rail_v, material_wood ); rail_3.position.set(-.1,.35,0); rail_3.castShadow = true; customizeShadow(rail_3,.2); scene.add( rail_3 ); var rail_4 = new THREE.Mesh( geometry_rail_v, material_wood ); rail_4.position.set(1.1,.35,0); rail_4.castShadow = true; customizeShadow(rail_4,.2); scene.add( rail_4 ); var geometry_rail_h = new THREE.BoxGeometry( 1.2,.04,.04 ); var rail_h1 = new THREE.Mesh( geometry_rail_h, material_wood ); rail_h1.position.set(0.5,.42,.4); rail_h1.castShadow = true; customizeShadow(rail_h1,.2); scene.add( rail_h1 ); var rail_h2 = new THREE.Mesh( geometry_rail_h, material_wood ); rail_h2.position.set(0.5,.42,0); rail_h2.castShadow = true; customizeShadow(rail_h2,.2); scene.add( rail_h2 ); var Drop=function(){ this.geometry = new THREE.BoxGeometry(.1, .1, .1 ); this.drop= new THREE.Mesh( this.geometry, material_river ); this.drop.position.set(Math.random(.1,.9),0.1,1+(Math.random()-.5)*.1); scene.add( this.drop ); this.speed=0; this.lifespan=(Math.random()*50)+50; this.update=function(){ this.speed+=.0007; this.lifespan--; this.drop.position.x+=(.5-this.drop.position.x)/70; this.drop.position.y-=this.speed; } } var drops=[]; var count=0; var render = function() { requestAnimationFrame( render ); if(count%3==0){ for(var i=0;i<5;i++){ drops.push(new Drop()); } } count++; for(var i=0;i
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Three.js 3d场景-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号