Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
body{background-color: #1F1F1F;overflow: hidden}
JavaScript
const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.z = -2.5; camera.position.x = -5 const ambient = new THREE.AmbientLight(0xffffff); scene.add(ambient); const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); let tooLazyToHandleLoadingProperly = 0; const loadingLol = () => tooLazyToHandleLoadingProperly++; const ENV_URL = 'https://images.unsplash.com/photo-1557971370-e7298ee473fb?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1900&q=80'; const reflectionCube = new THREE.TextureLoader().load(ENV_URL, loadingLol); const refractionCube = new THREE.TextureLoader().load(ENV_URL, loadingLol); reflectionCube.mapping = THREE.EquirectangularReflectionMapping; refractionCube.mapping = THREE.EquirectangularRefractionMapping; scene.background = reflectionCube; scene.environment = reflectionCube; const geometry = new THREE.SphereGeometry(2, 128, 128); const base = geometry.attributes.position.array.slice(); const refractionMaterial = new THREE.MeshPhysicalMaterial({ color: 0xc3e4f9, envMap: refractionCube, metalness: 1, reflectivity: 0, refractionRatio: .1, roughness: 0, side: THREE.DoubleSide }); const reflectionMaterial = new THREE.MeshPhysicalMaterial({ color: 0xc3e4f9, envMap: reflectionCube, envMapIntensity: 1, metalness: .35, reflectivity: .9, roughness: 0, side: THREE.DoubleSide, transmission: 1, transparent: true, }); const refractionSphere = new THREE.Mesh(geometry, refractionMaterial); const reflectionSphere = new THREE.Mesh(geometry, reflectionMaterial); const sphere = new THREE.Object3D(); sphere.add(refractionSphere); sphere.add(reflectionSphere); scene.add(sphere); sphere.lookAt(camera.position); camera.lookAt(sphere.position); controls = new THREE.OrbitControls(camera, renderer.domElement); controls.enableDamping = true; const animate = function (dt) { requestAnimationFrame(animate); controls.update(); if (tooLazyToHandleLoadingProperly !== 2) return; geometry.attributes.position.array.forEach((val, i, arr) => { const place = i % 3; if (place === 0) { // x arr[i] = base[i] + Math.sin(base[i + 1] * 3 + dt * .002) * .1; } if (place === 1) { // y arr[i] = base[i] + Math.cos(base[i - 1] * 5 + dt * .003) * .08; } if (place === 2) { // z arr[i] = base[i] + Math.sin(base[i - 2] * 25 + dt * .01) * .03; } }); geometry.computeVertexNormals(); geometry.normalizeNormals(); geometry.attributes.position.needsUpdate = true; const { innerWidth: w, innerHeight: h } = window; renderer.setSize(w, h); camera.aspect = w / h; camera.updateProjectionMatrix(); renderer.render(scene, camera); }; animate();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>three.js水弯曲-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号