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

网站开发文章怎么分类seo的公司排名

网站开发文章怎么分类,seo的公司排名,网站建设明细表,汕头网站推广教程嗨,我是小路。今天主要和大家分享的主题是“vuethreeJs 创造镂空管状”。 今天在寻找创造镂空管状的几何体项目,发现自己对着色器了解的太少,想要搭建webgl项目,着色器编程是少不了的。 1.catmullRomCurve3算法 定义&am…

        嗨,我是小路。今天主要和大家分享的主题是“vue+threeJs 创造镂空管状”。        

今天在寻找创造镂空管状的几何体项目,发现自己对着色器了解的太少,想要搭建webgl项目,着色器编程是少不了的。

1.catmullRomCurve3算法

定义:这是一个贝塞尔算法,不经过控制点。对这个概念目前理解还不清晰,但初步明白怎么用就可以。

2.TubeGeometry创建管状几何体

定义:这个主要是用来创造管状几何体。其中主要的参数有几个

参数作用

curve

管状的形状参数

tubularSegments

分段数

radius

管状半径

radialSegments

横截面的分段数

closed

管道是否闭合

3.ShaderMaterial材料属性

注意:上次在使用着色器时,对如何改变其中的颜色比了解,发现其主要由着色器代码进行编程,而着色器的代码和c++相似,还需要去寻找合适的着色器编程课程学习。今天主要是学会了部分透明,以及颜色的修改;

二、实例代码

<!--创建一个球体-->
<template><div class="pageBox"><div class="leftBox" ref="leftRef"></div></div></template>
<script setup>
import { onMounted, onUnmounted, reactive, ref } from 'vue';
import * as THREE from 'three';
// 引入轨道控制器扩展库OrbitControls.js
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { getRandomColor, createLight } from '../utils/commonThree';
const leftRef = ref();
// 定义相机输出画布的尺寸(单位:像素px)
let width = window.innerWidth; //宽度
let height = window.innerHeight; //高度
// 创建3D场景对象Scene
const scene = new THREE.Scene();
//设置背景色
scene.background = new THREE.Color(0x646d59);const camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000);
//三角形缩放过大时,会形成多种三角形形成的背景图
camera.position.z = 30;// 创建渲染器对象
const renderer = new THREE.WebGLRenderer();let tubes = [];const createTube = () => {const points = [];for (let i = 0; i < 5; i++) {points.push(new THREE.Vector3(Math.sin(i * 2) * 10, Math.cos(i * 2) * 10, i * 10 - 20))}const curve = new THREE.CatmullRomCurve3(points);const geometry = new THREE.TubeGeometry(curve,64,//分段数2,//半径8,//径向分段数false,//是否闭合);const material = new THREE.ShaderMaterial({transparent: true,uniforms: {time: { value: 0 }},vertexShader: `varying vec2 vUv;void main() {vUv = uv;gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);}`,fragmentShader: `varying vec2 vUv;void main() {float lineWidth =  0.04;float lineNumber = 20.0;float x = fract(vUv.x*lineNumber);float y = fract(vUv.y*lineNumber);if(x < lineWidth || y < lineWidth) {gl_FragColor = vec4(1.0,0.0,0.0,1.0);} else {gl_FragColor = vec4(vec3(1.0),0);}}`,side: THREE.DoubleSide});const tube = new THREE.Mesh(geometry, material);//设置网格的随机位置// sphere.position.set(//   (Math.random() - 0.5) * 2000,//   (Math.random() - 0.5) * 1000,//   (Math.random() - 0.5) * 1000// );return tube;
}onMounted(() => {initData()//添加相机空间const controls = new OrbitControls(camera, renderer.domElement);// 如果OrbitControls改变了相机参数,重新调用渲染器渲染三维场景controls.addEventListener('change', function () {renderer.render(scene, camera); //执行渲染操作});//监听鼠标、键盘事件renderer.setSize(width, height); //设置three.js渲染区域的尺寸(像素px)//将innerHTML置空,避免append重复添加渲染leftRef.value.innerHTML = ''leftRef.value.append(renderer.domElement);})
const initData = () => {createLight(scene);for (let i = 1; i >= 0; i--) {const outSphere = createTube();tubes.push(outSphere);scene.add(outSphere);}render();
}
function render() {requestAnimationFrame(render);// 旋转所有三角形tubes.forEach(tube => {tube.rotation.x += 0.01;tube.rotation.y += 0.01;tube.rotation.z += 0.01;});renderer.render(scene, camera);
}
onUnmounted(() => {//释放内存renderer.dispose();
})</script>
<style scoped lang="less">
.pageBox {width: 100%;height: 100vh;padding: 0;margin: 0;display: flex;justify-content: space-between;align-items: center;.rightBox {width: 100%;height: 100%;}
}
</style>

三、总结

        1、主要收货是初步了解了如何创建管状几何体

        2、了解着色器vUv,x、y和着色器如何对颜色进行调整;如何将部分颜色透明,如何将部分颜色通过着色器设置成对应的颜色。       

最后用一句话,自我勉励:在练习中学习,在学习中复盘,在复盘中成长!

都看到这里了,记得【点赞】+【关注】哟。

http://www.dtcms.com/wzjs/243731.html

相关文章:

  • 网站建设免费软件优化营商环境存在问题及整改措施
  • wordpress 默认主题站点网络营销的概念是什么
  • 室内装饰设计师国家职业技能标准seo提升关键词排名
  • 做俄罗斯外贸网站怎么找到精准客户资源
  • 自己做的网站链接到微信支付界面自己怎么优化网站
  • oa协同办公系统搜索引擎优化seo的英文全称是
  • 广州越秀区疫情最新消息网站服务器速度对seo有什么影响
  • 中国机械网站常州谷歌推广
  • 怎样用代码制作网站上海百度整站优化服务
  • 网站建设的案例网站收录平台
  • 维护网站的一般方法唐山seo推广公司
  • 政府门户网站的建设目标google网址直接打开
  • 网站及管理系统优化大师的优化项目有哪7个
  • 专业独立门户网站建设付费推广
  • 网站建设的文章新闻发布稿
  • 有没有网站做悬赏的国内广告联盟平台
  • 外贸网站增加权重百度一下你就知道了官网
  • 自动与手动控制电路图四川旅游seo整站优化
  • 网站开发中网页上传和发布广州排名推广
  • 有什么网站可以做数学题南宁seo排名收费
  • 南昌专业网站建设首页排名网盘资源大全
  • 个体户能否从事网站建设网站综合查询工具
  • 矿产网站开发最新新闻热点事件摘抄
  • 域名解析 网站建设网络营销专业培训学校
  • 企业网站的建设 英文摘要软文范例100字
  • 网站制作行业最有创意的广告语30条
  • 唯品会 一家专做特卖的网站360收录提交
  • 专门做外贸机械的网站长沙百度
  • 网站开发课程怎么才能在百度上做引流呢
  • 网站公安备案流程鸡西seo