DepthPickingPass
Extends:
Indirect Implements:
A depth picking pass.
Constructor Summary
| Public Constructor | ||
| public |
constructor(options: Object) Constructs a new depth picking pass. |
|
Method Summary
| Public Methods | ||
| public |
Reads depth at a specific screen position. |
|
| public |
render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, outputBuffer: WebGLRenderTarget, deltaTime: Number, stencilTest: Boolean) Copies depth and resolves depth picking promises. |
|
| public |
Updates the size of this pass. |
|
Inherited Summary
| From class Pass | ||
| public static get |
fullscreenGeometry: BufferGeometry A shared fullscreen triangle. |
|
| public get |
fullscreenMaterial: Material The fullscreen material. |
|
| public set |
|
|
| public set |
mainCamera: Camera Sets the main camera. |
|
| public set |
mainScene: Scene Sets the main scene. |
|
| public get |
Sets the render to screen flag. |
|
| public set |
|
|
| public |
Indicates whether this pass is enabled. |
|
| public |
The name of this pass. |
|
| public |
Only relevant for subclassing. |
|
| public |
Only relevant for subclassing. |
|
| protected |
camera: Camera The camera. |
|
| protected |
renderer: WebGLRenderer this member was deprecated.
The renderer. |
|
| protected |
scene: Scene The scene to render. |
|
| public |
dispose() Performs a shallow search for disposable properties and deletes them. |
|
| public |
getDepthTexture(): Texture Returns the current depth texture. |
|
| public |
getFullscreenMaterial(): Material this method was deprecated. Use fullscreenMaterial instead.
Returns the current fullscreen material. |
|
| public |
initialize(renderer: WebGLRenderer, alpha: Boolean, frameBufferType: Number) Performs initialization tasks. |
|
| public |
this method was deprecated. Use enabled instead.
Indicates whether this pass is enabled. |
|
| public abstract |
render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, outputBuffer: WebGLRenderTarget, deltaTime: Number, stencilTest: Boolean) Renders this pass. |
|
| public |
setDepthTexture(depthTexture: Texture, depthPacking: DepthPackingStrategy) Sets the depth texture. |
|
| public |
setEnabled(value: Boolean) this method was deprecated. Use enabled instead.
Enables or disables this pass. |
|
| public |
setRenderer(renderer: WebGLRenderer) this method was deprecated.
Sets the renderer |
|
| public |
Sets the size. |
|
| protected |
setFullscreenMaterial(value: Material) this method was deprecated. Use fullscreenMaterial instead.
Sets the fullscreen material. |
|
| From class DepthCopyPass | ||
| public get |
depthPacking: DepthPackingStrategies The output depth packing. |
|
| public get |
texture: Texture The output depth texture. |
|
| public |
|
|
| public |
|
|
| public |
|
|
| public |
renderTarget: WebGLRenderTarget The render target. |
|
| public |
getDepthPacking(): DepthPackingStrategies this method was deprecated. Use depthPacking instead.
Returns the output depth packing. |
|
| public |
getTexture(): Texture this method was deprecated. Use texture instead.
Returns the output depth texture. |
|
| public |
render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, outputBuffer: WebGLRenderTarget, deltaTime: Number, stencilTest: Boolean) Copies depth from a depth texture. |
|
| public |
setDepthTexture(depthTexture: Texture, depthPacking: DepthPackingStrategies) Sets the depth texture. |
|
| public |
Updates the size of this pass. |
|
Public Constructors
public constructor(options: Object) source
Constructs a new depth picking pass.
Override:
DepthCopyPass#constructorPublic Methods
public readDepth(ndc: Vector2 | Vector3): Promise<Number> source
Reads depth at a specific screen position.
Only one depth value can be picked per frame. Calling this method multiple times per frame will overwrite the picking coordinates. Unresolved promises will be abandoned.
Params:
| Name | Type | Attribute | Description |
| ndc | Vector2 | Vector3 | Normalized device coordinates. Only X and Y are relevant. |
Example:
const ndc = new Vector3();
const clientRect = myViewport.getBoundingClientRect();
const clientX = pointerEvent.clientX - clientRect.left;
const clientY = pointerEvent.clientY - clientRect.top;
ndc.x = (clientX / myViewport.clientWidth) * 2.0 - 1.0;
ndc.y = -(clientY / myViewport.clientHeight) * 2.0 + 1.0;
const depth = await depthPickingPass.readDepth(ndc);
ndc.z = depth * 2.0 - 1.0;
const worldPosition = ndc.unproject(camera);
public render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, outputBuffer: WebGLRenderTarget, deltaTime: Number, stencilTest: Boolean) source
Copies depth and resolves depth picking promises.
Override:
DepthCopyPass#renderParams:
| Name | Type | Attribute | Description |
| renderer | WebGLRenderer | The renderer. |
|
| inputBuffer | WebGLRenderTarget | A frame buffer that contains the result of the previous pass. |
|
| outputBuffer | WebGLRenderTarget | A frame buffer that serves as the output render target unless this pass renders to screen. |
|
| deltaTime | Number |
|
The time between the last frame and the current one in seconds. |
| stencilTest | Boolean |
|
Indicates whether a stencil mask is active. |
