Skip to content

Commit 05270d0

Browse files
committed
Update gravity.test.ts
1 parent f85150b commit 05270d0

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

packages/typegpu/tests/examples/individual/gravity.test.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ describe('gravity example', () => {
6464
6565
@compute @workgroup_size(1) fn computeCollisionsShader_0(input: computeCollisionsShader_Input_7) {
6666
let currentId = input.gid.x;
67-
var current = inState_1[currentId];
67+
var current = CelestialBody_2(inState_1[currentId].destroyed, inState_1[currentId].position, inState_1[currentId].velocity, inState_1[currentId].mass, inState_1[currentId].radiusMultiplier, inState_1[currentId].collisionBehavior, inState_1[currentId].textureIndex, inState_1[currentId].ambientLightFactor);
6868
if ((current.destroyed == 0)) {
6969
for (var i = 0; (i < celestialBodiesCount_3); i++) {
7070
let otherId = u32(i);
@@ -95,7 +95,14 @@ describe('gravity example', () => {
9595
outState_6[input.gid.x] = current;
9696
}
9797
98-
struct CelestialBody_2 {
98+
struct Time_2 {
99+
passed: f32,
100+
multiplier: f32,
101+
}
102+
103+
@group(0) @binding(0) var<uniform> time_1: Time_2;
104+
105+
struct CelestialBody_4 {
99106
destroyed: u32,
100107
position: vec3f,
101108
velocity: vec3f,
@@ -106,46 +113,39 @@ describe('gravity example', () => {
106113
ambientLightFactor: f32,
107114
}
108115
109-
@group(1) @binding(1) var<storage, read> inState_1: array<CelestialBody_2>;
110-
111-
@group(1) @binding(2) var<storage, read_write> outState_3: array<CelestialBody_2>;
112-
113-
struct Time_5 {
114-
passed: f32,
115-
multiplier: f32,
116-
}
117-
118-
@group(0) @binding(0) var<uniform> time_4: Time_5;
116+
@group(1) @binding(1) var<storage, read> inState_3: array<CelestialBody_4>;
119117
120-
@group(1) @binding(0) var<uniform> celestialBodiesCount_6: i32;
118+
@group(1) @binding(0) var<uniform> celestialBodiesCount_5: i32;
121119
122-
fn radiusOf_7(body: CelestialBody_2) -> f32 {
120+
fn radiusOf_6(body: CelestialBody_4) -> f32 {
123121
return (pow(((body.mass * 0.75) / 3.141592653589793f), 0.333) * body.radiusMultiplier);
124122
}
125123
124+
@group(1) @binding(2) var<storage, read_write> outState_7: array<CelestialBody_4>;
125+
126126
struct computeGravityShader_Input_8 {
127127
@builtin(global_invocation_id) gid: vec3u,
128128
}
129129
130130
@compute @workgroup_size(1) fn computeGravityShader_0(input: computeGravityShader_Input_8) {
131-
let current = (&inState_1[input.gid.x]);
132-
let newCurrent = (&outState_3[input.gid.x]);
133-
let dt = (time_4.passed * time_4.multiplier);
134-
if (((*current).destroyed == 1)) {
131+
let dt = (time_1.passed * time_1.multiplier);
132+
let currentId = input.gid.x;
133+
var current = CelestialBody_4(inState_3[currentId].destroyed, inState_3[currentId].position, inState_3[currentId].velocity, inState_3[currentId].mass, inState_3[currentId].radiusMultiplier, inState_3[currentId].collisionBehavior, inState_3[currentId].textureIndex, inState_3[currentId].ambientLightFactor);
134+
if ((current.destroyed == 1)) {
135135
return;
136136
}
137-
(*newCurrent).velocity = (*current).velocity;
138-
for (var i = 0; (i < celestialBodiesCount_6); i++) {
139-
let other = (&inState_1[i]);
137+
for (var i = 0; (i < celestialBodiesCount_5); i++) {
138+
let other = (&inState_3[i]);
140139
if (((u32(i) == input.gid.x) || ((*other).destroyed == 1))) {
141140
continue;
142141
}
143-
let dist = max((radiusOf_7((*current)) + radiusOf_7((*other))), distance((*current).position, (*other).position));
144-
let gravityForce = ((((*current).mass * (*other).mass) / dist) / dist);
145-
var direction = normalize(((*other).position - (*current).position));
146-
(*newCurrent).velocity = ((*newCurrent).velocity + (direction * ((gravityForce / (*current).mass) * dt)));
142+
let dist = max((radiusOf_6(current) + radiusOf_6((*other))), distance(current.position, (*other).position));
143+
let gravityForce = (((current.mass * (*other).mass) / dist) / dist);
144+
var direction = normalize(((*other).position - current.position));
145+
current.velocity = (current.velocity + (direction * ((gravityForce / current.mass) * dt)));
147146
}
148-
(*newCurrent).position = ((*current).position + ((*newCurrent).velocity * dt));
147+
current.position = (current.position + (current.velocity * dt));
148+
outState_7[input.gid.x] = current;
149149
}
150150
151151
struct Camera_2 {

0 commit comments

Comments
 (0)