自定义的通道,一般在构造函数中指定相关的参数即可,new ShaderPass(xxx)
THREE.MirrorShader
:创建镜面效果
THREE.HueSaturationShader
:改变颜色的色调和饱和度
THREE.VignetteShader
:添加晕映效果
THREE.ColorCorrectionShader
:调整颜色的分布
THREE.RGBShiftShader
:将红绿蓝三种颜色分开
THREE.BrightnessContrastShader
:改变亮度和对比度
THREE.ColorifyShader
:将某种颜色覆盖到整个屏幕
THREE.SepiaShader
:创建类似于乌贼墨的效果
THREE.KaleidoShader
:类似于万花筒的效果
THREE.LuminosityShader
:提高亮度
THREE.TechnicolorShader
:模拟类似老电影里面的两条彩色效果
THREE.HorizontalBlurShader
和THREE.VerticalBlurShader
:可以向水平和垂直方向创建模糊效果
THREE.HorizontalTiltShiftShader
和THREE.VerticalTileShiftShader
:可以在水平和垂直方向创建倾斜平移的效果
THREE.TriangleBlurShader
:基于三角形的方法创造一种模糊效果
THREE.BleachBypassShader
:创造一种镀银的效果
THREE.EdgeShader
:找到图片的边界并显示
THREE.FXAAShader
:添加抗锯齿的效果
THREE.FocusShader
:创建中间比较尖锐,周围比较模糊的效果。
给场景中的设备描边关键代码
import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer'
let composer = null
let outlinePassRing = null // 光圈
composer = new EffectComposer(renderer)
outlinePassRing = new OutlinePass(new THREE.Vector2(div3D.clientW
设置Three.js库为后期处理做准备,我们需要通过以下步骤对当前的配置进行修改:
1)创建一个EffectComposer(效果组合器)对象,然后在该对象上添加后期处理通道。
2)配置该对象,使它可以渲染我们的场景,并应用额外的后期处理步骤。
3)在render循环中,使用EffectComposer渲染场景、应用通道,并输出结果。
要使用后期处理,需要引入一些ja...
npm install https://github.com/MasatoMakino/threejs-postprocess.git --save-dev
threejs-postprocess由ES6模块和TypeScript d.ts文件组成。
首先,导入类
import {
PostProcessRenderer ,
ChromaticAberrationShaderPass ,
} from "threejs-postprocess" ;
创建PostProcessRenderer实例
const postProcessRender = new PostProcessRenderer ( scene , camera , renderer ) ;
创建Pass实例
一、教程说明 有一定的Threejs基础和WebGL基础,希望能够深入理解Three.js引擎,想了解Threejs是如何对WebGL API和着色器封装的,想了解Threejs向量、矩阵等数学知识,在实际的项目中需要使用Threejs自定义着色器代码。 二、源码下载 源码和课件在本课程页面滚动到最下方 三、源码 四、文字课件 每节课基本都有一篇文章介绍本节课内容,平时学习可以看视频,也可以像看书一样直接阅读文章
用于在three.js中实现后期处理效果。该类管理了产生最终视觉效果的后期处理过程链。 后期处理过程根据它们添加/插入的顺序来执行,最后一个过程会被自动渲染到屏幕上。
EffectComposer( renderer 例子outlinePass
outlinePass
方法如下:
function initEffectComposer(){
composer = new THREE.EffectComposer( renderer );
const renderPass = new TH
ThreeJS-EffectComposer
三个 JS 效果器的 UMD 端口,以促进通过包含
该库的目的是为具有并希望使用已经开发的Effects Composer 之一的网站启用更现代的工作流程; 使用 Bower 将控件作为组件进行管理,而不必在 html 顶部放置松散的脚本。
该库不包括所有后期处理文件,仅包括 Main Effects Composer 文件所依赖的文件。 随着我做更多的三个 js 工作和探索,我将用剩余的文件更新这个存储库。
但是设置为false时,另外可能有些精度的场景会出现叠加图层闪烁z-buffer这种问题,处理办法是,创建相机【PerspectiveCamera】尽量缩小场景可见范围,根据自己场景的调整相机的【near/far】,我这个0.1/10是模型本来就长度不到3,这个根据自己条件调整。object是一个数组,可以先声明一个数组,把要做反射的物体添加到数组里,然后在SSRPass的selects里添加。处理方式和上一个问题雷同,把camera的near【近切面】设置大一点即可,根据自身场景调整,不多赘述。