45. 圆形平面设置纹理贴图

你可以思考下,怎么实现矩形图片剪裁为圆形渲染。

其实很简单,可以通过圆形几何体CircleGeometry创建一个网格模型Mesh,把一张图片作为圆形Mesh材质的颜色贴图,这样就可以把一张方形图片剪裁渲染为圆形效果。

javascript 复制代码
//CircleGeometry的顶点UV坐标是按照圆形采样纹理贴图
const geometry = new THREE.CircleGeometry(60, 100);
//纹理贴图加载器TextureLoader
const texLoader = new THREE.TextureLoader();
const texture = texLoader.load('./texture.jpg');
const material = new THREE.MeshBasicMaterial({
    map: texture,//map表示材质的颜色贴图属性
    side:THREE.DoubleSide,
});
const mesh = new THREE.Mesh(geometry, material);

本质原理

CircleGeometry的UV坐标会对颜色纹理贴图.map进行提取,CircleGeometry的UV坐标默认提取的就是一个圆形轮廓。

相关推荐
Rysxt_13 小时前
Vue文件下载功能完整指南:从基础实现到进阶实战
前端·javascript·vue.js
一 乐13 小时前
智慧养老|基于springboot+小程序社区养老保障系统设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·小程序
冰暮流星13 小时前
css3网格布局2
前端·css·css3
JIseven13 小时前
uniapp页面新手引导
java·前端·uni-app
烛阴13 小时前
代码的“病历本”:深入解读C#常见异常
前端·c#
IT_陈寒14 小时前
Python 3.12 新特性实战:10个提升开发效率的隐藏技巧大揭秘
前端·人工智能·后端
dangdang___go14 小时前
文件操作2+程序的编译和链接(1)
java·服务器·前端
西西学代码14 小时前
Flutter中常用的UI设计
前端·flutter·ui
Sunhen_Qiletian14 小时前
《Python开发之语言基础》第七集:库--时间库
前端·数据库·python
JokerLee...14 小时前
【Vtable自定义样式】
前端·javascript·vtable