@realsee/five
Version:
Realsee Renderer SDK
35 lines (34 loc) • 1.47 kB
TypeScript
import * as THREE from 'three';
/** 一个对象在“排序发起时的旧布局”里占据的全局点索引区间及其到当前布局的位移。 */
export interface ReorderSegment {
oldStart: number;
oldEnd: number;
delta: number;
removed: boolean;
}
export declare class ReorderPass {
static readonly SENTINEL = 4294967295;
private readonly maxSeg;
private material;
private scene;
private camera;
private mesh;
private segStart;
private segEnd;
private segDelta;
private segRemoved;
constructor(maxSeg?: number);
/** 创建一张既能作为 reorder 输出、又能被主渲染 shader 以 usampler2D 采样的 R32UI 目标。 */
static createOrderTarget(width: number, height: number): THREE.WebGLRenderTarget;
/**
* 执行一次 reorder。
* @param srcOrder 旧 order 纹理(R32UI,usampler2D 可采样),内容为全局点索引 P
* @param orderWidth order 纹理宽度(实例 i → coord = (i%width, i/width))
* @param dst 输出目标(R32UI RenderTarget),尺寸需与 srcOrder 对应实例布局一致
* @param segments 区间→位移/剔除段表(长度不应超过 maxSeg)
*/
run(renderer: THREE.WebGLRenderer, srcOrder: THREE.Texture, orderWidth: number, dst: THREE.WebGLRenderTarget, segments: ReorderSegment[]): void;
dispose(): void;
private static readonly VERTEX;
private static buildFragment;
}