three实现小草和花朵构成的三维爱心代码
代码语言:html
所属分类:三维
代码描述:three实现小草和花朵构成的三维爱心代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url("https://fonts.googleapis.com/css2?family=Asap&display=swap"); * { margin: 0; padding: 0; box-sizing: border-box; } *::before, *::after { box-sizing: border-box; } html, body { overscroll-behavior-x: none; overscroll-behavior-y: none; scroll-behavior: smooth; } body { font-family: "Asap", sans-serif; position: relative; width: 100%; max-width: 100vw; height: auto; min-height: 100vh; text-align: center; overflow-x: hidden; background: black; color: white; } canvas { -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; position: fixed; width: 100%; max-width: 100vw; height: auto; min-height: 100vh; top: 0; left: 0; z-index: 0; } main { position: relative; } section { position: relative; width: 100vw; min-height: 100vh; display: grid; place-items: center; } </style> </head> <body translate="no"> <!-- --> <!-- using three.js --> <main> <section> <div> <p>Loading...</p> </div> </section> </main> <script async src="//repo.bfw.wiki/bfwrepo/js/es-module-shims.1.6.3.js" crossorigin="anonymous"></script> <script type="importmap"> { "imports": { "three": "//repo.bfw.wiki/bfwrepo/js/module/three/build/172/three.module.js", "three/addons/": "//repo.bfw.wiki/bfwrepo/js/module/three/examples/172/jsm/" } } </script> <script type="module"> /*! * 在几何体上设置 UV 坐标(使纹理可以从上到下贴图) * 使用 MeshSurfaceSampler 根据纹理图像设置权重属性(自定义属性 density) */ "use strict"; console.clear(); import * as THREE from "three"; import { OrbitControls } from "three/addons/controls/OrbitControls.js"; import { MeshSurfaceSampler } from "three/addons/math/MeshSurfaceSampler.js"; import { ParametricGeometry } from "three/addons/geometries/ParametricGeometry.js"; import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js"; (function () { let camera, scene, renderer, controls; let geometry, material, mesh; let model_grass, model_flower; // 加载草的 GLTF 模型 new GLTFLoader().load( "//repo.bfw.wiki/bfwrepo/threemodel/celandine/celandine_grass.glb", function (model) { model_grass = model; // 加载花的 GLTF 模型 new GLTFLoader().load( "//repo.bfw.wiki/bfwrepo/threemodel/celandine/celandine_flower.glb", function (model) { model_flower = model; // 初始化场景、对象和采样器 init(); obj(); surfaceSampler(); render(); } ); } ); // 创建几何体对象 function obj() { // 创建心形几何体 geometry = new ParametricGeometry(heart, 30, 30); // 旋转和缩放几何体 geometry.rotateX(-Math.PI / 2); .........完整代码请登录后点击上方下载按钮下载查看
网友评论0