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. |