在threejs Editor中调好一些样式属性后, 可以直接选择导出具体的格式,或者导出成json【json 一般体积大很多,比glb】(场景,通过objectLoader 加载json!!!)

自发光属性和自发光贴图:

.emissive

.emissiveMap

【有时候模型导出后,使用threejs展示的时候,现实的效果会和在3d编辑器中效果有差异, 具体到,就比如手机模型,编辑器里的效果是屏幕很亮,而且是贴图颜色的亮, 但是使用threejs  加载屏幕会暗很多,仅仅调节自发光强度,屏幕是发白的亮,而不是贴图的那种颜色的亮度,这时候就可以加载这张自发光贴图即可 】

设置一些金属效果,毛绒反光效果,等都是通过

一些室内的模型,比如vr 看房, 限制控制器位移,旋转角度避免穿帮

控制思路:

1,首先将摄像机定位在一个合适的角度(集合 axesHelper xyz坐标轴辅助器,看调节哪些个方向)

2.控制器 controls.target.set(设定在和相机lookat 的同一位置)

3. 一般禁用  鼠标右键移动模型  controls.enablePan = false

4.设置缩放的最大最小距离(指的是离这个controls.target的距离)controls.minDistance/maxDistance

5.设置垂直Polar/水平Azimuth的旋转角度, 一般都需要 controls.minPolarAngle/maxPolarAngle[minAzimuthangle/maxAzimuth]

纹理:

1.重复   texture.wrapS(水平)/wrapT(竖直) 方向上重复 + texture.repeat.set(4, 4) [表示x,y轴都重复四次]

2.偏移:  texture.offset.set(x, y )

3旋转:texture.rotation (默认 center为 0 0) 可以通过 texture.center.set()  修改旋转中心点

4.  纹理翻转flipY和 预乘alpha premultiplyAlpha (存在alpha 的话)(最常见的效果就是贴图会出现描边效果)

一些优化项

动态【Hdr格式|EXR格式|Tif|png】全景背景图色调曝光度的自适应: 主要是用于处理如果是很亮的场景, 不注意曝光度太高导致晃眼,看不清, 太暗的也不会乌漆嘛黑

渲染器设置【

render.toneMapping = 设置曝光模式

render.toneMappingExposure = 1 设置曝光度 【可以模拟关灯和 开灯,天亮了等场景】

纹理的各项异性过滤(Anisotropic filtering)贴图当中解决角度失真问题的技术,通常在地面、墙面或其他倾斜的表面上观察到这种现象。

当视角接近平行于纹理表面时,例如查看地平线上的地板纹理,由于取样密度的不均匀,导致远离观察者的纹理区域显得模糊。各向异性过滤通过沿着轴取样更多的纹理像素以解决这个问题,使纹理在不同的观察角度下看起来更清晰。

texture.anisotropy = 1~16 区间 默认为1

压缩图片纹理 :可以借助 mvidia  的 图片压缩工具, 支持多种格式:

Threejs 中使用KTX2/DDS/TGA \EXR\TIF/PNG纹理

1. 加载KTX2  :需要借助 ktx2Loader.js  以及工具类 basis  [位置:three/axamples/jsm/lib/basis] 复制basis到public下最好

const  ktx2loader = new KTX2Loader().setTranscodePath('basis').detectSupport(renderer)

(有个重要的点就是,使用nvidia贴图压缩的时候,如果压缩导出的时候,设置了 生产mipmap的话, 那么全景环境贴图可能就会失效)

2.dds

3. tga

4.EXR

5. tif

6.png

我不知道的threejs(6)-开发中的容易被忽略的的更多相关文章

  1. 你所不知道的html5与html中的那些事第三篇

    文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作 ...

  2. 你所不知道的html5与html中的那些事(三)

    文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作 ...

  3. 你所不知道的html5与html中的那些事(五)——web图像

    文章简介:       现在的页面,一般都离不开图像,而怎么做才能让我们的页面中的图像加载的又快又好呢?在优化页面速度的时候还有什么事是你所不知道的呢?     下面看看今天我为大家带来了哪些关于we ...

  4. 你所不知道的html5与html中的那些事(四)——文本标签

    文章简介:       关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后 ...

  5. 你可能不知道的BFC在实际中的应用

    概述 BFC是块级格式化上下文,它的一个令人熟知的运用是双飞翼布局或者两列布局.但其实它在其它地方也有很巧妙的运用.我把研究的心得记录下来,供以后开发时参考,相信对其他人也有用. 参考资料: mdn块 ...

  6. Android中Context详解 ---- 你所不知道的Context

    转自:http://blog.csdn.net/qinjuning/article/details/7310620Android中Context详解 ---- 你所不知道的Context 大家好,  ...

  7. Android中Context详解 ---- 你所不知道的Context(转)

    Android中Context详解 ---- 你所不知道的Context(转)                                               本文出处 :http://b ...

  8. Java并发编程(您不知道的线程池操作), 最受欢迎的 8 位 Java 大师,Java并发包中的同步队列SynchronousQueue实现原理

    Java_并发编程培训 java并发程序设计教程 JUC Exchanger 一.概述 Exchanger 可以在对中对元素进行配对和交换的线程的同步点.每个线程将条目上的某个方法呈现给 exchan ...

  9. JavaScript中你可能不知道的九件事

    今天凑巧去W3School扫了一遍JavaScript教程,发现从中看到了不少自己曾经没有注意过的细节. 我这些细节列在这里.分享给可能相同不知道的朋友: 1.使用 document.write() ...

  10. JavaScript中你所不知道的Object(二)--Function篇

    上一篇(JavaScript中你所不知道的Object(一))说到,Object对象有大量的内部属性,而其中多数和外部属性的操作有关.最后留了个悬念,就是Boolean.Date.Number.Str ...

随机推荐

  1. 浅析pcba测试

      说起PCB大家都很熟悉,那大家知道什么是PCBA吗?它是指将PCB板进行加工,支撑一个成品线路板.而PCBA测试就是对线路板进行一个功能测试.电路测试.那么为什么一定要对PAB板进行检测呢?它有什 ...

  2. 【Spring5】IOC

    1 Spring概念 Spring是轻量级的开源JavaEE框架.可以解决企业开发的复杂性. Spring有两个核心部分:IOC和Aop ①IOC控制反转:把创建对象过程交给Spring管理 ②Aop ...

  3. React Native组件(二)

    一.创建一个项目 1.1.找到目标目录cmd命令,请尽量不要有中文路径 npx react-native init reactnative03 进入文件 cd reactnative03 启动 npx ...

  4. PWN 学习日志(1): pwntools简单使用与栈溢出实践

    常用的模块 模块 功能 asm 汇编与反汇编 dynelf 远程符号泄漏 elf 对elf文件进行操作 memleak 用于内存泄漏 shellcraft shellcode生成器 gdb 配合gdb ...

  5. 利用机器人类Robot写出自动登录QQ的小代码

    最近写了一个小代码控制鼠标键盘使他自己登录QQ,下面给大家分享下这一小代码. 这段小程序是用Java里的Robot类实现的,控制鼠标键盘的一个机器人类. 我们想要实现自动登录QQ首先得想要做到这一步需 ...

  6. PYTHON数据分析——python基础

    利用命令行创建python文件 C:\Users\Your Name>python myfile.py Python 变量命名规则: 变量名必须以字母或下划线字符开头 变量名称不能以数字开头 变 ...

  7. 3.1 JAVA方法:

    JAVA方法: 何为方法 方法是语句的集合,这个集合执行一个功能 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 java全是值传递 方法的定义和调用 方法的定义: 修饰符 返回类型 方法 ...

  8. 基于QtAV的简易播放器(开源)

    这个开源代码,是我利用QtAV源码,提取其中一部分代码,进行整合到我自己项目中,做的一个小型播放器测试,至于怎么安装一些环境以及QtAV源码编译在我以前写的一篇博客中可以看到(Qt第三方库QtAV-- ...

  9. 【leetcode】258. 各位相加

    [leetcode]258. 各位相加 C++解法: class Solution { public: int addDigits(int num) { string s;//用来将num转换成字符串 ...

  10. 2022-12-07:删除重复的电子邮箱。删除重复数据后,id=3的数据被删除。请问sql语句如何写? DROP TABLE IF EXISTS `person`; CREATE TABLE `per

    2022-12-07:删除重复的电子邮箱.删除重复数据后,id=3的数据被删除.请问sql语句如何写? DROP TABLE IF EXISTS `person`; CREATE TABLE `per ...