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

从Unity到Three.js(画线组件line)

JavaScript 0基础,只是照着官方文档临摹了下,之后有时间再进行细节学习和功能封装。

import * as THREE from 'three'; //引入threejs

const renderer = new THREE.WebGLRenderer();//创建渲染器
//设置渲染范围,当前撑满全屏,屏幕左上角是(0,0)
let width = window.innerWidth;
let height = window.innerHeight;
renderer.setSize(width, height);

document.body.appendChild(renderer.domElement);
//配置相机,对应unity中 camer组件的相关设置
const camera = new THREE.PerspectiveCamera(45,width/height,1,500);
camera.position.set(0,0,100);//设置相机位置,对应unity中配置camer坐标
camera.lookAt(0,0,0);//设置相机一直朝向的坐标点,对应unity中的相机观察中心点
//创建一个材质球
//const material = new THREE.LineBasicMaterial({color:new THREE.Color("rgb(0, 100, 150)")});//({color:0x0000ff});
const material = new THREE.LineBasicMaterial( {
	color: new THREE.Color("rgb(0, 100, 150)"),
	linewidth: 10,//官方文档告知 由于OpenGL Core Profile与 大多数平台上WebGL渲染器的限制,无论如何设置该值,线宽始终为1。
	linecap: 'bevel', //ignored by WebGLRenderer
	linejoin:  'bevel' //ignored by WebGLRenderer
} );
//配置画线经过的点,对应unity中的lineRenderer组件
//屏幕正中间是(0,0,0)
const points = [];
points.push(new THREE.Vector3(-10,0,0));
points.push(new THREE.Vector3(0,10,0));
points.push(new THREE.Vector3(10,0,0));
points.push(new THREE.Vector3(0,-10,0));
points.push(new THREE.Vector3(-10,0,0));
//传入点 创建几何体
const geometry = new THREE.BufferGeometry().setFromPoints(points);    
//设置直线类型,其他还没研究      
const line = new THREE.Line(geometry,material);

//创建场景
const scene = new THREE.Scene();
scene.add(line);//把线加入场景
renderer.render(scene,camera);//设置要渲染的场景和相机


http://www.kler.cn/a/233693.html

相关文章:

  • 阿里云centos7.9服务器磁盘挂载,切换服务路径
  • Spring-Webflux + Reactor + Netty 初体验
  • golang如何实现sse
  • UVC 输出视频格式修改和windows下数据分析
  • Android中桌面小部件的开发流程及常见问题和解决方案
  • python装饰器的使用以及私有化
  • 微软AD域替代方案,助力企业摆脱hw期间被攻击的窘境
  • 【MySQL】-12 MySQL索引(上篇MySQL索引类型前置-2-高性能的索引策略)
  • Linux应用 进程间通信之共享内存(System V)
  • Webpack源码浅析
  • 【java苍穹外卖项目实战二】苍穹外卖环境搭建
  • 数据结构——单向链表和双向链表的实现(C语言版)
  • (三)elasticsearch 源码之启动流程分析
  • docker安装-centos
  • 统计数字出现次数的数位动态规划解法-数位统计DP
  • python 如何自定义异常
  • CVE-2021-42013 漏洞复现
  • java_error_in_pycharm.hprof文件是什么?能删除吗?
  • 算法之双指针系列1
  • [python-opencv] PNG 裁切物体
  • 【春节特辑】回顾与展望:运维软件领域的2023与2024
  • 计算机网络-差错控制(奇偶校验码 CRC循环冗余码)
  • SpringCloud-搭建Nacos服务中心
  • 【前端高频面试题--Vue生命周期篇】
  • K8S之运用亲和性设置Pod的调度约束
  • docker实际生产中遇到的问题及解决办法