Three.js学习笔记-Renderers(渲染器)

Renderers

WebGLMultisampleRenderTarget

只能与WebGL2 呈现上下文一起使用

WebGLRenderTarget的属性和方法可用在这个类上

WebGLRenderer

构造函数
WebGLRenderer(Parameters: Object) parameters可选的对象,有效的参数如下

  • canvas 渲染器绘制输出的画布,这对应于下面的docElement元素,不在这里传递则创建一个新的画布元素
  • context 将渲染器附加到所有存在的RenderingContext,默认null
  • precision 阴影精度,highp/mediump/lowp 默认highp
  • alpha 画布是否包含透明缓冲区,默认false
  • premultipliedAlpha 渲染器是否会假设颜色具有预乘透明度,默认true
  • antialias 抗锯齿,平滑,默认false
  • stencil 绘图缓冲区是否有至少8位的stencil buffer 默认true
  • preserveDrawingBuffer 是否保留缓冲区,直到手动清除或覆盖。默认false
  • powerPreference 向用户代理提供提示,指示适用于此WebGL上下文的GPU配置。可以是“high-performance”,“low-power”或“默认”。默认为“default”。
  • depth 绘图缓冲区具有至少16位的depth buffer。默认为true
  • logarithmicDepthBuffer 是否使用对数深度缓冲区。如果在单个场景中处理规模的巨大差异,则可能需要使用它。默认值为false
    特性
  • autoClear: Boolean 在渲染一帧后是否自动清理输出
  • autoClearColr: Boolean 渲染器清理颜色缓冲区,默认true
  • autoClearDepth: Boolean 渲染器清理深度缓冲区,默认true
  • autoCleanStencil: Boolean 渲染器清理模板缓冲区,默认true
  • capabilities: Object 包括当前渲染上下文的详细信息,详细参考
  • clippingPlanes: Array 用户定义的裁剪平面,默认[]
  • context: WebGLRenderingContext 渲染器默认用HTMLCanvasElement.getContext.getContext从它自己的domElement获取RenderingContext的上下文
  • domElement: DOMElement 理解为渲染器绘制输出的canvas元素
  • extensions: Object GET方法包装器,检查是否支持各种WebGL扩展
  • gammaInput: Boolean 所有的纹理和颜色预乘伽马,默认false
  • gammaOutput: Boolean 需要以预乘的伽马输出,默认false
  • gammaFactor 默认2
  • info: Object 图形版内存和绘制过程中的统计信息,用于debugging
  • localClippingEnabled: Boolean 默认false
  • maxMorphTargets: Intrget 默认8,标准材料只能用八个。规定一个着色器使用的最大数量的MornphTargets
  • maxMorphNormals: Integer 默认4
  • physicallyCorrectLights: Boolean 默认false ,物理的正确的照明方式
  • properties: Object 跟踪子对象的属性
  • renderLists: WebGLRenderList 处理渲染列表
  • shadowMap: WebGLShadowMap 属性有enabled(默认false)/autoUpdate(默认true)/needsUpdate(默认false)/type(默认 THREE.PCFShadowMap)
  • sortObjects: Boolean 默认true
  • state: Object 设置WebGLRenderer.context状态的各种属性 常量
  • toneMapping: Constant 在Renderer constants选择,默认LinearToneMapping(声调)
  • toneMappingExposure: Number 默认1
  • toneMappingWhitePoint: Number 默认1
    方法
  • allocTextureUnit() 分配纹理单元够着色器使用,主要内部使用
  • clear(color: Boolean,depth: Boolean,stencil: Boolean) 清除
  • clearColor/Depth/Stencil() 清除缓存模板
  • compile(scene: Scene,camera: Camera) 在第一次呈现之前预编译很有用
  • copyFramebufferToTexture(position: Vector2,teture: Texture,level: Number): null
  • copyTextureToTexture(position: Vector2,texture: Texture,level: Number): null
  • dispose(): null 释放当前渲染的上下文
  • forceContextLoss(): null 模拟WebGL上下文丢失
  • getClearAlpha(): Float 0~1
  • setClearAlpha(alpha)
  • getClearColor(): Color 返回一个当前清晰的Three.Color实例
  • setClearColor(color,alpha) 设置渲染的环境的颜色
  • getContext(): WebGLRenderingContext 返回当前WebGL的上下文
  • getContextAttributes(): WebGLContextAttrobute 一个对象被创建的时候返回对象的描述属性
  • getRenderTarget(): RenderTarget
  • setRenderTarget(renderTarget)
  • getCurrentViewport(): RenderTarget
  • getDrawingBufferSize(): Object 绘图缓冲区,以像素为单位
  • getPixelRatio(): Number 当前设备像素所用的比率
  • setPixelRatio(value) 设置设备像素比
  • getSize(): Object
  • setSize(width,height,updateStyle: Boolean)
  • resetGLState(): null WebGL上下文丢失时内部调用reset GL状态为默认的
  • readRenderTargetPixels(renderTarget,x,y,width,height,buffer) 读取渲染目标的像素到缓冲区
  • render(scene,camera,renderTarget,forceClear:Boolean) 渲染场景 如果forceClear为true,则即使渲染器的autoClear属性为false,也会在渲染之前清除深度,模板和颜色缓冲区
  • renderBufferDirect(camera,lights: Array,fog,material,geometryGroup) 渲染一个几何体的缓冲组
  • renderBufferImmediate(object: Object3D,program: shaderprogram,shading:materual) 渲染一个及时缓冲区
  • setAnimationLoop(callback) callback 来代替requestAnimationFrame WebVR 这个函数必须调用
  • getScissor(v4) 获取裁剪区
  • getScissorTest()
  • setScissor(x,y,width,height) 设置裁剪区
  • setScissorText(boolean) true,只用在定义裁剪区域的受到渲染的影响
  • setTexture2D(texture,slot: Number) 将纹理设置到正确的solt(插槽)
  • setTextureCube(cubeTexture,solt)
  • setViewport(x,y,width,height)
  • setAnimationLoop(callback) 每个可用的帧调用该函数

WebGLRenderTarget

渲染目标的一个缓冲区
构造函数
WebGLRenderTarget(width,height,options: Object)
options的有效选择,有关纹理参数的说明参考 Texture

  • wrapS
  • wrapT
  • magFilter
  • minFilter
  • format
  • type
  • anisortropy
  • encoding
  • depthBuffer
  • stencilBuffer
    特性
  • width/height
  • scissor: Vector4 渲染目标视口的矩形区域
  • scissorTest: Boolean 裁剪测试是否激活
  • viewport: Vector4 渲染目标的视口区域
  • texture: Texture 保存呈现的像素
  • depthBuffer: Boolean 渲染到深度缓冲区 默认true
  • stencilBuffer: Boolean 渲染到模板缓冲区,默认true
  • depthTexture: DepthTexture 场景的深度纹理,默认null
    方法
  • setSize(width,height) 设置渲染目标的大小
  • clone()
  • copy()
  • dispose() 分发处理事件

WebGLRenderTargetCube

用在CubeCamera 的WebGLRenderTarget中
属性方法继承WebGLRenderTarget

CSS2DRenderer

如果你想结合基于HTML的标签和3D对象,渲染器是非常有用的
方法

  • getSize()
  • render(scene,camera)
  • setSize(width,height)

CSS3DRenderer

CSS3DRenderer可用于通过CSS 3转换属性对DOM元素应用分层3D转换。这个渲染器是特别有趣的,如果你想把3D效果应用到一个没有基于画布渲染的网站上。它还可以用于将DOM元素与WebGL内容结合起来
方法

  • getSize()
  • render(scene,camera: PerspectiveCamera)
  • setSize(width,height)

SVGRenderer

生成的矢量图形在下面的场景很有用

  • 动态的logos或图标
  • 交互式的2D/3D图标或图形
  • 交互式地图
  • 复杂或者动画的用户界面

###WebGLRenderTargetCube
被cubeCamera用作它的WebGLRenderTarget
构造函数
WebDLRenderTargetCube(width,height,option) option可用选项和上面的一样
特性
继承WebGLRenderTarget

  • activeCubeFace: Integer
    方法
    继承WebGLRenderTarget

Renderers Shaders 各个着色器模块

###ShaderChunk
###ShaderLib
###UniformsLib
###UniformsUtils

你可能感兴趣的:(threejs)