当前位置:首页 » 《资源分享》 » 正文

WEB 3D技术 three.js 设置环境贴图 高光贴图 场景设置 光照贴图

8 人参与  2024年04月25日 12:17  分类 : 《资源分享》  评论

点击全文阅读


上文WEB 3D技术 three.js 基础网格材质演示几何体贴图 ao贴图效果我们简单构建了一个贴图和ao贴图的几何体材质
我们接下来 来看一下透明度贴图
我们还是官网搜索 MeshBasicMaterial
在这里插入图片描述
然后 是我们的 alphaMap 属性
这里 黑色为完全透明 白色 完全不透明
黑白之间还有灰色 这个灰色的灰值 就是透明度
在这里插入图片描述
这里 我们直接用 alphaMap 上贴图
在这里插入图片描述
这样 图形就明显有些透明效果了 但是会上面也说了 他会开始转变为黑白灰色
在这里插入图片描述
然后 是我们的光照贴图
在这里插入图片描述我们这里加一下
在这里插入图片描述
然后 我们图片的光照效果 就会在内部微微的显现出我们设置的 public/background.jpg
在这里插入图片描述
然后 我们来看环境贴图
这里 我们需要一个HDR图片
如果没有 可以下载我的资源
HDR格式文件 WEB 3D学习工具
这里 我将它 放入项目的 public目录下
在这里插入图片描述
那么 我们需要一个hdrl的加载器

import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader.js";

在这里插入图片描述
然后 找一个位置写入代码

let rgbeloader = new RGBELoader();rgbeloader.load("./public/page.hdr",(texture) =>{    scene.background = texture;})

这里 我们函数 向public目录下导入 page.hdr 回调 参数 就是文件对象 然后 赋值给场景的 background属性
在这里插入图片描述
运行效果如下
在这里插入图片描述
但是 这样 我们场景是不会动的 就好像是一个离谱的背景图 而我们想要的是 它跟谁我们的拖动 转动

我们直接给个属性就好了
在这里插入图片描述
这样 我们拖动场景 他就会随之变化
在这里插入图片描述
我们 再往右拖一拖
在这里插入图片描述
我们来回转多可以
在这里插入图片描述
然后 我们可以单独设置 我们中间这块元素的环境贴图
改写代码如下

let rgbeloader = new RGBELoader();rgbeloader.load("./public/page.hdr",(texture) =>{    texture.mapping = THREE.EquirectangularReflectionMapping;    scene.background = texture;    scene.environment = texture;    planeMaterial.envMap = texture;})let planeGeometry = new THREE.PlaneGeometry(1,1);let textureLoader = new THREE.TextureLoader();let planeMaterial = new THREE.MeshBasicMaterial({    color: 0xffffff,    side: THREE.DoubleSide,    transparent: true,    map: textureLoader.load("./public/logo.png"),    //lightMap: textureLoader.load("./public/background.jpg")})

这里 我们先注释掉 lightMap 光照贴图 免得影响视觉体验
environment 设置环境贴图
然后 我们设置 planeMaterial材质的 envMap 环境贴图字段 为我们外面的场景
在这里插入图片描述
这样 我们中间这个材质 就也展现出反光的一个效果了
在这里插入图片描述
然后 我们可以通过材质 reflectivity 属性设置反射强度 值 从 0 到 1
默认值 1
这里 我们来一手 0.5
在这里插入图片描述
运行效果如下
在这里插入图片描述
好 接下里 我们设置一下高光贴图
在这里插入图片描述

let rgbeloader = new RGBELoader();rgbeloader.load("./public/page.hdr",(texture) =>{    texture.mapping = THREE.EquirectangularReflectionMapping;    scene.background = texture;    scene.environment = texture;    planeMaterial.envMap = texture;})let planeGeometry = new THREE.PlaneGeometry(1,1);let textureLoader = new THREE.TextureLoader();let specularMap = textureLoader .load("./public/background.jpg")let planeMaterial = new THREE.MeshBasicMaterial({    color: 0xffffff,    side: THREE.DoubleSide,    transparent: true,    map: textureLoader.load("./public/logo.png"),    specularMap: specularMap    //lightMap: textureLoader.load("./public/background.jpg")})

我们 specularMap 导入的图片依旧是
在这里插入图片描述
光照贴图依旧注释了 也不会有影响

然后 我们设置材质的 specularMap 字段
这个起到的作用就是 图片白色部分反色 黑色部分不反射
在这里插入图片描述
当然 这个效果能和材质 reflectivity 反射强多做一个叠加 你要是嫌反射太明显 可以 设置个 0.3 或者再小一些
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/99973.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 愿得一人心常读_萧城蒋雪柔华冉优质全文_小说后续在线阅读_无删减免费完结_
  • 女士的玩具推文_杜小灵白月光杜雪必读文_小说后续在线阅读_无删减免费完结_
  • 女儿要给我养老,我却反手把她告上法庭每日分享_林梦王浩养老一口气完结_小说后续在线阅读_无删减免费完结_
  • 闻妻有两意(林鹿小柿子)_闻妻有两意
  • 我的死党是刘秀?这皇位我不篡了(李哲王莽)全书免费_(李哲王莽)我的死党是刘秀?这皇位我不篡了后续(李哲王莽)
  • 逃荒路末世女王带着空间养儿女(周铁山王寡妇阿蛮)_逃荒路末世女王带着空间养儿女(周铁山王寡妇阿蛮)
  • 霍远凡肖灿续集(霍远凡肖灿)章节前文+全书阅读(丈夫逼我流产,我以死谢罪)最新连载
  • 老公给我13.14亲密付,我堕胎再婚后他悔疯了每日分享_苏暖顾川林晚晚超长版_小说后续在线阅读_无删减免费完结_
  • (白瑶,李玄胤,冰冷)白瑶,李玄胤,冰冷小说(九尾渡红尘)无套路无弹窗全部章节列表
  • (此去经年无故人)南初陆南城:结局+番外精品选集起点章节+阅读即将发布预订
  • 沈凝夏叶晚怡附加完整在线阅读(归雁不栖故人枝)最近更新列表
  • 剧情人物是时初,白浩雄的玄幻言情小说《召诸神,踏万界,天命帝女逆乾坤》,由网络作家&ldquo;海鸥&rdquo;所著,情节扣人心弦,本站TXT全本,欢迎阅读!本书共计381345字,185章节,:结局+番外免费品鉴:结局+番外评价五颗星

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1