@nice2dev/game-engine 1.3.13 → 1.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/package.json +2 -2
- package/dist/types/accessibility/index.d.ts +0 -1
- package/dist/types/ai/index.d.ts +0 -1
- package/dist/types/animation/index.d.ts +0 -1
- package/dist/types/audio/HRTFAudio.d.ts +0 -180
- package/dist/types/audio/index.d.ts +0 -2
- package/dist/types/community/Community.d.ts +0 -112
- package/dist/types/community/index.d.ts +0 -1
- package/dist/types/core/TypeSafety.d.ts +0 -190
- package/dist/types/core/index.d.ts +0 -7
- package/dist/types/devtools/AssetStore.d.ts +0 -133
- package/dist/types/devtools/index.d.ts +0 -3
- package/dist/types/dialogue/index.d.ts +0 -2
- package/dist/types/docs/APIPlayground.d.ts +0 -26
- package/dist/types/docs/Cookbook.d.ts +0 -18
- package/dist/types/docs/Guides.d.ts +0 -18
- package/dist/types/docs/index.d.ts +0 -4
- package/dist/types/ecs/ECSOptimized.d.ts +0 -131
- package/dist/types/ecs/index.d.ts +0 -2
- package/dist/types/editor/NiceAnimationTimeline.d.ts +0 -114
- package/dist/types/editor/NiceLevelEditor.d.ts +0 -232
- package/dist/types/editor/NiceMaterialEditor.d.ts +0 -105
- package/dist/types/editor/NiceNodeGraph.d.ts +0 -87
- package/dist/types/editor/NiceParticleEditor.d.ts +0 -127
- package/dist/types/editor/behavior-tree/BTDebugPanel.d.ts +0 -102
- package/dist/types/editor/behavior-tree/BTEditorCanvas.d.ts +0 -79
- package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +0 -58
- package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +0 -75
- package/dist/types/editor/behavior-tree/BTNodePalette.d.ts +0 -72
- package/dist/types/editor/behavior-tree/BTPropertyPanel.d.ts +0 -66
- package/dist/types/editor/behavior-tree/BehaviorTreeEditor.d.ts +0 -186
- package/dist/types/editor/behavior-tree/index.d.ts +0 -14
- package/dist/types/editor/behavior-tree/serialization.d.ts +0 -30
- package/dist/types/editor/behavior-tree/types.d.ts +0 -299
- package/dist/types/editor/index.d.ts +0 -20
- package/dist/types/editor/state-machine/SMEditorCanvas.d.ts +0 -61
- package/dist/types/editor/state-machine/StateMachineEditor.d.ts +0 -139
- package/dist/types/editor/state-machine/index.d.ts +0 -11
- package/dist/types/editor/state-machine/serialization.d.ts +0 -23
- package/dist/types/editor/state-machine/types.d.ts +0 -241
- package/dist/types/engine/index.d.ts +0 -2
- package/dist/types/enterprise/index.d.ts +0 -1
- package/dist/types/epic/index.d.ts +0 -10
- package/dist/types/i18n/index.d.ts +0 -2
- package/dist/types/input/index.d.ts +0 -3
- package/dist/types/kids/index.d.ts +0 -2
- package/dist/types/legendary/index.d.ts +0 -57
- package/dist/types/monetization/index.d.ts +0 -1
- package/dist/types/multiplayer/NiceNetcode.d.ts +0 -434
- package/dist/types/multiplayer/index.d.ts +0 -5
- package/dist/types/network/index.d.ts +0 -2
- package/dist/types/pathfinding/index.d.ts +0 -1
- package/dist/types/performance/AssetCompression.d.ts +0 -137
- package/dist/types/performance/WASMModules.d.ts +0 -65
- package/dist/types/performance/WebGPUCompute.d.ts +0 -71
- package/dist/types/performance/index.d.ts +0 -1
- package/dist/types/physics/RapierIntegration.d.ts +0 -404
- package/dist/types/physics/index.d.ts +0 -2
- package/dist/types/plugins/index.d.ts +0 -2
- package/dist/types/procedural/index.d.ts +0 -2
- package/dist/types/release/index.d.ts +0 -1
- package/dist/types/rendering/WebGPUv2.d.ts +0 -173
- package/dist/types/rendering/index.d.ts +0 -3
- package/dist/types/runtime3d/index.d.ts +0 -2
- package/dist/types/scene/index.d.ts +0 -2
- package/dist/types/scripting/WasmCompiler.d.ts +0 -182
- package/dist/types/scripting/index.d.ts +0 -19
- package/dist/types/social/index.d.ts +0 -1
- package/dist/types/systems/NiceAI.d.ts +0 -637
- package/dist/types/systems/NiceAbility.d.ts +0 -225
- package/dist/types/systems/NiceAccessibility.d.ts +0 -230
- package/dist/types/systems/NiceAchievement.d.ts +0 -153
- package/dist/types/systems/NiceAchievementUI.d.ts +0 -196
- package/dist/types/systems/NiceAchievements.d.ts +0 -230
- package/dist/types/systems/NiceAction.d.ts +0 -81
- package/dist/types/systems/NiceAlchemy.d.ts +0 -195
- package/dist/types/systems/NiceAnalytics.d.ts +0 -493
- package/dist/types/systems/NiceAnimation.d.ts +0 -350
- package/dist/types/systems/NiceArena.d.ts +0 -215
- package/dist/types/systems/NiceAssetLoader.d.ts +0 -136
- package/dist/types/systems/NiceAuction.d.ts +0 -157
- package/dist/types/systems/NiceAudio.d.ts +0 -224
- package/dist/types/systems/NiceAugment.d.ts +0 -187
- package/dist/types/systems/NiceAura.d.ts +0 -193
- package/dist/types/systems/NiceBank.d.ts +0 -158
- package/dist/types/systems/NiceBattlePass.d.ts +0 -150
- package/dist/types/systems/NiceBehavior.d.ts +0 -160
- package/dist/types/systems/NiceBinding.d.ts +0 -96
- package/dist/types/systems/NiceBlacksmith.d.ts +0 -221
- package/dist/types/systems/NiceBuff.d.ts +0 -177
- package/dist/types/systems/NiceBuilding.d.ts +0 -207
- package/dist/types/systems/NiceBullet.d.ts +0 -167
- package/dist/types/systems/NiceCamera.d.ts +0 -252
- package/dist/types/systems/NiceCard.d.ts +0 -171
- package/dist/types/systems/NiceChat.d.ts +0 -148
- package/dist/types/systems/NiceCheat.d.ts +0 -375
- package/dist/types/systems/NiceClimbing.d.ts +0 -186
- package/dist/types/systems/NiceCloud.d.ts +0 -422
- package/dist/types/systems/NiceCollision.d.ts +0 -238
- package/dist/types/systems/NiceCombo.d.ts +0 -131
- package/dist/types/systems/NiceCommand.d.ts +0 -112
- package/dist/types/systems/NiceCompanion.d.ts +0 -182
- package/dist/types/systems/NiceController.d.ts +0 -144
- package/dist/types/systems/NiceCooking.d.ts +0 -193
- package/dist/types/systems/NiceCoroutine.d.ts +0 -101
- package/dist/types/systems/NiceCrafting.d.ts +0 -228
- package/dist/types/systems/NiceCutscene.d.ts +0 -437
- package/dist/types/systems/NiceDaily.d.ts +0 -133
- package/dist/types/systems/NiceDamage.d.ts +0 -271
- package/dist/types/systems/NiceDayNight.d.ts +0 -126
- package/dist/types/systems/NiceDebug.d.ts +0 -255
- package/dist/types/systems/NiceDestructible.d.ts +0 -150
- package/dist/types/systems/NiceDialogue.d.ts +0 -629
- package/dist/types/systems/NiceDungeon.d.ts +0 -202
- package/dist/types/systems/NiceECS.d.ts +0 -151
- package/dist/types/systems/NiceEnchant.d.ts +0 -148
- package/dist/types/systems/NiceEntityPool.d.ts +0 -127
- package/dist/types/systems/NiceEquipment.d.ts +0 -137
- package/dist/types/systems/NiceEvent.d.ts +0 -202
- package/dist/types/systems/NiceEventBus.d.ts +0 -164
- package/dist/types/systems/NiceFaction.d.ts +0 -173
- package/dist/types/systems/NiceFarming.d.ts +0 -163
- package/dist/types/systems/NiceFishing.d.ts +0 -196
- package/dist/types/systems/NiceFlocking.d.ts +0 -156
- package/dist/types/systems/NiceFog.d.ts +0 -137
- package/dist/types/systems/NiceFormation.d.ts +0 -140
- package/dist/types/systems/NiceGacha.d.ts +0 -134
- package/dist/types/systems/NiceGambling.d.ts +0 -175
- package/dist/types/systems/NiceGem.d.ts +0 -165
- package/dist/types/systems/NiceGesture.d.ts +0 -502
- package/dist/types/systems/NiceGrappling.d.ts +0 -154
- package/dist/types/systems/NiceGrid.d.ts +0 -142
- package/dist/types/systems/NiceGuild.d.ts +0 -162
- package/dist/types/systems/NiceHaptics.d.ts +0 -112
- package/dist/types/systems/NiceHousing.d.ts +0 -197
- package/dist/types/systems/NiceInput.d.ts +0 -280
- package/dist/types/systems/NiceInventory.d.ts +0 -534
- package/dist/types/systems/NiceLOD.d.ts +0 -144
- package/dist/types/systems/NiceLeaderboard.d.ts +0 -191
- package/dist/types/systems/NiceLevel.d.ts +0 -304
- package/dist/types/systems/NiceLighting.d.ts +0 -214
- package/dist/types/systems/NiceLocalization.d.ts +0 -148
- package/dist/types/systems/NiceLocomotion.d.ts +0 -398
- package/dist/types/systems/NiceLogger.d.ts +0 -117
- package/dist/types/systems/NiceLoot.d.ts +0 -176
- package/dist/types/systems/NiceMail.d.ts +0 -164
- package/dist/types/systems/NiceMap.d.ts +0 -234
- package/dist/types/systems/NiceMarriage.d.ts +0 -150
- package/dist/types/systems/NiceMastery.d.ts +0 -171
- package/dist/types/systems/NiceMatch.d.ts +0 -196
- package/dist/types/systems/NiceMatch3.d.ts +0 -118
- package/dist/types/systems/NiceMessageBus.d.ts +0 -115
- package/dist/types/systems/NiceMinimap.d.ts +0 -258
- package/dist/types/systems/NiceMining.d.ts +0 -175
- package/dist/types/systems/NiceModding.d.ts +0 -452
- package/dist/types/systems/NiceMount.d.ts +0 -152
- package/dist/types/systems/NiceNavigation.d.ts +0 -307
- package/dist/types/systems/NiceNetwork.d.ts +0 -568
- package/dist/types/systems/NiceNotification.d.ts +0 -438
- package/dist/types/systems/NiceObjective.d.ts +0 -395
- package/dist/types/systems/NiceParticle.d.ts +0 -639
- package/dist/types/systems/NiceParty.d.ts +0 -168
- package/dist/types/systems/NicePerformance.d.ts +0 -144
- package/dist/types/systems/NicePet.d.ts +0 -167
- package/dist/types/systems/NicePhotoMode.d.ts +0 -270
- package/dist/types/systems/NicePhysics.d.ts +0 -326
- package/dist/types/systems/NicePlatformer.d.ts +0 -158
- package/dist/types/systems/NicePool.d.ts +0 -128
- package/dist/types/systems/NicePortal.d.ts +0 -178
- package/dist/types/systems/NicePostProcess.d.ts +0 -254
- package/dist/types/systems/NiceProcedural.d.ts +0 -202
- package/dist/types/systems/NiceProfile.d.ts +0 -223
- package/dist/types/systems/NiceProjectile.d.ts +0 -157
- package/dist/types/systems/NicePvP.d.ts +0 -199
- package/dist/types/systems/NiceQTE.d.ts +0 -160
- package/dist/types/systems/NiceQuest.d.ts +0 -620
- package/dist/types/systems/NiceRaid.d.ts +0 -215
- package/dist/types/systems/NiceRanking.d.ts +0 -399
- package/dist/types/systems/NiceReplay.d.ts +0 -180
- package/dist/types/systems/NiceReputation.d.ts +0 -151
- package/dist/types/systems/NiceResource.d.ts +0 -200
- package/dist/types/systems/NiceRhythm.d.ts +0 -148
- package/dist/types/systems/NiceRoguelike.d.ts +0 -276
- package/dist/types/systems/NiceRune.d.ts +0 -202
- package/dist/types/systems/NiceSaveSystem.d.ts +0 -194
- package/dist/types/systems/NiceSceneManager.d.ts +0 -112
- package/dist/types/systems/NiceScore.d.ts +0 -186
- package/dist/types/systems/NiceScreenFX.d.ts +0 -235
- package/dist/types/systems/NiceScreenshot.d.ts +0 -443
- package/dist/types/systems/NiceScribe.d.ts +0 -239
- package/dist/types/systems/NiceSeason.d.ts +0 -176
- package/dist/types/systems/NiceSerialization.d.ts +0 -89
- package/dist/types/systems/NiceServiceLocator.d.ts +0 -94
- package/dist/types/systems/NiceShop.d.ts +0 -528
- package/dist/types/systems/NiceSignal.d.ts +0 -112
- package/dist/types/systems/NiceSkillTree.d.ts +0 -237
- package/dist/types/systems/NiceSocial.d.ts +0 -580
- package/dist/types/systems/NiceSpawner.d.ts +0 -237
- package/dist/types/systems/NiceSpell.d.ts +0 -216
- package/dist/types/systems/NiceState.d.ts +0 -224
- package/dist/types/systems/NiceStateMachine.d.ts +0 -108
- package/dist/types/systems/NiceStatus.d.ts +0 -116
- package/dist/types/systems/NiceStealth.d.ts +0 -204
- package/dist/types/systems/NiceSteam.d.ts +0 -255
- package/dist/types/systems/NiceStreaming.d.ts +0 -173
- package/dist/types/systems/NiceSwimming.d.ts +0 -166
- package/dist/types/systems/NiceTalent.d.ts +0 -154
- package/dist/types/systems/NiceTarget.d.ts +0 -121
- package/dist/types/systems/NiceTerrain.d.ts +0 -143
- package/dist/types/systems/NiceTilemap.d.ts +0 -218
- package/dist/types/systems/NiceTimer.d.ts +0 -153
- package/dist/types/systems/NiceTournament.d.ts +0 -190
- package/dist/types/systems/NiceTrading.d.ts +0 -238
- package/dist/types/systems/NiceTransmog.d.ts +0 -142
- package/dist/types/systems/NiceTutorial.d.ts +0 -248
- package/dist/types/systems/NiceTween.d.ts +0 -164
- package/dist/types/systems/NiceUI.d.ts +0 -364
- package/dist/types/systems/NiceVFX.d.ts +0 -333
- package/dist/types/systems/NiceVehicle.d.ts +0 -176
- package/dist/types/systems/NiceVoice.d.ts +0 -502
- package/dist/types/systems/NiceWater.d.ts +0 -162
- package/dist/types/systems/NiceWave.d.ts +0 -174
- package/dist/types/systems/NiceWaypoint.d.ts +0 -165
- package/dist/types/systems/NiceWeather.d.ts +0 -225
- package/dist/types/systems/NiceXR.d.ts +0 -187
- package/dist/types/systems/index.d.ts +0 -182
- package/dist/types/templates/index.d.ts +0 -2
- package/dist/types/tilemap/index.d.ts +0 -1
- package/dist/types/tutorials/TutorialEditor.d.ts +0 -43
- package/dist/types/tutorials/VoiceNarration.d.ts +0 -75
- package/dist/types/tutorials/content/Tutorials_T04.d.ts +0 -3
- package/dist/types/tutorials/content/UITutorials.d.ts +0 -14
- package/dist/types/tutorials/content/index.d.ts +0 -5
- package/dist/types/tutorials/index.d.ts +0 -6
- package/dist/types/ui/index.d.ts +0 -2
- package/dist/types/visual-scripting/VisualScriptDebugger.d.ts +0 -145
- package/dist/types/visual-scripting/VisualScriptExecutor.d.ts +0 -100
- package/dist/types/visual-scripting/VisualScriptGraph.d.ts +0 -173
- package/dist/types/visual-scripting/VisualScriptNode.d.ts +0 -157
- package/dist/types/visual-scripting/index.d.ts +0 -6
- package/dist/types/visual-scripting/nodes/ActionNodes.d.ts +0 -152
- package/dist/types/visual-scripting/nodes/EventNodes.d.ts +0 -95
- package/dist/types/visual-scripting/nodes/FlowControlNodes.d.ts +0 -134
- package/dist/types/visual-scripting/nodes/LogicNodes.d.ts +0 -122
- package/dist/types/visual-scripting/nodes/MathNodes.d.ts +0 -170
- package/dist/types/visual-scripting/nodes/UtilityNodes.d.ts +0 -131
- package/dist/types/visual-scripting/nodes/VariableNodes.d.ts +0 -107
- package/dist/types/visual-scripting/nodes/index.d.ts +0 -21
- package/dist/types/visual-scripting/nodes/registerNodes.d.ts +0 -29
- package/dist/types/visual-scripting/types.d.ts +0 -402
- package/dist/types/xr/WebXRLayers.d.ts +0 -319
- package/dist/types/xr/index.d.ts +0 -2
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
export interface WebGPUConfig {
|
|
2
|
-
maxWorkGroupSize: number;
|
|
3
|
-
preferredFormat: string;
|
|
4
|
-
powerPreference: 'low-power' | 'high-performance';
|
|
5
|
-
}
|
|
6
|
-
export interface ComputeBuffer {
|
|
7
|
-
gpuBuffer: GPUBuffer | null;
|
|
8
|
-
size: number;
|
|
9
|
-
usage: number;
|
|
10
|
-
data: Float32Array | Uint32Array;
|
|
11
|
-
}
|
|
12
|
-
export interface ComputePipeline {
|
|
13
|
-
id: string;
|
|
14
|
-
shaderSource: string;
|
|
15
|
-
entryPoint: string;
|
|
16
|
-
workGroupSize: [number, number, number];
|
|
17
|
-
}
|
|
18
|
-
export interface PhysicsBroadphaseResult {
|
|
19
|
-
pairs: [number, number][];
|
|
20
|
-
count: number;
|
|
21
|
-
}
|
|
22
|
-
export declare class WebGPUContext {
|
|
23
|
-
private device;
|
|
24
|
-
private adapter;
|
|
25
|
-
private config;
|
|
26
|
-
private pipelines;
|
|
27
|
-
constructor(config?: Partial<WebGPUConfig>);
|
|
28
|
-
init(): Promise<boolean>;
|
|
29
|
-
get isAvailable(): boolean;
|
|
30
|
-
getDevice(): GPUDevice;
|
|
31
|
-
createBuffer(data: Float32Array | Uint32Array, usage: number): GPUBuffer;
|
|
32
|
-
createComputePipeline(id: string, shaderSource: string, entryPoint?: string): GPUComputePipeline;
|
|
33
|
-
getPipeline(id: string): GPUComputePipeline | undefined;
|
|
34
|
-
readBuffer(buffer: GPUBuffer, size: number): Promise<ArrayBuffer>;
|
|
35
|
-
destroy(): void;
|
|
36
|
-
}
|
|
37
|
-
export declare class GPUPhysicsBroadphase {
|
|
38
|
-
private ctx;
|
|
39
|
-
private pipeline;
|
|
40
|
-
constructor(ctx: WebGPUContext);
|
|
41
|
-
init(): void;
|
|
42
|
-
computePairs(aabbs: {
|
|
43
|
-
minX: number;
|
|
44
|
-
minY: number;
|
|
45
|
-
maxX: number;
|
|
46
|
-
maxY: number;
|
|
47
|
-
}[]): Promise<PhysicsBroadphaseResult>;
|
|
48
|
-
}
|
|
49
|
-
export declare class GPUParticleSystem {
|
|
50
|
-
private ctx;
|
|
51
|
-
private pipeline;
|
|
52
|
-
private particleBuffer;
|
|
53
|
-
private maxParticles;
|
|
54
|
-
constructor(ctx: WebGPUContext, maxParticles?: number);
|
|
55
|
-
init(): void;
|
|
56
|
-
update(dt: number, gravity?: {
|
|
57
|
-
x: number;
|
|
58
|
-
y: number;
|
|
59
|
-
}): Promise<void>;
|
|
60
|
-
readParticles(): Promise<Float32Array>;
|
|
61
|
-
destroy(): void;
|
|
62
|
-
}
|
|
63
|
-
export declare class GPUPathfinder {
|
|
64
|
-
private ctx;
|
|
65
|
-
private pipeline;
|
|
66
|
-
constructor(ctx: WebGPUContext);
|
|
67
|
-
init(): void;
|
|
68
|
-
computeDistanceField(costGrid: number[][], targetX: number, targetY: number, maxIterations?: number): Promise<number[][]>;
|
|
69
|
-
}
|
|
70
|
-
export declare function isWebGPUAvailable(): Promise<boolean>;
|
|
71
|
-
export declare function getWebGPUShaders(): Record<string, string>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Performance';
|
|
@@ -1,404 +0,0 @@
|
|
|
1
|
-
export type Vec3 = {
|
|
2
|
-
x: number;
|
|
3
|
-
y: number;
|
|
4
|
-
z: number;
|
|
5
|
-
};
|
|
6
|
-
export type Quat = {
|
|
7
|
-
x: number;
|
|
8
|
-
y: number;
|
|
9
|
-
z: number;
|
|
10
|
-
w: number;
|
|
11
|
-
};
|
|
12
|
-
export type RigidBodyType = 'dynamic' | 'static' | 'kinematic-position' | 'kinematic-velocity';
|
|
13
|
-
export type ColliderShape = {
|
|
14
|
-
type: 'ball';
|
|
15
|
-
radius: number;
|
|
16
|
-
} | {
|
|
17
|
-
type: 'box';
|
|
18
|
-
halfExtents: Vec3;
|
|
19
|
-
} | {
|
|
20
|
-
type: 'capsule';
|
|
21
|
-
halfHeight: number;
|
|
22
|
-
radius: number;
|
|
23
|
-
} | {
|
|
24
|
-
type: 'cylinder';
|
|
25
|
-
halfHeight: number;
|
|
26
|
-
radius: number;
|
|
27
|
-
} | {
|
|
28
|
-
type: 'cone';
|
|
29
|
-
halfHeight: number;
|
|
30
|
-
radius: number;
|
|
31
|
-
} | {
|
|
32
|
-
type: 'convexHull';
|
|
33
|
-
points: Float32Array;
|
|
34
|
-
} | {
|
|
35
|
-
type: 'trimesh';
|
|
36
|
-
vertices: Float32Array;
|
|
37
|
-
indices: Uint32Array;
|
|
38
|
-
} | {
|
|
39
|
-
type: 'heightfield';
|
|
40
|
-
heights: Float32Array;
|
|
41
|
-
rows: number;
|
|
42
|
-
cols: number;
|
|
43
|
-
scale: Vec3;
|
|
44
|
-
};
|
|
45
|
-
export type JointType = 'revolute' | 'prismatic' | 'spherical' | 'fixed' | 'rope' | 'spring' | 'generic';
|
|
46
|
-
export interface RapierWorldConfig {
|
|
47
|
-
/** Gravity vector */
|
|
48
|
-
gravity: Vec3;
|
|
49
|
-
/** Integration parameters */
|
|
50
|
-
integration?: IntegrationParameters;
|
|
51
|
-
/** Broad phase algorithm */
|
|
52
|
-
broadPhase?: 'sweep-and-prune' | 'quadtree';
|
|
53
|
-
/** CCD (Continuous Collision Detection) enabled */
|
|
54
|
-
ccdEnabled?: boolean;
|
|
55
|
-
/** Sub-stepping for stability */
|
|
56
|
-
substeps?: number;
|
|
57
|
-
/** Maximum velocity iterations */
|
|
58
|
-
maxVelocityIterations?: number;
|
|
59
|
-
/** Maximum position iterations */
|
|
60
|
-
maxPositionIterations?: number;
|
|
61
|
-
}
|
|
62
|
-
export interface IntegrationParameters {
|
|
63
|
-
/** Time step (fixed) */
|
|
64
|
-
dt: number;
|
|
65
|
-
/** Minimum CCD dt */
|
|
66
|
-
minCcdDt: number;
|
|
67
|
-
/** Error reduction parameter */
|
|
68
|
-
erp: number;
|
|
69
|
-
/** Joint error reduction */
|
|
70
|
-
jointErp: number;
|
|
71
|
-
/** Warm start coefficient */
|
|
72
|
-
warmstartCoeff: number;
|
|
73
|
-
/** Allowed linear error */
|
|
74
|
-
allowedLinearError: number;
|
|
75
|
-
/** Max penetration correction */
|
|
76
|
-
maxPenetrationCorrection: number;
|
|
77
|
-
/** Prediction distance */
|
|
78
|
-
predictionDistance: number;
|
|
79
|
-
/** Max velocity iterations */
|
|
80
|
-
maxVelocityIterations: number;
|
|
81
|
-
/** Max velocity friction iterations */
|
|
82
|
-
maxVelocityFrictionIterations: number;
|
|
83
|
-
/** Max stabilization iterations */
|
|
84
|
-
maxStabilizationIterations: number;
|
|
85
|
-
}
|
|
86
|
-
export declare const DEFAULT_INTEGRATION_PARAMS: IntegrationParameters;
|
|
87
|
-
export declare const DEFAULT_WORLD_CONFIG: RapierWorldConfig;
|
|
88
|
-
export interface RigidBodyDescriptor {
|
|
89
|
-
/** Body type */
|
|
90
|
-
type: RigidBodyType;
|
|
91
|
-
/** Initial position */
|
|
92
|
-
position: Vec3;
|
|
93
|
-
/** Initial rotation (quaternion) */
|
|
94
|
-
rotation: Quat;
|
|
95
|
-
/** Linear velocity */
|
|
96
|
-
linearVelocity?: Vec3;
|
|
97
|
-
/** Angular velocity */
|
|
98
|
-
angularVelocity?: Vec3;
|
|
99
|
-
/** Gravity scale (1.0 = normal) */
|
|
100
|
-
gravityScale?: number;
|
|
101
|
-
/** Linear damping */
|
|
102
|
-
linearDamping?: number;
|
|
103
|
-
/** Angular damping */
|
|
104
|
-
angularDamping?: number;
|
|
105
|
-
/** Enable CCD for fast-moving objects */
|
|
106
|
-
ccdEnabled?: boolean;
|
|
107
|
-
/** CCD prediction distance */
|
|
108
|
-
ccdPrediction?: number;
|
|
109
|
-
/** Enable sleeping for optimization */
|
|
110
|
-
canSleep?: boolean;
|
|
111
|
-
/** Sleeping thresholds */
|
|
112
|
-
sleepThresholds?: {
|
|
113
|
-
linearVelocity: number;
|
|
114
|
-
angularVelocity: number;
|
|
115
|
-
};
|
|
116
|
-
/** User data (entity ID, etc.) */
|
|
117
|
-
userData?: unknown;
|
|
118
|
-
}
|
|
119
|
-
export interface ColliderDescriptor {
|
|
120
|
-
/** Shape definition */
|
|
121
|
-
shape: ColliderShape;
|
|
122
|
-
/** Density for mass calculation */
|
|
123
|
-
density?: number;
|
|
124
|
-
/** Friction coefficient */
|
|
125
|
-
friction?: number;
|
|
126
|
-
/** Restitution (bounciness) */
|
|
127
|
-
restitution?: number;
|
|
128
|
-
/** Collision groups (bitmask) */
|
|
129
|
-
collisionGroups?: number;
|
|
130
|
-
/** Solver groups (bitmask) */
|
|
131
|
-
solverGroups?: number;
|
|
132
|
-
/** Is sensor (trigger) */
|
|
133
|
-
isSensor?: boolean;
|
|
134
|
-
/** Contact force event threshold */
|
|
135
|
-
contactForceEventThreshold?: number;
|
|
136
|
-
/** Position offset from rigid body */
|
|
137
|
-
positionOffset?: Vec3;
|
|
138
|
-
/** Rotation offset from rigid body */
|
|
139
|
-
rotationOffset?: Quat;
|
|
140
|
-
/** User data */
|
|
141
|
-
userData?: unknown;
|
|
142
|
-
}
|
|
143
|
-
export interface JointDescriptor {
|
|
144
|
-
type: JointType;
|
|
145
|
-
body1: number;
|
|
146
|
-
body2: number;
|
|
147
|
-
anchor1: Vec3;
|
|
148
|
-
anchor2: Vec3;
|
|
149
|
-
axis1?: Vec3;
|
|
150
|
-
axis2?: Vec3;
|
|
151
|
-
limits?: JointLimits;
|
|
152
|
-
motor?: JointMotor;
|
|
153
|
-
stiffness?: number;
|
|
154
|
-
damping?: number;
|
|
155
|
-
}
|
|
156
|
-
export interface JointLimits {
|
|
157
|
-
min: number;
|
|
158
|
-
max: number;
|
|
159
|
-
}
|
|
160
|
-
export interface JointMotor {
|
|
161
|
-
targetVelocity?: number;
|
|
162
|
-
targetPosition?: number;
|
|
163
|
-
maxForce: number;
|
|
164
|
-
stiffness?: number;
|
|
165
|
-
damping?: number;
|
|
166
|
-
}
|
|
167
|
-
export interface RapierPhysicsWorld {
|
|
168
|
-
/** World handle (for WASM interop) */
|
|
169
|
-
handle: number;
|
|
170
|
-
/** Configuration */
|
|
171
|
-
config: RapierWorldConfig;
|
|
172
|
-
/** Body handles mapped to entity IDs */
|
|
173
|
-
bodyToEntity: Map<number, unknown>;
|
|
174
|
-
/** Entity IDs mapped to body handles */
|
|
175
|
-
entityToBody: Map<unknown, number>;
|
|
176
|
-
/** Collider handles */
|
|
177
|
-
colliders: Map<number, ColliderDescriptor>;
|
|
178
|
-
/** Joint handles */
|
|
179
|
-
joints: Map<number, JointDescriptor>;
|
|
180
|
-
/** Event queue */
|
|
181
|
-
eventQueue: PhysicsEventQueue;
|
|
182
|
-
}
|
|
183
|
-
export interface PhysicsEventQueue {
|
|
184
|
-
collisionStart: CollisionEvent[];
|
|
185
|
-
collisionEnd: CollisionEvent[];
|
|
186
|
-
contactForce: ContactForceEvent[];
|
|
187
|
-
}
|
|
188
|
-
export interface CollisionEvent {
|
|
189
|
-
handle1: number;
|
|
190
|
-
handle2: number;
|
|
191
|
-
started: boolean;
|
|
192
|
-
}
|
|
193
|
-
export interface ContactForceEvent {
|
|
194
|
-
handle1: number;
|
|
195
|
-
handle2: number;
|
|
196
|
-
totalForce: Vec3;
|
|
197
|
-
maxForceDirection: Vec3;
|
|
198
|
-
maxForceMagnitude: number;
|
|
199
|
-
}
|
|
200
|
-
export interface CharacterControllerConfig {
|
|
201
|
-
/** Capsule radius */
|
|
202
|
-
radius: number;
|
|
203
|
-
/** Capsule half-height */
|
|
204
|
-
halfHeight: number;
|
|
205
|
-
/** Step height (auto-step) */
|
|
206
|
-
maxStepHeight: number;
|
|
207
|
-
/** Slope limit (radians) */
|
|
208
|
-
maxSlopeAngle: number;
|
|
209
|
-
/** Skin width for collision detection */
|
|
210
|
-
skinWidth: number;
|
|
211
|
-
/** Snap to ground distance */
|
|
212
|
-
snapToGroundDistance: number;
|
|
213
|
-
/** Push force multiplier */
|
|
214
|
-
pushForce: number;
|
|
215
|
-
/** Slide on slopes */
|
|
216
|
-
slideOnSlopes: boolean;
|
|
217
|
-
}
|
|
218
|
-
export declare const DEFAULT_CHARACTER_CONFIG: CharacterControllerConfig;
|
|
219
|
-
export interface CharacterControllerState {
|
|
220
|
-
position: Vec3;
|
|
221
|
-
velocity: Vec3;
|
|
222
|
-
isGrounded: boolean;
|
|
223
|
-
groundNormal: Vec3 | null;
|
|
224
|
-
isSlidingOnSlope: boolean;
|
|
225
|
-
lastGroundedTime: number;
|
|
226
|
-
}
|
|
227
|
-
export interface CharacterControllerInput {
|
|
228
|
-
desiredTranslation: Vec3;
|
|
229
|
-
jump?: boolean;
|
|
230
|
-
crouch?: boolean;
|
|
231
|
-
}
|
|
232
|
-
export declare function computeCharacterMovement(config: CharacterControllerConfig, state: CharacterControllerState, input: CharacterControllerInput, _dt: number): CharacterControllerState;
|
|
233
|
-
export interface VehicleConfig {
|
|
234
|
-
/** Chassis mass */
|
|
235
|
-
chassisMass: number;
|
|
236
|
-
/** Chassis dimensions */
|
|
237
|
-
chassisHalfExtents: Vec3;
|
|
238
|
-
/** Chassis center of mass offset */
|
|
239
|
-
centerOfMassOffset: Vec3;
|
|
240
|
-
/** Wheel configurations */
|
|
241
|
-
wheels: WheelConfig[];
|
|
242
|
-
/** Maximum steering angle (radians) */
|
|
243
|
-
maxSteeringAngle: number;
|
|
244
|
-
/** Engine torque curve */
|
|
245
|
-
engineTorqueCurve: {
|
|
246
|
-
rpm: number;
|
|
247
|
-
torque: number;
|
|
248
|
-
}[];
|
|
249
|
-
/** Gear ratios */
|
|
250
|
-
gearRatios: number[];
|
|
251
|
-
/** Final drive ratio */
|
|
252
|
-
finalDriveRatio: number;
|
|
253
|
-
/** Drivetrain type */
|
|
254
|
-
driveType: 'fwd' | 'rwd' | 'awd';
|
|
255
|
-
}
|
|
256
|
-
export interface WheelConfig {
|
|
257
|
-
/** Wheel position relative to chassis */
|
|
258
|
-
position: Vec3;
|
|
259
|
-
/** Wheel radius */
|
|
260
|
-
radius: number;
|
|
261
|
-
/** Suspension rest length */
|
|
262
|
-
suspensionRestLength: number;
|
|
263
|
-
/** Suspension stiffness */
|
|
264
|
-
suspensionStiffness: number;
|
|
265
|
-
/** Suspension damping */
|
|
266
|
-
suspensionDamping: number;
|
|
267
|
-
/** Max suspension travel */
|
|
268
|
-
maxSuspensionTravel: number;
|
|
269
|
-
/** Is steering wheel */
|
|
270
|
-
isSteering: boolean;
|
|
271
|
-
/** Is drive wheel */
|
|
272
|
-
isDriven: boolean;
|
|
273
|
-
/** Brake force */
|
|
274
|
-
brakeForce: number;
|
|
275
|
-
/** Tire friction curve */
|
|
276
|
-
tireFriction: TireFrictionCurve;
|
|
277
|
-
}
|
|
278
|
-
export interface TireFrictionCurve {
|
|
279
|
-
/** Slip ratio at which max grip occurs */
|
|
280
|
-
peakSlipRatio: number;
|
|
281
|
-
/** Max grip coefficient */
|
|
282
|
-
peakGrip: number;
|
|
283
|
-
/** Grip at full slip */
|
|
284
|
-
fullSlipGrip: number;
|
|
285
|
-
/** Lateral stiffness */
|
|
286
|
-
lateralStiffness: number;
|
|
287
|
-
}
|
|
288
|
-
export interface VehicleState {
|
|
289
|
-
chassisPosition: Vec3;
|
|
290
|
-
chassisRotation: Quat;
|
|
291
|
-
chassisVelocity: Vec3;
|
|
292
|
-
chassisAngularVelocity: Vec3;
|
|
293
|
-
wheelStates: WheelState[];
|
|
294
|
-
currentGear: number;
|
|
295
|
-
engineRPM: number;
|
|
296
|
-
speed: number;
|
|
297
|
-
}
|
|
298
|
-
export interface WheelState {
|
|
299
|
-
suspensionCompression: number;
|
|
300
|
-
rotationAngle: number;
|
|
301
|
-
rotationSpeed: number;
|
|
302
|
-
steeringAngle: number;
|
|
303
|
-
isGrounded: boolean;
|
|
304
|
-
groundHit: {
|
|
305
|
-
position: Vec3;
|
|
306
|
-
normal: Vec3;
|
|
307
|
-
distance: number;
|
|
308
|
-
} | null;
|
|
309
|
-
slipRatio: number;
|
|
310
|
-
slipAngle: number;
|
|
311
|
-
lateralForce: number;
|
|
312
|
-
longitudinalForce: number;
|
|
313
|
-
}
|
|
314
|
-
export interface VehicleInput {
|
|
315
|
-
throttle: number;
|
|
316
|
-
brake: number;
|
|
317
|
-
steering: number;
|
|
318
|
-
handbrake: boolean;
|
|
319
|
-
gearUp: boolean;
|
|
320
|
-
gearDown: boolean;
|
|
321
|
-
}
|
|
322
|
-
export interface RaycastInput {
|
|
323
|
-
origin: Vec3;
|
|
324
|
-
direction: Vec3;
|
|
325
|
-
maxDistance: number;
|
|
326
|
-
solid?: boolean;
|
|
327
|
-
filterGroups?: number;
|
|
328
|
-
filterFlags?: QueryFilterFlags;
|
|
329
|
-
}
|
|
330
|
-
export interface RaycastHit {
|
|
331
|
-
point: Vec3;
|
|
332
|
-
normal: Vec3;
|
|
333
|
-
distance: number;
|
|
334
|
-
colliderHandle: number;
|
|
335
|
-
feature?: ColliderFeature;
|
|
336
|
-
}
|
|
337
|
-
export type ColliderFeature = {
|
|
338
|
-
type: 'vertex';
|
|
339
|
-
index: number;
|
|
340
|
-
} | {
|
|
341
|
-
type: 'edge';
|
|
342
|
-
index: number;
|
|
343
|
-
} | {
|
|
344
|
-
type: 'face';
|
|
345
|
-
index: number;
|
|
346
|
-
};
|
|
347
|
-
export interface ShapeCastInput {
|
|
348
|
-
shape: ColliderShape;
|
|
349
|
-
position: Vec3;
|
|
350
|
-
rotation: Quat;
|
|
351
|
-
direction: Vec3;
|
|
352
|
-
maxDistance: number;
|
|
353
|
-
filterGroups?: number;
|
|
354
|
-
}
|
|
355
|
-
export interface ShapeCastHit extends RaycastHit {
|
|
356
|
-
/** Time of impact (0-1) */
|
|
357
|
-
toi: number;
|
|
358
|
-
/** Witness points */
|
|
359
|
-
witness1: Vec3;
|
|
360
|
-
witness2: Vec3;
|
|
361
|
-
}
|
|
362
|
-
export type QueryFilterFlags = number;
|
|
363
|
-
export declare const QUERY_FILTER: {
|
|
364
|
-
readonly EXCLUDE_STATIC: number;
|
|
365
|
-
readonly EXCLUDE_KINEMATIC: number;
|
|
366
|
-
readonly EXCLUDE_DYNAMIC: number;
|
|
367
|
-
readonly EXCLUDE_SENSORS: number;
|
|
368
|
-
readonly ONLY_DYNAMIC: number;
|
|
369
|
-
readonly ONLY_KINEMATIC: number;
|
|
370
|
-
readonly ONLY_STATIC: number;
|
|
371
|
-
};
|
|
372
|
-
export interface DebugRenderOptions {
|
|
373
|
-
/** Render rigid body AABBs */
|
|
374
|
-
renderAABBs: boolean;
|
|
375
|
-
/** Render collider shapes */
|
|
376
|
-
renderColliders: boolean;
|
|
377
|
-
/** Render contact points */
|
|
378
|
-
renderContacts: boolean;
|
|
379
|
-
/** Render joints */
|
|
380
|
-
renderJoints: boolean;
|
|
381
|
-
/** Render velocity vectors */
|
|
382
|
-
renderVelocities: boolean;
|
|
383
|
-
/** Colors */
|
|
384
|
-
colors: {
|
|
385
|
-
dynamic: [number, number, number, number];
|
|
386
|
-
static: [number, number, number, number];
|
|
387
|
-
kinematic: [number, number, number, number];
|
|
388
|
-
sleeping: [number, number, number, number];
|
|
389
|
-
contact: [number, number, number, number];
|
|
390
|
-
joint: [number, number, number, number];
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
export declare const DEFAULT_DEBUG_COLORS: DebugRenderOptions['colors'];
|
|
394
|
-
export interface DebugRenderData {
|
|
395
|
-
vertices: Float32Array;
|
|
396
|
-
colors: Float32Array;
|
|
397
|
-
lineIndices: Uint32Array;
|
|
398
|
-
}
|
|
399
|
-
export declare function createBoxCollider(halfExtents: Vec3, options?: Partial<ColliderDescriptor>): ColliderDescriptor;
|
|
400
|
-
export declare function createSphereCollider(radius: number, options?: Partial<ColliderDescriptor>): ColliderDescriptor;
|
|
401
|
-
export declare function createCapsuleCollider(halfHeight: number, radius: number, options?: Partial<ColliderDescriptor>): ColliderDescriptor;
|
|
402
|
-
export declare function createDynamicBody(position: Vec3, options?: Partial<RigidBodyDescriptor>): RigidBodyDescriptor;
|
|
403
|
-
export declare function createStaticBody(position: Vec3, options?: Partial<RigidBodyDescriptor>): RigidBodyDescriptor;
|
|
404
|
-
export declare function createKinematicBody(position: Vec3, options?: Partial<RigidBodyDescriptor>): RigidBodyDescriptor;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { PhysicsEngine2D, PhysicsSystem, type CollisionInfo, type RaycastHit, } from './PhysicsEngine2D';
|
|
2
|
-
export { DEFAULT_INTEGRATION_PARAMS, DEFAULT_WORLD_CONFIG, DEFAULT_CHARACTER_CONFIG, DEFAULT_DEBUG_COLORS, QUERY_FILTER, createBoxCollider, createSphereCollider, createCapsuleCollider, createDynamicBody, createStaticBody, createKinematicBody, computeCharacterMovement, type Vec3, type Quat, type RigidBodyType, type ColliderShape, type JointType, type RapierWorldConfig, type IntegrationParameters, type RigidBodyDescriptor, type ColliderDescriptor, type JointDescriptor, type JointLimits, type JointMotor, type RapierPhysicsWorld, type PhysicsEventQueue, type CollisionEvent, type ContactForceEvent, type CharacterControllerConfig, type CharacterControllerState, type CharacterControllerInput, type VehicleConfig, type VehicleState, type VehicleInput, type WheelConfig, type WheelState, type TireFrictionCurve, type RaycastInput, type ShapeCastInput, type ShapeCastHit, type ColliderFeature, type QueryFilterFlags, type DebugRenderOptions, type DebugRenderData, } from './RapierIntegration';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Release';
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
export interface WebGPUv2Features {
|
|
2
|
-
/** Timestamp queries for profiling */
|
|
3
|
-
timestampQuery: boolean;
|
|
4
|
-
/** Indirect multi-draw */
|
|
5
|
-
indirectFirstInstance: boolean;
|
|
6
|
-
/** Shader f16 support */
|
|
7
|
-
shaderF16: boolean;
|
|
8
|
-
/** Depth clip control */
|
|
9
|
-
depthClipControl: boolean;
|
|
10
|
-
/** RG11B10 storage textures */
|
|
11
|
-
rg11b10Storage: boolean;
|
|
12
|
-
/** BGRA read-write storage */
|
|
13
|
-
bgraStorage: boolean;
|
|
14
|
-
/** Float32 filterable textures */
|
|
15
|
-
float32Filterable: boolean;
|
|
16
|
-
/** Subgroups extension */
|
|
17
|
-
subgroups: boolean;
|
|
18
|
-
/** Max texture dimension */
|
|
19
|
-
maxTextureDimension: number;
|
|
20
|
-
/** Max bind groups */
|
|
21
|
-
maxBindGroups: number;
|
|
22
|
-
/** Max storage buffers per shader stage */
|
|
23
|
-
maxStorageBuffers: number;
|
|
24
|
-
/** Max compute workgroup size */
|
|
25
|
-
maxComputeWorkgroupSize: [number, number, number];
|
|
26
|
-
}
|
|
27
|
-
export declare function detectWebGPUv2Features(device: GPUDevice): Promise<WebGPUv2Features>;
|
|
28
|
-
export interface BindlessTextureArray {
|
|
29
|
-
textureArray: GPUTexture;
|
|
30
|
-
sampler: GPUSampler;
|
|
31
|
-
bindGroup: GPUBindGroup;
|
|
32
|
-
layout: GPUBindGroupLayout;
|
|
33
|
-
capacity: number;
|
|
34
|
-
usedSlots: number;
|
|
35
|
-
slotMap: Map<string, number>;
|
|
36
|
-
}
|
|
37
|
-
export interface BindlessTextureConfig {
|
|
38
|
-
width: number;
|
|
39
|
-
height: number;
|
|
40
|
-
layers: number;
|
|
41
|
-
format: GPUTextureFormat;
|
|
42
|
-
mipLevelCount?: number;
|
|
43
|
-
sampleCount?: 1 | 4;
|
|
44
|
-
}
|
|
45
|
-
export declare function createBindlessTextureArray(device: GPUDevice, config: BindlessTextureConfig): BindlessTextureArray;
|
|
46
|
-
export interface DrawIndirectCommand {
|
|
47
|
-
vertexCount: number;
|
|
48
|
-
instanceCount: number;
|
|
49
|
-
firstVertex: number;
|
|
50
|
-
firstInstance: number;
|
|
51
|
-
}
|
|
52
|
-
export interface DrawIndexedIndirectCommand {
|
|
53
|
-
indexCount: number;
|
|
54
|
-
instanceCount: number;
|
|
55
|
-
firstIndex: number;
|
|
56
|
-
baseVertex: number;
|
|
57
|
-
firstInstance: number;
|
|
58
|
-
}
|
|
59
|
-
export interface GPUDrivenRenderer {
|
|
60
|
-
/** Buffer for indirect draw commands */
|
|
61
|
-
drawBuffer: GPUBuffer;
|
|
62
|
-
/** Buffer for instance data */
|
|
63
|
-
instanceBuffer: GPUBuffer;
|
|
64
|
-
/** Buffer for visibility results (from culling) */
|
|
65
|
-
visibilityBuffer: GPUBuffer;
|
|
66
|
-
/** Compute pipeline for GPU culling */
|
|
67
|
-
cullPipeline: GPUComputePipeline;
|
|
68
|
-
/** Compute pipeline for compaction */
|
|
69
|
-
compactPipeline: GPUComputePipeline;
|
|
70
|
-
/** Max draw calls per frame */
|
|
71
|
-
maxDrawCalls: number;
|
|
72
|
-
/** Max instances total */
|
|
73
|
-
maxInstances: number;
|
|
74
|
-
}
|
|
75
|
-
export interface CullUniforms {
|
|
76
|
-
viewProjectionMatrix: Float32Array;
|
|
77
|
-
frustumPlanes: Float32Array;
|
|
78
|
-
cameraPosition: Float32Array;
|
|
79
|
-
lodDistances: Float32Array;
|
|
80
|
-
}
|
|
81
|
-
/** WGSL compute shader for frustum culling */
|
|
82
|
-
export declare const GPU_CULL_SHADER = "\nstruct CullUniforms {\n viewProj: mat4x4<f32>,\n frustum0: vec4<f32>,\n frustum1: vec4<f32>,\n frustum2: vec4<f32>,\n frustum3: vec4<f32>,\n frustum4: vec4<f32>,\n frustum5: vec4<f32>,\n cameraPos: vec4<f32>,\n lodDistances: vec4<f32>,\n}\n\nstruct InstanceData {\n modelMatrix: mat4x4<f32>,\n boundingSphere: vec4<f32>, // xyz = center, w = radius\n lodLevel: u32,\n meshIndex: u32,\n materialIndex: u32,\n flags: u32,\n}\n\nstruct DrawCommand {\n vertexCount: u32,\n instanceCount: atomic<u32>,\n firstVertex: u32,\n firstInstance: u32,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: CullUniforms;\n@group(0) @binding(1) var<storage, read> instances: array<InstanceData>;\n@group(0) @binding(2) var<storage, read_write> drawCommands: array<DrawCommand>;\n@group(0) @binding(3) var<storage, read_write> visibleInstances: array<u32>;\n@group(0) @binding(4) var<storage, read_write> visibilityCount: atomic<u32>;\n\nfn isInsideFrustum(sphere: vec4<f32>) -> bool {\n let planes = array<vec4<f32>, 6>(\n uniforms.frustum0, uniforms.frustum1, uniforms.frustum2,\n uniforms.frustum3, uniforms.frustum4, uniforms.frustum5\n );\n \n for (var i = 0u; i < 6u; i++) {\n let dist = dot(planes[i].xyz, sphere.xyz) + planes[i].w;\n if (dist < -sphere.w) {\n return false;\n }\n }\n return true;\n}\n\nfn computeLOD(worldPos: vec3<f32>) -> u32 {\n let dist = distance(worldPos, uniforms.cameraPos.xyz);\n if (dist < uniforms.lodDistances.x) { return 0u; }\n if (dist < uniforms.lodDistances.y) { return 1u; }\n if (dist < uniforms.lodDistances.z) { return 2u; }\n return 3u;\n}\n\n@compute @workgroup_size(64)\nfn main(@builtin(global_invocation_id) gid: vec3<u32>) {\n let instanceIndex = gid.x;\n if (instanceIndex >= arrayLength(&instances)) {\n return;\n }\n \n let instance = instances[instanceIndex];\n \n // Transform bounding sphere to world space\n let worldCenter = (instance.modelMatrix * vec4<f32>(instance.boundingSphere.xyz, 1.0)).xyz;\n let worldSphere = vec4<f32>(worldCenter, instance.boundingSphere.w);\n \n // Frustum cull\n if (!isInsideFrustum(worldSphere)) {\n return;\n }\n \n // Compute LOD\n let lod = computeLOD(worldCenter);\n \n // Add to visible instances\n let slot = atomicAdd(&visibilityCount, 1u);\n visibleInstances[slot] = instanceIndex;\n \n // Increment instance count for draw command\n atomicAdd(&drawCommands[instance.meshIndex].instanceCount, 1u);\n}\n";
|
|
83
|
-
export declare function createGPUDrivenRenderer(device: GPUDevice, maxDrawCalls: number, maxInstances: number): Promise<GPUDrivenRenderer>;
|
|
84
|
-
export type ShadingRate = '1x1' | '1x2' | '2x1' | '2x2' | '2x4' | '4x2' | '4x4';
|
|
85
|
-
export interface VRSConfig {
|
|
86
|
-
/** Enable VRS */
|
|
87
|
-
enabled: boolean;
|
|
88
|
-
/** Default shading rate */
|
|
89
|
-
defaultRate: ShadingRate;
|
|
90
|
-
/** Use velocity-based adaptive VRS */
|
|
91
|
-
velocityAdaptive: boolean;
|
|
92
|
-
/** Use luminance-based adaptive VRS */
|
|
93
|
-
luminanceAdaptive: boolean;
|
|
94
|
-
/** Edge detection for fine detail preservation */
|
|
95
|
-
edgePreservation: boolean;
|
|
96
|
-
/** Foveated regions (for VR) */
|
|
97
|
-
foveatedRegions?: FoveatedRegion[];
|
|
98
|
-
}
|
|
99
|
-
export interface FoveatedRegion {
|
|
100
|
-
centerX: number;
|
|
101
|
-
centerY: number;
|
|
102
|
-
innerRadius: number;
|
|
103
|
-
middleRadius: number;
|
|
104
|
-
outerRadius: number;
|
|
105
|
-
innerRate: ShadingRate;
|
|
106
|
-
middleRate: ShadingRate;
|
|
107
|
-
outerRate: ShadingRate;
|
|
108
|
-
}
|
|
109
|
-
export declare const DEFAULT_VRS_CONFIG: VRSConfig;
|
|
110
|
-
/** WGSL shader for generating VRS rate image */
|
|
111
|
-
export declare const VRS_RATE_SHADER = "\nstruct VRSParams {\n enableVelocity: u32,\n enableLuminance: u32,\n enableEdge: u32,\n defaultRate: u32,\n screenSize: vec2<f32>,\n foveaCenter: vec2<f32>,\n foveaRadii: vec4<f32>, // inner, middle, outer, _\n}\n\n@group(0) @binding(0) var<uniform> params: VRSParams;\n@group(0) @binding(1) var velocityTex: texture_2d<f32>;\n@group(0) @binding(2) var depthTex: texture_2d<f32>;\n@group(0) @binding(3) var rateOutput: texture_storage_2d<r8uint, write>;\n\nfn velocityToRate(velocity: vec2<f32>) -> u32 {\n let speed = length(velocity);\n if (speed < 0.01) { return 0u; } // 1x1\n if (speed < 0.05) { return 1u; } // 1x2\n if (speed < 0.1) { return 3u; } // 2x2\n return 7u; // 4x4\n}\n\nfn foveaToRate(uv: vec2<f32>) -> u32 {\n let dist = distance(uv, params.foveaCenter);\n if (dist < params.foveaRadii.x) { return 0u; } // 1x1\n if (dist < params.foveaRadii.y) { return 1u; } // 1x2\n if (dist < params.foveaRadii.z) { return 3u; } // 2x2\n return 7u; // 4x4\n}\n\n@compute @workgroup_size(8, 8)\nfn main(@builtin(global_invocation_id) gid: vec3<u32>) {\n let screenPos = vec2<i32>(gid.xy);\n let uv = vec2<f32>(gid.xy) / params.screenSize;\n \n var rate = params.defaultRate;\n \n // Foveated rendering (highest priority)\n if (params.foveaRadii.w > 0.0) {\n rate = max(rate, foveaToRate(uv));\n }\n \n // Velocity-based\n if (params.enableVelocity != 0u) {\n let velocity = textureLoad(velocityTex, screenPos, 0).xy;\n rate = max(rate, velocityToRate(velocity));\n }\n \n textureStore(rateOutput, screenPos, vec4<u32>(rate, 0u, 0u, 0u));\n}\n";
|
|
112
|
-
export interface RTAccelerationStructure {
|
|
113
|
-
/** BVH nodes buffer */
|
|
114
|
-
bvhBuffer: GPUBuffer;
|
|
115
|
-
/** Triangle data buffer */
|
|
116
|
-
triangleBuffer: GPUBuffer;
|
|
117
|
-
/** Instance transforms buffer */
|
|
118
|
-
instanceBuffer: GPUBuffer;
|
|
119
|
-
/** Compute pipeline for ray-BVH traversal */
|
|
120
|
-
traversalPipeline: GPUComputePipeline;
|
|
121
|
-
/** Total triangles */
|
|
122
|
-
triangleCount: number;
|
|
123
|
-
/** Total instances */
|
|
124
|
-
instanceCount: number;
|
|
125
|
-
}
|
|
126
|
-
export interface BVHNode {
|
|
127
|
-
boundsMin: [number, number, number];
|
|
128
|
-
boundsMax: [number, number, number];
|
|
129
|
-
leftChild: number;
|
|
130
|
-
rightChild: number;
|
|
131
|
-
firstTriangle: number;
|
|
132
|
-
triangleCount: number;
|
|
133
|
-
}
|
|
134
|
-
export interface RTConfig {
|
|
135
|
-
/** Max ray bounces */
|
|
136
|
-
maxBounces: number;
|
|
137
|
-
/** Samples per pixel */
|
|
138
|
-
samplesPerPixel: number;
|
|
139
|
-
/** Use importance sampling */
|
|
140
|
-
importanceSampling: boolean;
|
|
141
|
-
/** Enable soft shadows */
|
|
142
|
-
softShadows: boolean;
|
|
143
|
-
/** Enable ambient occlusion */
|
|
144
|
-
ambientOcclusion: boolean;
|
|
145
|
-
/** Enable global illumination */
|
|
146
|
-
globalIllumination: boolean;
|
|
147
|
-
/** Denoiser enabled */
|
|
148
|
-
denoiser: boolean;
|
|
149
|
-
}
|
|
150
|
-
export declare const DEFAULT_RT_CONFIG: RTConfig;
|
|
151
|
-
/** BVH construction (SAH-based) */
|
|
152
|
-
export declare function buildBVH(triangles: Float32Array, triangleCount: number): {
|
|
153
|
-
nodes: BVHNode[];
|
|
154
|
-
reorderedTriangles: Float32Array;
|
|
155
|
-
};
|
|
156
|
-
export interface TAAConfig {
|
|
157
|
-
/** Enable TAA */
|
|
158
|
-
enabled: boolean;
|
|
159
|
-
/** Jitter sample count (8 or 16) */
|
|
160
|
-
jitterSamples: 8 | 16;
|
|
161
|
-
/** Blend factor (0.9 = 90% history, 10% current) */
|
|
162
|
-
blendFactor: number;
|
|
163
|
-
/** Velocity rejection threshold */
|
|
164
|
-
velocityRejection: number;
|
|
165
|
-
/** Enable sharpening pass */
|
|
166
|
-
sharpen: boolean;
|
|
167
|
-
/** Sharpening strength */
|
|
168
|
-
sharpenStrength: number;
|
|
169
|
-
}
|
|
170
|
-
export declare const DEFAULT_TAA_CONFIG: TAAConfig;
|
|
171
|
-
/** Halton sequence for jitter offsets */
|
|
172
|
-
export declare function haltonSequence(index: number, base: number): number;
|
|
173
|
-
export declare function generateJitterOffsets(sampleCount: 8 | 16): [number, number][];
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { Camera2D, type CameraShake } from './Camera2D';
|
|
2
|
-
export { Renderer2D, RenderSystem, type RenderStats } from './Renderer2D';
|
|
3
|
-
export { detectWebGPUv2Features, createBindlessTextureArray, createGPUDrivenRenderer, buildBVH, haltonSequence, generateJitterOffsets, GPU_CULL_SHADER, VRS_RATE_SHADER, DEFAULT_VRS_CONFIG, DEFAULT_RT_CONFIG, DEFAULT_TAA_CONFIG, type WebGPUv2Features, type BindlessTextureArray, type BindlessTextureConfig, type GPUDrivenRenderer, type CullUniforms, type VRSConfig, type FoveatedRegion, type ShadingRate, type RTAccelerationStructure, type BVHNode, type RTConfig, type TAAConfig, type DrawIndirectCommand, type DrawIndexedIndirectCommand, } from './WebGPUv2';
|