【黑师代码】明天之前(学习黑师20250526《夜魅》球形几何体阴影效果)
<style>
#tz { --state: running; margin: 30px 0; left: calc(50% - 81px); transform: translateX(-50%); width: clamp(600px, 90vw, 1700px); min-height: 80vh; aspect-ratio: 17/9; background: url('https://642303.freep.cn/642303/tu/20250603mtzq00.webp') no-repeat center/cover; box-shadow: 2px 2px 8px #000; display: grid; place-items: center; z-index: 1; position: relative; overflow: hidden;}
#btnFs { bottom: 20px; color: #eee; text-align: center; }
#btnFs:hover { color: red; }
#vid {position: absolute; width: 50%; height: 100%; object-fit: cover;left:44%;bottom:-5%; -webkit-mask: linear-gradient(to bottom,transparent,transparent,transparent,transparent,red);pointer-events: none; opacity: .38; }
#player { position: absolute; width: 16%; height: 30%; bottom: 8%;left:60%;top:60%; cursor: pointer; }
</style>
<div id="tz">
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=2701453821" autoplay loop></audio>
<video id="vid" src="https://video.699pic.com/videos/42/91/62/b_MQMtAYf4qzdX1558429162.mp4" autoplay loop muted></video>
<div id="player" title="播放/暂停"></div>
</div>
<script type="module">
import * as THREE from 'https://638183.freep.cn/638183/web/ku/three.module.min.js';
import { FS } from 'https://638183.freep.cn/638183/web/ku/FS.js';
var scene = new THREE.Scene();
var clock = new THREE.Clock();
var camera = new THREE.PerspectiveCamera(55, tz.offsetWidth / tz.offsetHeight, 0.1, 1000);
camera.position.set(-4, 4, 11);
var renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
renderer.setSize(tz.offsetWidth, tz.offsetHeight);
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
tz.appendChild(renderer.domElement);
var geometry = new THREE.SphereGeometry();
var material = new THREE.MeshStandardMaterial({
color: 0x22DAA520,
wireframe: true,
});
var mesh = new THREE.Mesh(geometry, material);
mesh.castShadow = true;
var planeGeometry = new THREE.PlaneGeometry(10, 10);
const planeMaterial = new THREE.ShadowMaterial();
var plane = new THREE.Mesh(planeGeometry, planeMaterial);
plane.receiveShadow = true;
var ambientLight = new THREE.AmbientLight(0xFFF0F5, 0.5);
var directionalLight = new THREE.DirectionalLight(0xffffff);
directionalLight.position.set(-30, 100, 60);
directionalLight.castShadow = true;
scene.add(mesh, plane, directionalLight);
var animate = () => {
requestAnimationFrame(animate);
var delta = clock.getDelta();
mesh.rotation.y -= delta / 5;
renderer.render(scene, camera);
};
window.onresize = () => {
camera.aspect = tz.offsetWidth / tz.offsetHeight;
camera.updateProjectionMatrix();
renderer.setSize(tz.offsetWidth, tz.offsetHeight);
}
aud.onplaying = aud.onpause = () => aud.paused ? clock.stop() : clock.start();
animate();
FS(tz, player);
</script> @马黑黑 交一份之前完成的一个球形几何体阴影效果作业,都是ThreeJS系列的 欣赏飞飞漂亮的单图,制作精致 画面唯美{:4_204:} 黑黑老师的动画代码加上去精品呀,完美组合{:4_199:} 美女看球好漂亮{:4_170:} 马黑黑 发表于 2025-6-8 20:12
美女看球好漂亮
这么漂亮的几何球体,得配个漂亮的美女才对 花飞飞 发表于 2025-6-8 21:02
这么漂亮的几何球体,得配个漂亮的美女才对
要得要得{:4_170:} 马黑黑 发表于 2025-6-8 21:09
要得要得
当心啊,大牙都笑掉了。{:4_174:} 菲儿 发表于 2025-6-8 19:09
黑黑老师的动画代码加上去精品呀,完美组合
感谢菲儿支持鼓励{:4_187:} 菲儿 发表于 2025-6-8 19:08
欣赏飞飞漂亮的单图,制作精致 画面唯美
菲儿来了,开心哦{:4_187:} 花飞飞 发表于 2025-6-8 21:23
当心啊,大牙都笑掉了。
早掉光了不怕 总是能把代码进一步艺术化!赞叹! 再创作快乐! 独特的构图,漂亮!{:4_199:} 马黑黑 发表于 2025-6-8 21:56
早掉光了不怕
花生米嚼得吱吱响{:4_173:} 樵歌 发表于 2025-6-9 13:30
总是能把代码进一步艺术化!赞叹!
感谢樵管支持鼓励 梦江南 发表于 2025-6-9 15:40
独特的构图,漂亮!
感谢梦江南支持{:4_204:} 花飞飞 发表于 2025-6-9 21:50
花生米嚼得吱吱响
这个必须,没几个喝酒的不吃炒花生炒黄豆的 马黑黑 发表于 2025-6-9 22:12
这个必须,没几个喝酒的不吃炒花生炒黄豆的
再来一盘猪耳朵{:4_173:} 花飞飞 发表于 2025-6-10 18:51
再来一盘猪耳朵
凉拌的好