UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

74 lines (73 loc) 2.81 kB
import { Vector2, Scene, WebGLRenderer, Mesh, WebGLRenderTarget, DataTexture, Texture, Material, OrthographicCamera } from 'three'; import { ClothController } from '../ClothController'; import { Ref } from '@vue/reactivity'; export interface ClothMaterialUniformConfigRef { tSize: Ref<Vector2>; tPosition0: Ref<Texture>; tPosition1: Ref<Texture>; tNormal: Ref<Texture>; tOriginalRT: Ref<Texture>; tViscositySpringT: Ref<Texture>; tPreviousRT0: Ref<Texture>; tPreviousRT1: Ref<Texture>; tTargetRT0: Ref<Texture>; tTargetRT1: Ref<Texture>; tNormalsRT: Ref<Texture>; tPositionRT0: Ref<Texture>; tPositionRT1: Ref<Texture>; tAdjacentsRT0: Ref<Texture>; tAdjacentsRT1: Ref<Texture>; tDistanceRT0: Ref<Texture>; tDistanceRT1: Ref<Texture>; integrationMat: Ref<Material>; } export type ClothMaterialUniformConfigRefString = Record<keyof ClothMaterialUniformConfigRef, string>; export declare function clothMaterialCopyConfigRef(src: ClothMaterialUniformConfigRef, target: ClothMaterialUniformConfigRef): void; export interface ClothMaterialUniformConfig { tSize: Vector2; tPosition0: Texture; tPosition1: Texture; tNormal: Texture; } export interface ClothMaterialUniformNameConfig { tSize: string; tPosition0: string; tPosition1: string; tNormal: string; } interface TextureContainer { texture: DataTexture | null; } export declare class ClothFBOController { readonly mainController: ClothController; readonly tSize: Vector2; readonly fboScene: Scene; readonly fboCamera: OrthographicCamera; readonly fboMesh: Mesh; RESOLUTION: Vector2; originalRT: TextureContainer; viscositySpringT: TextureContainer; readonly previousRT: [WebGLRenderTarget, WebGLRenderTarget]; readonly targetRT: [WebGLRenderTarget, WebGLRenderTarget]; normalsRT: WebGLRenderTarget; readonly positionRT: [WebGLRenderTarget, WebGLRenderTarget]; readonly adjacentsRT: [TextureContainer, TextureContainer]; readonly distancesRT: [TextureContainer, TextureContainer]; renderer: WebGLRenderer | undefined; constructor(mainController: ClothController); private _initialized; init(renderer: WebGLRenderer): void; private copyTexture; private createPositionTexture; private createViscositySpringTexture; private createTexturesFromAllocation; private createAdjacentsTexture; private createDistancesTexture; update(config?: ClothMaterialUniformConfigRef): void; private _updateTextureRefs; private integrate; protected solveConstraints(renderer: WebGLRenderer, secondaryMotionMult: number): void; protected mouseOffset(renderer: WebGLRenderer): void; protected computeVertexNormals(renderer: WebGLRenderer): void; } export {};