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

网站建设及推广外包公司网站兰州建设需要多少钱

网站建设及推广外包,公司网站兰州建设需要多少钱,东莞seo网站优化方式,网站开发 职位👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.SceneUtils 场景操控…

👨‍⚕️ 主页: gis分享者
👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅!
👨‍⚕️ 收录于专栏:threejs gis工程师


文章目录

  • 一、🍀前言
    • 1.1 ☘️THREE.SceneUtils 场景操控类
    • 1.2 ☘️.createMultiMaterialObject
  • 二、🍀使用createMultiMaterialObject创建多材质对象
    • 1. ☘️实现思路
    • 2. ☘️代码样例


一、🍀前言

本文详细介绍如何基于threejs在三维场景中使用createMultiMaterialObject创建多材质对象,亲测可用。希望能帮助到您。一起学习,加油!加油!

1.1 ☘️THREE.SceneUtils 场景操控类

THREE.SceneUtils一个用于操控场景的实用类。

方法:
.createMeshesFromInstancedMesh ( instancedMesh : InstancedMesh ) : Group
instancedMesh – 实例化网格。

为给定的实例化网格的每个实例,创建一个包含新网格的新物体组(Object Group)。

.createMeshesFromMultiMaterialMesh ( mesh : Mesh ) : Group
mesh – 具有多种材质的网格。

将给定的多材质网格转换为 Group 的实例,为每种材质保留一个单独的网格。

.createMultiMaterialObject ( geometry : BufferGeometry, materials : Array ) : Group
geometry – 材料集的几何形状。materials – 为物体准备的材料。

创建一个新组,囊括了在材质中定义的每种材质的新网格。请注意,这和为一个网格定义多种材质的材质数组不同。

该方法对于同时需要材质和线框绘制的物体非常有用。

.sortInstancedMesh ( mesh : InstancedMesh, compareFn : Function ) : undefined
mesh – InstancedMesh 将在其中对实例进行排序。

compareFn – 定义排序顺序的比较器函数。

根据用户定义的回调,对 InstancedMesh 中的实例进行排序。回调将提供两个参数,indexA 和 indexB,并且必须返回一个数值。有关排序回调及其返回值的更多信息,请参见 Array.prototype.sort。

由于性能成本高,three.js 不会自动对 InstancedMesh 实例进行排序。手动排序可能有助于改善 alpha 混合材质的显示(从后到前),并减少不透明材质的透支(从前到后)。

1.2 ☘️.createMultiMaterialObject

本例使用createMultiMaterialObject创建多材质对象。实现立方体网格对象既有颜色基础材质,又有MeshDepthMaterial深度材质效果。

二、🍀使用createMultiMaterialObject创建多材质对象

1. ☘️实现思路

  • 1、初始化renderer渲染器,设置renderer的颜色。
  • 2、初始化Scene三维场景scene。
  • 3、初始化camera相机,定义相机位置 camera.position.set,设置相机方向camera.lookAt,设置相机的near、far近远端面。
  • 4、加载几何模型:定义addCube方法,方法内创建随机大小的立方体几何对象cubeGeometry。创建MeshDepthMateria网格深度材质cubeMaterial和MeshBasicMaterial基础材质colorMaterial。传入参数cubeGeometry、cubeMaterial和colorMaterial调用createMultiMaterialObject方法创建多材质对象cube,设置cube第一个网格对象的大小、cube的投影和随机位置,场景scene中添加cube。循环10次调用addCube方法生成多材质对象。定义render方法,实现所有立方体对象的旋转动画。具体代码参考下面代码样例。
  • 5、加入gui控件,控制添加、移除立方体以及立方体颜色、旋转速度等信息。加入stats监控器,监控帧数信息。

2. ☘️代码样例

<!DOCTYPE html><html><head><title>学习threejs,使用createMultiMaterialObject创建多材质对象</title><script type="text/javascript" src="../libs/three.js"></script><script type="text/javascript" src="../libs/stats.js"></script><script type="text/javascript" src="../libs/dat.gui.js"></script><style>body {/* set margin to 0 and overflow to hidden, to go fullscreen */margin: 0;overflow: hidden;}</style>
</head>
<body><div id="Stats-output">
</div>
<!-- Div which will hold the Output -->
<div id="WebGL-output">
</div><!-- Js 代码块 -->
<script type="text/javascript">// 初始化function init() {var stats = initStats();// 创建三维场景var scene = new THREE.Scene();// 创建相机var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 10, 130);// 创建渲染器,设置大小var renderer = new THREE.WebGLRenderer();renderer.sortObjects = false;renderer.setClearColor(new THREE.Color(0x00000, 1.0));renderer.setSize(window.innerWidth, window.innerHeight);renderer.shadowMapEnabled = true;// 设置相机位置、远近和方向camera.position.x = -50;camera.position.y = 40;camera.position.z = 50;camera.near = 7;camera.far = 139;camera.lookAt(scene.position);// 渲染器绑定html页面要素document.getElementById("WebGL-output").appendChild(renderer.domElement);var step = 0;var controls = new function () {this.cameraNear = camera.near;this.cameraFar = camera.far;this.rotationSpeed = 0.02;this.numberOfObjects = scene.children.length;this.color = 0x00ff00;this.removeCube = function () {var allChildren = scene.children;var lastObject = allChildren[allChildren.length - 1];if (lastObject instanceof THREE.Mesh) {scene.remove(lastObject);this.numberOfObjects = scene.children.length;}};this.addCube = function () {var cubeSize = Math.ceil(3 + (Math.random() * 3));var cubeGeometry = new THREE.BoxGeometry(cubeSize, cubeSize, cubeSize);//var cubeMaterial = new THREE.MeshLambertMaterial({color:  Math.random() * 0xffffff });var cubeMaterial = new THREE.MeshDepthMaterial();var colorMaterial = new THREE.MeshBasicMaterial({color: controls.color,transparent: true,blending: THREE.MultiplyBlending});var cube = new THREE.SceneUtils.createMultiMaterialObject(cubeGeometry, [colorMaterial, cubeMaterial]);cube.children[1].scale.set(0.99, 0.99, 0.99);cube.castShadow = true;// 立方体随机位置cube.position.x = -60 + Math.round((Math.random() * 100));cube.position.y = Math.round((Math.random() * 10));cube.position.z = -100 + Math.round((Math.random() * 150));// 场景中添加立方体scene.add(cube);this.numberOfObjects = scene.children.length;};this.outputObjects = function () {console.log(scene.children);}};var gui = new dat.GUI();gui.addColor(controls, 'color');gui.add(controls, 'rotationSpeed', 0, 0.5);gui.add(controls, 'addCube');gui.add(controls, 'removeCube');gui.add(controls, 'cameraNear', 0, 50).onChange(function (e) {camera.near = e;});gui.add(controls, 'cameraFar', 50, 200).onChange(function (e) {camera.far = e;});var i = 0;while (i < 10) {controls.addCube();i++;}render();function render() {stats.update();// 立方体旋转动画scene.traverse(function (e) {if (e instanceof THREE.Mesh) {e.rotation.x += controls.rotationSpeed;e.rotation.y += controls.rotationSpeed;e.rotation.z += controls.rotationSpeed;}});requestAnimationFrame(render);renderer.render(scene, camera);}function initStats() {var stats = new Stats();stats.setMode(0);stats.domElement.style.position = 'absolute';stats.domElement.style.left = '0px';stats.domElement.style.top = '0px';document.getElementById("Stats-output").appendChild(stats.domElement);return stats;}}window.onload = init;
</script>
</body>
</html>

效果如下:
在这里插入图片描述


文章转载自:

http://VeayVasN.ywnjp.cn
http://SvLo4C0l.ywnjp.cn
http://oRsP9xxq.ywnjp.cn
http://K5eH2cmN.ywnjp.cn
http://hxB6vh9H.ywnjp.cn
http://lhpysNEa.ywnjp.cn
http://lVAMpbOZ.ywnjp.cn
http://EWRls8E0.ywnjp.cn
http://ieaS0xJK.ywnjp.cn
http://IBtO3GYm.ywnjp.cn
http://657bgK0Q.ywnjp.cn
http://YegX5ABb.ywnjp.cn
http://OzjckDo7.ywnjp.cn
http://syXQCot6.ywnjp.cn
http://thOp7AUV.ywnjp.cn
http://qR8P9Hrj.ywnjp.cn
http://QMDQrcwr.ywnjp.cn
http://2MC2M70l.ywnjp.cn
http://uNMvLWbN.ywnjp.cn
http://o2Mf46xS.ywnjp.cn
http://ZgtNEMef.ywnjp.cn
http://fupkCI9y.ywnjp.cn
http://BghKe5vb.ywnjp.cn
http://hxgHxoMR.ywnjp.cn
http://cW4pWuIk.ywnjp.cn
http://w7MI2NNW.ywnjp.cn
http://HYnL7aFx.ywnjp.cn
http://oNX0iadO.ywnjp.cn
http://jhOAPEmV.ywnjp.cn
http://X845NyFr.ywnjp.cn
http://www.dtcms.com/wzjs/779062.html

相关文章:

  • 做特效的网站高端品牌网站建设兴田德润实力强
  • 做汽车网站怎么挣钱北京网站建设z亿玛酷1专注
  • 四川建设厅网站 蒋保定网站建设方案优化
  • 哪些网站设计的比较好帮助做问卷调查的网站
  • 甘肃商城网站建设最新注册的公司在哪里可以查询
  • 网站开发环境ide教育培训网络推广培训
  • 太原做网站多少钱长沙模板建网站需要多久
  • 别人的网站是怎么找到的网络推广软文是一种很好的推广方式
  • 建设网站情况说明范文wordpress底部菜单
  • 做网站登录页面的论文网站seo在哪里设置
  • 用wordpress仿a站张家界网络营销
  • 淘宝客做网站链接海口网站建设开发
  • 网站建设画册设计wordpress+采集小说
  • 网站建设出现乱码免费企业网站
  • 官网建设建站wordpress 4.6.1
  • 任丘网站建设用模板做的网站不好优化
  • 咖啡网站建设的需求分析沧州专业网站建设公司
  • 没有网站可以做的广告联盟大型小说网站开发语言
  • 宁波营销型网站建设seo查询 站长之家
  • 域名访问过程会不会影响网站访问节点网站
  • wordpress子目录 多站点请seo的人帮做网站排名
  • 枣强网址建站保证量身定制的营销型网站
  • 南山最专业的网站建设响应式网站手机端
  • 怎么查询网站的域名自己做的网站图片无法显示
  • 贵州毕节网站建设北京多语言网站建设
  • 在线咨询网站开发价格江阴做网站优化
  • 网站系统建设思想如何写成都市网站建设费用及企业
  • 如何评估网站百度app营销软件
  • 开源网站开发文档下载端州网站建设
  • 怎么做监测网站的浏览量营销推广策略有哪些