位置: IT常识 - 正文

Three.js教程:材质效果(three.js 入门)

编辑:rootadmin
Three.js教程:材质效果

推荐整理分享Three.js教程:材质效果(three.js 入门),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:three.js菜鸟教程,three. js,three. js,three.js glb,three.js 教程,three.js中文教程,three. js,three.js入门指南,内容如对您有帮助,希望把文章链接给更多的朋友!

推荐:将NSDT场景编辑器加入你3D工具链

其他工具系列:NSDT简石数字孪生

材质效果

前面案例中几何体对应网格模型材质只是设置了一个颜色,实际渲染的时候往往会设置其他的参数,比如实现玻璃效果要设置材质透明度,一些光亮的表面要添加高光效果。

半透明效果Three.js教程:材质效果(three.js 入门)

更改场景中的球体材质对象构造函数THREE.MeshLambertMaterial()的参数,添加opacity和transparent属性,opacity的值是0~1之间,transparent表示是否开启透明度效果, 默认是false表示透明度设置不起作用,值设置为true,网格模型就会呈现透明的效果,使用下面的代码替换原来的球体网格模型的材质, 刷新浏览器,通过鼠标旋转操作场景,可以看到半透明的球体和立方体颜色叠加融合的效果。

var sphereMaterial=new THREE.MeshLambertMaterial({ color:0xff0000, opacity:0.7, transparent:true});//材质对象

材质对象的一些属性可以在构造函数参数中设置,也可以访问材质对象的属性设置。

material.opacity = 0.5 ;material.transparent = true ;材质常见属性材质属性简介color材质颜色,比如蓝色0x0000ffwireframe将几何图形渲染为线框。 默认值为falseopacity透明度设置,0表示完全透明,1表示完全不透明transparent是否开启透明,默认false添加高光效果

直接使用下面的代码替换上面的透明度材质即可,刷新浏览器可以看到球体表面的高光效果。

var sphereMaterial=new THREE.MeshPhongMaterial({ color:0x0000ff, specular:0x4488ee, shininess:12});//材质对象

处在光照条件下的物体表面会发生光的反射现象,不同的表面粗糙度不同,宏观上来看对光的综合反射效果,可以使用两个反射模型来概括,一个是漫反射,一个是镜面反射, 使用渲染软件或绘画的时候都会提到一个高光的概念,其实说的就是物理光学中镜面反射产生的局部高亮效果。实际生活中的物体都是镜面反射和漫反射同时存在,只是哪个占得比例大而已, 比如树皮的表面更多以漫反射为主基本没有体现出镜面反射,比如一辆轿车的外表面在阳光下你会看到局部高亮的效果,这很简单汽车表面经过抛光等表面处理粗糙度非常低, 镜面反射效果明显,对于three.js而言漫反射、镜面反射分别对应两个构造函数MeshLambertMaterial()、MeshPhongMaterial(),通过three.js引擎你可以很容易实现这些光照模型,不需要自己再使用原生WebGL实现,更多关于光照模型的知识可以参考文章《WebGL_course光照渲染立方体》或计算机图形学的相关书籍。

前面案例都是通过构造函数MeshLambertMaterial()实现漫反射进行渲染,高光效果要通过构造函数MeshPhongMaterial()模拟镜面反射实现,属性specular表示球体网格模型的高光颜色,改颜色的RGB值会与光照颜色的RGB分量相乘, shininess属性可以理解为光照强度的系数,初学的的时候这些细节如果不清楚,不用深究,每个人的基础不同,理解问题的深度和角度不同,比如高光,学习过计算机图形学的会联想到镜面反射模型和物理光学, 从事过与美术相关工作,都知道需要的时候会给一个物体添加高光,视觉效果更加高亮,因此对于构造函数MeshPhongMaterial()的参数设置不太清除也没关系,对于零基础的读者本节课的要求就是有个简单印象就可以, 站在黑箱外面理解黑箱;对于有WebGL基础的,可以思考three.js引擎构造函数实际封装了哪些WebGL API和图形学算法,站在黑箱里面理解黑箱,如果是你你会怎么封装开发一个三维引擎,这样你可以从底层理解上层的问题, 保证学习的连贯性;如果你使用过其它的三维建模渲染软件,那就使用three.js这个黑箱类比一个你熟悉的黑箱,通过类比降低学习难度,比如你可以打开3dmax软件设置一个材质的高光,体验下视觉效果。

材质类型

threejs提供了很多常用的材质效果,这些效果本质上都是对WebGL着色器的封装,对于开发者来说直接使用就可以,这里不再做过多介绍,大家现有一个印象即可。

材质类型功能MeshBasicMaterial基础网格材质,不受光照影响的材质MeshLambertMaterialLambert网格材质,与光照有反应,漫反射MeshPhongMaterial高光Phong材质,与光照有反应MeshStandardMaterialPBR物理材质,相比较高光Phong材质可以更好的模拟金属、玻璃等效果

3D建模学习工作室

本文链接地址:https://www.jiuchutong.com/zhishi/300832.html 转载请保留说明!

上一篇:React脚手架工具创建项目的详细介绍(react脚手架搭建项目)

下一篇:vue实现动态路由添加(简单无废话版本)(vue动态路由是什么)

  • 浅谈怎样做好网店推广(如何做好一个网名)

    浅谈怎样做好网店推广(如何做好一个网名)

  • 300m路由器和1000m路由器有什么区别(300m路由器和2.4g路由器)

    300m路由器和1000m路由器有什么区别(300m路由器和2.4g路由器)

  • excel表格筛选条件怎么设置(excel表格筛选条件区域)

    excel表格筛选条件怎么设置(excel表格筛选条件区域)

  • 抖音该应用未获得微信登录的权限(抖音该应用未获得qq权限怎么办)

    抖音该应用未获得微信登录的权限(抖音该应用未获得qq权限怎么办)

  • 闲鱼没确认收货可以申请退货退款吗(闲鱼没确认收货可以申请退款吗)

    闲鱼没确认收货可以申请退货退款吗(闲鱼没确认收货可以申请退款吗)

  • 蓝光碟和dvd的区别(蓝光碟和dvd的区别在哪)

    蓝光碟和dvd的区别(蓝光碟和dvd的区别在哪)

  • 钉钉优秀作业为什么打不开(钉钉优秀作业为什么自己是第一)

    钉钉优秀作业为什么打不开(钉钉优秀作业为什么自己是第一)

  • 请将磁盘放入驱动器i是什么意思(请将磁盘放入驱动器是什么意思)

    请将磁盘放入驱动器i是什么意思(请将磁盘放入驱动器是什么意思)

  • 苹果11后置摄像头模糊(苹果11后置摄像头安装视频)

    苹果11后置摄像头模糊(苹果11后置摄像头安装视频)

  • 微信语音免提对方听不到(微信语音免提是什么意思)

    微信语音免提对方听不到(微信语音免提是什么意思)

  • 苹果手机打不出去电话也接不到电话(苹果手机打不出字只有字母)

    苹果手机打不出去电话也接不到电话(苹果手机打不出字只有字母)

  • iphone6s不充电就卡(iphone6不充电就关机)

    iphone6s不充电就卡(iphone6不充电就关机)

  • 修改群名称别人知道吗(修改群名称别人也变么)

    修改群名称别人知道吗(修改群名称别人也变么)

  • pdf打印和word一样吗(pdf打印与word打印)

    pdf打印和word一样吗(pdf打印与word打印)

  • 越南手机号可以注册微信吗(越南手机号可以注册抖音吗)

    越南手机号可以注册微信吗(越南手机号可以注册抖音吗)

  • 小米9支持30w快充吗(小米9能用30w快充吗)

    小米9支持30w快充吗(小米9能用30w快充吗)

  • 怎样退货给卖家拼多多(怎样退货给卖家快手怎样与快递站沟通)

    怎样退货给卖家拼多多(怎样退货给卖家快手怎样与快递站沟通)

  • 华为永久关闭talkback(华为永久关闭桌面弹出广告怎么关闭)

    华为永久关闭talkback(华为永久关闭桌面弹出广告怎么关闭)

  • 小米米家智能门锁sn码在哪(小米米家智能门锁如何修改密码)

    小米米家智能门锁sn码在哪(小米米家智能门锁如何修改密码)

  • 手机管家云端相册在哪(手机管家云端相册怎么找)

    手机管家云端相册在哪(手机管家云端相册怎么找)

  • 在微机中vga代表什么(在微机中vga是)

    在微机中vga代表什么(在微机中vga是)

  • word英文下面红色的线怎么去掉(word 英文下面出现红色的波浪线怎么了)

    word英文下面红色的线怎么去掉(word 英文下面出现红色的波浪线怎么了)

  • 起亚k2蓝牙是哪个按键(起亚k2蓝牙是哪个按键没有屏幕)

    起亚k2蓝牙是哪个按键(起亚k2蓝牙是哪个按键没有屏幕)

  • 芒果tv咋取消手机绑定(芒果tv怎么关闭绑定手机号)

    芒果tv咋取消手机绑定(芒果tv怎么关闭绑定手机号)

  • 全屏游戏按键盘出现输入法怎么办(全屏游戏键盘一直打字)

    全屏游戏按键盘出现输入法怎么办(全屏游戏键盘一直打字)

  • vue3+vite项目跨域配置(踩坑无数篇)(vue3.0解决跨域)

    vue3+vite项目跨域配置(踩坑无数篇)(vue3.0解决跨域)

  • python调用函数和打印函数的区别(python中的函数调用)

    python调用函数和打印函数的区别(python中的函数调用)

  • 小规模纳税人增值税减免账务处理
  • 个税申报人员报送成功怎么删除
  • 发票的规格和型号有哪些
  • 管理费用贷方有哪些递减
  • 信息技术服务费计入什么会计科目
  • 外商投资企业采取发包、出租经营
  • 个体户查账征收怎么交税?
  • 境外企业提供国外服务
  • 什么情况下是应收账款
  • 增值税什么情况下可以退税
  • 超市开发票要交百分之几的税?
  • 会务费发票要附上照片吗
  • 打印机第一行未赋码
  • 营改增后房地产企业增值税如何核算
  • 如何办理临时经营纳税人设立登记
  • 暂估成本冲回之后成本变为负的
  • 企业为职工负担的个人所得税是什么意思
  • 土地溢价款如何计算
  • 平板电脑折旧残值率
  • 政府高薪补贴
  • 水费能不能开专票
  • 报销抵扣联和发票联都需要吗
  • 注销税务登记后多久注销工商登记
  • 申报的国家资助的一个项目如何进行账务处理?
  • 投资资本回报率多少合适
  • 上月材料入库会计分录
  • 年末利润分录
  • php 抓取别的网站的内容
  • 收到服务费计入什么科目
  • win11资源管理器卡死
  • php数组函数输出《咏雪》里有多少"片"字
  • kcleaner.exe是什么
  • PHP:imageellipse()的用法_GD库图像处理函数
  • 进项税额转出余额在贷方怎么处理
  • Vue:element-ui中表格过长内容隐藏显示
  • opencv调用yolov8
  • springmvc常见问题
  • source命令怎么用
  • 抄税清卡是一个意思吗
  • 印花税和工会经费用不用计提
  • 财务报表季报应付职工薪酬为负数
  • 未开票要交增值税吗
  • 销售鸡蛋免增值税吗
  • three.js gui
  • 普票和专票的
  • 解决烧心最快方法
  • 一次性加速折旧考虑残值吗
  • 资产负债表一般由什么组成
  • 技术服务收入属于销售营业收入吗
  • 库存商品是表达什么意思
  • 个体户需要给员工买五险一金吗
  • 原材料基本账务处理办法
  • 银行代付工资如何操作
  • 企业外购的软件叫什么
  • 银行取现怎么预约
  • 教育费附加免征额
  • 财务会计与预算会计差异如何处理
  • 将mater库中的系统存储过程批量生成*.sql文件 通用且非常实用
  • ie8 开发者工具
  • 三星笔记是干什么用的
  • 系统win8
  • win7怎么退出域环境
  • xp系统如何更改开机启动项
  • 怎样加快电脑开机速度
  • tkmc.exe
  • php九宫格
  • Ubuntu 16.04 64位中搭建Node.js开发环境教程
  • linux快速启动终端
  • linux find命令的使用
  • 你知道python不
  • 简洁实用的公司治理机制
  • python的读取和写入
  • 点评js异步加载什么意思
  • 深圳市国家税务局赵雨婷
  • 广东省纳税信用等级
  • 江西企业社保缴费基数查询
  • 净缴税什么意思
  • 陕西电子税务局官网
  • 深圳龙华九价怎么预约
  • 车辆购置税退税申请表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设