
渲染器
WebGLRenderer
构造器
WebGLRenderer( parameters : Object )
parameters
canvas - 一个供渲染器绘制其输出的canvas 它和下面的domElement属性对应。 如果没有传这个参数,会创建一个新canvas
context - 可用于将渲染器附加到已有的渲染环境(RenderingContext)中。默认值是null
precision - 着色器精度. 可以是 "highp", "mediump" 或者 "lowp". 如果设备支持,默认为"highp" . 点击here 查看"应该避免的事"
alpha - canvas是否包含alpha (透明度)。默认为 false
premultipliedAlpha - renderer是否假设颜色有 premultiplied alpha. 默认为true
antialias - 是否执行抗锯齿。默认为false.
stencil - 绘图缓存是否有一个至少8位的模板缓存(stencil buffer)。默认为true
preserveDrawingBuffer -是否保留缓直到手动清除或被覆盖。 默认false.
powerPreference - 提示用户代理怎样的配置更适用于当前WebGL环境。 可能是"high-performance", "low-power" 或 "default"。默认是"default". 详见WebGL spec
failIfMajorPerformanceCaveat - 检测渲染器是否会因性能过差而创建失败。默认为false。详见 WebGL spec for details.
depth - 绘图缓存是否有一个至少6位的深度缓存(depth buffer )。 默认是true.
logarithmicDepthBuffer - 是否使用对数深度缓存。如果要在单个场景中处理巨大的比例差异,就有必要使用。 Note that this setting uses gl_FragDepth if available which disables the Early Fragment
属性
autoClear : Boolean
定义渲染器是否在渲染每一帧之前自动清除其输出。
autoClearColor : Boolean
如果autoClear为true, 定义renderer是否清除颜色缓存。 默认是true
autoClearDepth : Boolean
如果autoClear是true, 定义renderer是否清除深度缓存。 默认是true
autoClearStencil : Boolean
如果autoClear是true, 定义renderer是否清除模板缓存. 默认是true
debug : Object
- checkShaderErrors: 如果为true,定义是否检查材质着色器程序 编译和链接过程中的错误。 禁用此检查生产以获得性能增益可能很有用。 强烈建议在开发期间保持启用这些检查。 如果着色器没有编译和链接 - 它将无法工作,并且相关材料将不会呈现。 默认是true
.capabilities : Object
一个包含当前渲染环境(RenderingContext)的功能细节的对象。
- floatFragmentTextures: 环境是否支持OES_texture_float扩展
- floatVertexTextures: 如果floatFragmentTextures和vertexTextures都是true, 则此值为true
- getMaxAnisotropy(): 返回最大可用各向异性。
- getMaxPrecision(): 返回顶点着色器和片元着色器的最大可用精度。
- isWebGL2: true if the context in use is a WebGL2RenderingContext object.
- logarithmicDepthBuffer: 如果logarithmicDepthBuffer在构造器中被设为true且 环境支持EXT_frag_depth扩展,则此值为true
- maxAttributes: gl.MAX_VERTEX_ATTRIBS的值
- maxCubemapSize: gl.MAX_CUBE_MAP_TEXTURE_SIZE 的值,着色器可使用的立方体贴图纹理的最大宽度*高度
- maxFragmentUniforms: gl.MAX_FRAGMENT_UNIFORM_VECTORS的值,片元着色器可使用的全局变量(uniforms)数量
- maxTextureSize: gl.MAX_TEXTURE_SIZE的值,着色器可使用纹理的最大宽度*高度
- maxTextures: *gl.MAX_TEXTURE_IMAGE_UNITS的值,着色器可使用的纹理数量
- maxVaryings: gl.MAX_VARYING_VECTORS的值,着色器可使用矢量的数量
- maxVertexTextures: gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS的值,顶点着色器可使用的纹理数量。
- maxVertexUniforms: gl.MAX_VERTEX_UNIFORM_VECTORS的值,顶点着色器可使用的全局变量(uniforms)数量
- precision: 渲染器当前使用的着色器的精度
- vertexTextures: 如果 .maxVertexTextures : Integer大于0,此值为true (即可以使用顶点纹理)
clippingPlanes : Array
用户自定义的剪裁平面,在世界空间中被指定为THREE.Plane对象。 这些平面全局使用。空间中与该平面点积为负的点将被切掉。 默认值是[]
domElement : DOMElement
一个canvas,渲染器在其上绘制输出。渲染器的构造函数会自动创建(如果没有传入canvas参数);你需要做的仅仅是像下面这样将它加页面里去:
.outputEncoding : number
定义渲染器的输出编码。默认为THREE.LinearEncoding
.info : Object
一个对象,包含有关图形板内存和渲染过程的一系列统计信息。这些信息可用于调试或仅仅满足下好奇心。
localClippingEnabled : Boolean
定义渲染器是否考虑对象级剪切平面。 默认为false.
physicallyCorrectLights : Boolean
是否使用物理上正确的光照模式。 默认是false。
state : Object
包含设置WebGLRenderer.context状态的各种属性的函数。
toneMappingExposure : Number
色调映射的曝光级别。默认是1
方法
.clear ( color : Boolean, depth : Boolean, stencil : Boolean ) : undefined
告诉渲染器清除颜色、深度或模板缓存. 此方法将颜色缓存初始化为当前颜色。参数们默认都是true
.clearColor ( ) : undefined
清除颜色缓存。 相当于调用.clear( true, false, false )
clearDepth ( ) : undefined
清除深度缓存。相当于调用.clear( false, true, false )
clearStencil ( ) : undefined
清除模板缓存。相当于调用.clear( false, false, true )
compile ( scene : Object3D, camera : Camera ) : undefined
使用相机编译场景中的所有材质。这对于在首次渲染之前预编译着色器很有用。
copyFramebufferToTexture ( position : Vector2, texture : FramebufferTexture, level : Number ) : undefined
将当前WebGLFramebuffer中的像素复制到2D纹理中。
copyTextureToTexture ( position : Vector2, srcTexture : Texture, dstTexture : Texture, level : Number ) : undefined
将纹理的所有像素复制到一个已有的从给定位置开始的纹理中。
.dispose ( ) : undefined
处理当前的渲染环境
getCurrentViewport () : RenderTarget
返回当前视口
getDrawingBufferSize () : Object
返回一个包含渲染器绘图缓存宽度和高度(单位像素)的对象。
getPixelRatio () : number
返回当前使用设备像素比
getSize ( target : Vector2 ) : Vector2
返回包含渲染器输出canvas的宽度和高度(单位像素)的对象。
.initTexture ( texture : Texture ) : undefined
初始化给定的纹理。
render ( scene : Object3D, camera : Camera ) : undefined
用相机(camera)渲染一个场景(scene)或是其它类型的object。
resetState () : undefined
可用于重置内部 WebGL 状态。此方法主要与跨多个 WebGL 库共享单个 WebGL 上下文的应用程序相关。
.setAnimationLoop ( callback : Function ) : undefined
callback — 每个可用帧都会调用的函数。 如果传入‘null’,所有正在进行的动画都会停止。
setClearAlpha ( alpha : Float ) : undefined
设置alpha。合法参数是一个0.0到 1.0之间的浮点数
setClearColor ( color : Color, alpha : Float ) : undefined
设置颜色及其透明度
setSize ( width : Integer, height : Integer, updateStyle : Boolean ) : undefined
将输出canvas的大小调整为(width, height)并考虑设备像素比,且将视口从(0, 0)开始调整到适合大小 将updateStyle设置为false以阻止对canvas的样式做任何改变。
setViewport ( x : Integer, y : Integer, width : Integer, height : Integer ) : undefined
将视口大小设置为(x, y)到 (x + width, y + height).
WebGL1Renderer
自r118起,WebGLRenderer会自动使用 WebGL 2 渲染上下文。当升级一个已存在的项目到 => r118 , 应用程序可能会因为下列两种原因而损坏:
WebGLRenderTarget
render target是一个缓冲,就是在这个缓冲中,视频卡为正在后台渲染的场景绘制像素。 它用于不同的效果,例如用于在一个图像显示在屏幕上之前先做一些处理。
构造器
WebGLRenderTarget(width : Number, height : Number, options : Object)
options
options - (可选)一个保存着自动生成的目标纹理的纹理参数以及表示是否使用深度缓存/模板缓存的布尔值的对象 以下是一些合法选项:
wrapS - 默认是ClampToEdgeWrapping.
wrapT - 默认是ClampToEdgeWrapping.
magFilter - 默认是LinearFilter.
minFilter - 默认是LinearFilter.
generateMipmaps - 默认是false.
format - 默认是RGBAFormat.
type - 默认是UnsignedByteType.
anisotropy - 默认是1. 参见Texture.anisotropy
encoding - 默认是LinearEncoding.
depthBuffer - 默认是true.
stencilBuffer - 默认是false.
版权声明:本文为qq_22811669原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。