ThreeJs学习笔记--常见几何体,材质,渲染器

几何体

分类

javascript 复制代码
//BoxGeometry:长方体
const geometry = new THREE.BoxGeometry(100, 100, 100);
// SphereGeometry:球体
const geometry = new THREE.SphereGeometry(50);
// CylinderGeometry:圆柱
const geometry = new THREE.CylinderGeometry(50,50,100);
// PlaneGeometry:矩形平面
const geometry = new THREE.PlaneGeometry(100,50);
// CircleGeometry:圆形平面
const geometry = new THREE.CircleGeometry(50);

BoxGeometry

SphereGeometry

CylinderGeometry

const geometry = new THREE.CylinderGeometry(50, 50, 100);//高100,上下直径50

const geometry = new THREE.CylinderGeometry(50, 100, 100);//高100,上50,下100

PlaneGeometry(单面的)

const geometry = new THREE.PlaneGeometry(100,50);

CircleGeometry(单面的)

const geometry = new THREE.CircleGeometry(50);

PlaneGeometry,CircleGeometry可以设置材质里的side属性,修改双面显示

javascript 复制代码
const material = new THREE.MeshLambertMaterial({
  color: 0x00ff00,//颜色
  side: THREE.DoubleSide,//双面
  //  side: THREE.FrontSide, //默认只有正面可见
});

材质

分类

高光镜面反射

漫反射

镜面反射和漫反射在没有高光的时候差异并不明显,可以通过设置高光属性来让效果突出

javascript 复制代码
// 模拟镜面反射,产生一个高光效果
const material = new THREE.MeshPhongMaterial({
    color: 0xff0000,
    shininess: 20, //高光部分的亮度,默认30
    specular: 0x444444, //高光部分的颜色
});

渲染器

锯齿属性:antialias

javascript 复制代码
const renderer = new THREE.WebGLRenderer({
  antialias:true,
});
//或者
renderer.antialias = true,

antialias默认为false,设置true则是开启抗锯齿

设置设备像素比:setPixelRatio()

javascript 复制代码
// 获取你屏幕对应的设备像素比.devicePixelRatio告诉threejs,以免渲染模糊问题
renderer.setPixelRatio(window.devicePixelRatio);//window.devicePixelRatio获取当前设备像素比

不同的显示设备像素比不同,设置像素比可以避免渲染模糊。像素比过高会影响运行,过低怎会模糊。

设置背景颜色.setClearColor()

javascript 复制代码
renderer.setClearColor(0x444444, 1); //设置背景颜色

setClearColor有两个属性,第一个是颜色,支持十六进制,RGBA,RGB。第二个是透明度,可以设置0-1之间的浮点数

相关推荐
im_AMBER3 分钟前
数据结构 04 栈和队列
数据结构·笔记·学习
尘似鹤20 分钟前
微信小程序学习(六)--多媒体操作
学习·微信小程序·小程序
要做朋鱼燕1 小时前
密码学安全:CIA三元组与三大核心技术
网络·笔记·密码学·嵌入式·加密·aes
UpYoung!1 小时前
无广技术贴!【PDF编辑器】Solid Converter PDF保姆级图文下载安装指南——实用推荐之PDF编辑软件
学习·数学建模·pdf·编辑器·运维开发·个人开发
金水谣1 小时前
考研10.5笔记
笔记
达瓦里氏1231 小时前
重排反应是什么?从分子变化到四大关键特征解析
数据库·学习·化学
LiJieNiub2 小时前
基于 PyTorch 实现 MNIST 手写数字识别
pytorch·深度学习·学习
Geek攻城猫2 小时前
02117 信息组织【第六章】
学习
流***陌2 小时前
线上教学小程序:构建高效互动的云端学习空间
学习·小程序
来自嵌入式的zyz2 小时前
STM32项目实战/PID算法学习:编码电机闭环控制实现控速+位置控制、倒立摆实现
stm32·嵌入式硬件·学习·控制·pid