当前位置: 首页 > news >正文

企业网站价格花哈尔滨网站建设步骤

企业网站价格花,哈尔滨网站建设步骤,wordpress 古腾堡,网站法人与负责人我们在ThreeJS-3D教学二#xff1a;基础形状展示中有简单介绍过一些常用的材质#xff0c;这次我们举例来具体看下效果#xff1a; 代码是这样的#xff1a; !DOCTYPE html html langen headmeta charsetUTF-8基础形状展示中有简单介绍过一些常用的材质这次我们举例来具体看下效果 代码是这样的 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlestylebody {width: 100%;height: 100%;}* {margin: 0;padding: 0;}.label {font-size: 20px;color: #000;font-weight: 700;}/style /head body div idcontainer/div script typeimportmap{imports: {three: ../three-155/build/three.module.js,three/addons/: ../three-155/examples/jsm/}} /script script typemodule import * as THREE from three; import Stats from three/addons/libs/stats.module.js; import { OrbitControls } from three/addons/controls/OrbitControls.js; import { GPUStatsPanel } from three/addons/utils/GPUStatsPanel.js; import { CSS2DRenderer, CSS2DObject } from three/addons/renderers/CSS2DRenderer.js; let stats, labelRenderer, gpuPanel, spotLight; let camera, scene, renderer, controls, earth; const group new THREE.Group(); let widthImg 200; let heightImg 200; let time 0; init(); initHelp(); initLight(); axesHelperWord(); animate(); // 添加平面 addPlane(); addBox();function addBox() {/*** 凹凸贴图可以使纹理也有厚度看起来更立体。凹凸贴图一般使用一张灰度图设置成材料的bumpMap属性* */const loader new THREE.TextureLoader();loader.load(../materials/line_images/stone.jpg, texture {loader.load(../materials/line_images/stone-bump.jpg,bumpTexture {const boxGeo new THREE.BoxGeometry(60, 60, 2);const material new THREE.MeshStandardMaterial({map: texture,bumpMap: bumpTexture,bumpScale: 1});const box new THREE.Mesh(boxGeo,material);box.position.set(-45, 10, 0);box.castShadow true;scene.add(box);});});/*** 法向贴图使用一张法向图来表示纹理图片某个点的法向量。即用一张图片保存另一张图片的法向量信息* 然后再在threejs中将这两个图片的信息合在一起就形成了一个细节丰富的立体纹理* 设置材质的 normalMap 属性* */loader.load(../materials/line_images/normal2.jpg, texture {loader.load(../materials/line_images/normal1.jpg, bumpTexture {const boxGeo new THREE.BoxGeometry(60, 60, 2);const material new THREE.MeshStandardMaterial({map: texture,normalMap: bumpTexture});// material.normalScale.set(1, 1)const box new THREE.Mesh(boxGeo,material);box.position.set(45, 10, 0);box.castShadow true;scene.add(box);});});// 高光贴图loader.load(../materials/line_images/earth.jpg,textureNormal {loader.load(../materials/line_images/earthSpec.png, textureSpec {const meterial new THREE.MeshPhongMaterial({shininess: 5, //高光部分的亮度默认30map: textureNormal, // 普通纹理贴图specularMap: textureSpec, // 高光贴图specular: #fff // 高光部分的颜色});/**SphereGeometryradius浮点widthSegments整数heightSegments整数radius——球体半径。默认值为1。widthSegments—水平线段的数量。最小值为3默认值为32。heightSegments—垂直线段的数量。最小值为2默认值为16。*/const earthGeo new THREE.SphereGeometry(15, 50, 50);earth new THREE.Mesh(earthGeo, meterial);earth.position.set(0, 15, 70);earth.castShadow true;scene.add(earth);});}); }function addPlane() {// 创建一个平面 PlaneGeometry(width, height, widthSegments, heightSegments)const planeGeometry new THREE.PlaneGeometry(widthImg, heightImg, 1, 1);// 创建 Lambert 材质会对场景中的光源作出反应但表现为暗淡而不光亮。const planeMaterial new THREE.MeshPhongMaterial({color: 0xb2d3e6,side: THREE.DoubleSide});const plane new THREE.Mesh(planeGeometry, planeMaterial);// 以自身中心为旋转轴绕 x 轴顺时针旋转 45 度plane.rotation.x -0.5 * Math.PI;plane.position.set(0, -4, 0);plane.castShadow true;plane.receiveShadow true;scene.add(plane); }function init() {camera new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 10, 1000 );camera.up.set(0, 1, 0);camera.position.set(60, 40, 60);camera.lookAt(0, 0, 0);scene new THREE.Scene();scene.background new THREE.Color( #ccc );renderer new THREE.WebGLRenderer( { antialias: true } );renderer.setPixelRatio( window.devicePixelRatio );renderer.setSize( window.innerWidth, window.innerHeight );renderer.shadowMap.enabled true;renderer.shadowMap.type THREE.PCFSoftShadowMap;renderer.toneMapping THREE.ACESFilmicToneMapping;// 色调映射的曝光级别renderer.toneMappingExposure 1;document.body.appendChild( renderer.domElement );labelRenderer new CSS2DRenderer();labelRenderer.setSize( window.innerWidth, window.innerHeight );labelRenderer.domElement.style.position absolute;labelRenderer.domElement.style.top 0px;labelRenderer.domElement.style.pointerEvents none;document.getElementById( container ).appendChild( labelRenderer.domElement );controls new OrbitControls( camera, renderer.domElement );// 设置最大最小视距controls.minDistance 20;controls.maxDistance 1000;window.addEventListener( resize, onWindowResize );stats new Stats();stats.setMode(1); // 0: fps, 1: msdocument.body.appendChild( stats.dom );gpuPanel new GPUStatsPanel( renderer.getContext() );stats.addPanel( gpuPanel );stats.showPanel( 0 );scene.add( group ); }function initLight() {const targetObject new THREE.Object3D();targetObject.position.set(0, 0, 0);scene.add(targetObject);spotLight new THREE.SpotLight(0xffffff);spotLight.position.set(0, 80, 150);spotLight.target targetObject;spotLight.angle Math.PI / 4;spotLight.intensity 500;spotLight.penumbra 1;spotLight.decay 1;spotLight.distance 300;// spotLight.map textures[uv_grid_opengl.jpg];spotLight.castShadow true;spotLight.shadow.mapSize.width 1024;spotLight.shadow.mapSize.height 1024;spotLight.shadow.camera.near 1;spotLight.shadow.camera.far 200;spotLight.shadow.focus 1;scene.add(spotLight);const lightHelper new THREE.SpotLightHelper(spotLight);scene.add(lightHelper);const AmbientLight new THREE.AmbientLight(new THREE.Color(rgb(255, 255, 255)));scene.add( AmbientLight ); }function initHelp() {// const size 100;// const divisions 5;// const gridHelper new THREE.GridHelper( size, divisions );// scene.add( gridHelper );// The X axis is red. The Y axis is green. The Z axis is blue.const axesHelper new THREE.AxesHelper( 100 );scene.add( axesHelper ); }function axesHelperWord() {let xP addWord(X轴);let yP addWord(Y轴);let zP addWord(Z轴);xP.position.set(50, 0, 0);yP.position.set(0, 50, 0);zP.position.set(0, 0, 50); }function addWord(word) {let name span${word}/span;let moonDiv document.createElement( div );moonDiv.className label;// moonDiv.textContent Moon;// moonDiv.style.marginTop -1em;moonDiv.innerHTML name;const label new CSS2DObject( moonDiv );group.add( label );return label; }function onWindowResize() {camera.aspect window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();renderer.setSize( window.innerWidth, window.innerHeight ); }function animate() {requestAnimationFrame( animate );if (earth) {time 0.00005;earth.rotateY(time);}stats.update();controls.update();labelRenderer.render( scene, camera );renderer.render( scene, camera ); } /script /body /html 图片我依次放进来方便大家本地看效果 stone.jpg stone-bump.jpg normal2.jpg normal1.jpg earth.jpg earthSpec.png 具体的注释也都放代码里了感觉不错的点个赞光白嫖可还行
http://www.w-s-a.com/news/362793/

相关文章:

  • 前端网站开发兼职长春火车站地下停车场收费标准
  • 苏州推广网站建设概况大连公交app
  • 移动互联网站开发与维护招聘网站建设计入什么费用
  • 郑州营销型网站建设erp系统有什么用
  • 公司网站开发费怎么入账投放广告网站
  • 企业网站开发文献综述加盟网网站建设策划书
  • 最便宜的网站空间网站建设和app开发
  • 承装承修承试材料在哪个网站做如何用虚拟主机建设网站
  • 如何建一个外贸网站网页设计零基础学习课程
  • 营销型外贸网站广州昆明建设网站制作
  • 网页制作网站素材项目建设全过程管理
  • 正能量网站下载柬埔寨网赌网站开发
  • 如何免费建设公司网站广州传业建设有限公司网站
  • 织梦做的网站快照被攻击张家口网站建设公司
  • 平顶山公司网站建设南昌网站seo多少钱
  • 网站开发要先买服务器吗建设婚恋网站用什么搭建
  • 我想自己在网站上发文章 怎样做wordpress站点安装
  • 北京模板网站开发全包昆明网站开发正规培训
  • 西咸新区建设环保网站谷歌风格wordpress
  • 嘉兴港区建设局网站2018年网站开发
  • 网站里图片做超链接专业开发网站报价单
  • server2003网站建设做销售记住这十句口诀
  • microsoft免费网站网站后台登陆路径
  • 贵州住房和城乡建设局网站做网站排名费用多少钱
  • 现在个人做网站还能盈利吗xampp用wordpress
  • 做网站 租服务器温岭建设公司网站
  • 四川住房和城乡建设厅网站官网做网站最贵
  • 右玉网站建设四川林峰脉建设工程有限公司网站
  • 网站推广小助手杭州百度百家号seo优化排名
  • 怎么做网站搜索框搜索网站备案拍照背景幕布