Skip to content

Commit bd284a1

Browse files
committed
refactor, slim down the assets
1 parent f96306d commit bd284a1

10 files changed

Lines changed: 34 additions & 47 deletions

File tree

-15.5 MB
Binary file not shown.

apps/typegpu-docs/src/examples/rendering/os-awards/cubemap.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/common/cubemap.ts

File renamed without changes.

apps/typegpu-docs/src/examples/rendering/os-awards/model.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/common/model.ts

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -75,20 +75,12 @@ export async function loadModel(root: TgpuRoot, url: string) {
7575
const createTextureFromBitmap = (bitmap: ImageBitmap, srgb: boolean) => {
7676
const mipLevelCount = Math.floor(Math.log2(Math.max(bitmap.width, bitmap.height))) + 1;
7777
const texture = root
78-
.createTexture(
79-
srgb
80-
? {
81-
size: [bitmap.width, bitmap.height],
82-
format: 'rgba8unorm',
83-
viewFormats: ['rgba8unorm-srgb'],
84-
mipLevelCount,
85-
}
86-
: {
87-
size: [bitmap.width, bitmap.height],
88-
format: 'rgba8unorm',
89-
mipLevelCount,
90-
},
91-
)
78+
.createTexture({
79+
size: [bitmap.width, bitmap.height],
80+
format: 'rgba8unorm',
81+
mipLevelCount,
82+
...(srgb ? { viewFormats: ['rgba8unorm-srgb'] } : {}),
83+
})
9284
.$usage('sampled', 'render');
9385
texture.write(bitmap);
9486
texture.generateMipmaps();

apps/typegpu-docs/src/examples/rendering/os-awards/pbr.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/common/pbr.ts

File renamed without changes.

apps/typegpu-docs/src/examples/rendering/os-awards/shading.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/common/shading.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import tgpu, { d, std, type TgpuBindGroup } from 'typegpu';
22
import { distributionGGX, fresnelSchlick, geometrySmith } from './pbr.ts';
3-
import { scene } from './scene.ts';
4-
import { Camera } from '../../common/setup-orbit-camera.ts';
3+
import { scene } from '../scene.ts';
4+
import { Camera } from '../../../common/setup-orbit-camera.ts';
55

66
export const AwardMaterial = d.struct({
77
baseColorFactor: d.vec4f,

apps/typegpu-docs/src/examples/rendering/os-awards/index.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import tgpu, { common, d, std } from 'typegpu';
22
import * as m from 'wgpu-matrix';
3-
import { directionToEquirectUv, loadEnvironmentCubemap } from './cubemap.ts';
4-
import { createMeshRenderer } from './mesh-renderer.ts';
5-
import { loadModel } from './model.ts';
3+
import { directionToEquirectUv, loadEnvironmentCubemap } from './common/cubemap.ts';
4+
import { loadModel } from './common/model.ts';
5+
import { AwardMaterial, primaryRayDir, sharedLayout, tonemapForDisplay } from './common/shading.ts';
6+
import { createMeshRenderer } from './mesh/renderer.ts';
67
import { scene } from './scene.ts';
7-
import { createSdfRenderer } from './sdf-renderer.ts';
8-
import { AwardMaterial, primaryRayDir, sharedLayout, tonemapForDisplay } from './shading.ts';
8+
import { createSdfRenderer } from './sdf/renderer.ts';
99
import { defineControls } from '../../common/defineControls.ts';
1010
import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts';
1111

@@ -79,8 +79,8 @@ const envPipeline = root.createRenderPipeline({
7979
});
8080

8181
const renderers = {
82-
sdf: createSdfRenderer(root, context, sharedBindGroup),
83-
mesh: createMeshRenderer(root, context, canvas, award, sharedBindGroup),
82+
sdf: createSdfRenderer(root, context),
83+
mesh: createMeshRenderer(root, context, canvas, award),
8484
};
8585
let renderer: keyof typeof renderers = 'sdf';
8686

@@ -128,7 +128,7 @@ function frame(timeMs: number) {
128128
updateAwardTransform(timeMs);
129129

130130
envPipeline.with(sharedBindGroup).withColorAttachment({ view: context }).draw(3);
131-
renderers[renderer].draw();
131+
renderers[renderer].draw(sharedBindGroup);
132132

133133
if (!firstFrameDrawn) {
134134
loadingScreen.style.display = 'none';

apps/typegpu-docs/src/examples/rendering/os-awards/mesh-renderer.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/mesh/renderer.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import tgpu, { d, std, type TgpuRoot } from 'typegpu';
2-
import { type loadModel, ModelVertex } from './model.ts';
3-
import { scene } from './scene.ts';
2+
import { type loadModel, ModelVertex } from '../common/model.ts';
43
import {
54
isInEpoxyRegion,
65
sampleEnv,
@@ -9,7 +8,8 @@ import {
98
sharedLayout,
109
shadeOpaque,
1110
tonemapForDisplay,
12-
} from './shading.ts';
11+
} from '../common/shading.ts';
12+
import { scene } from '../scene.ts';
1313

1414
const awardVertexLayout = tgpu.vertexLayout(d.arrayOf(ModelVertex));
1515

@@ -133,7 +133,6 @@ export function createMeshRenderer(
133133
context: GPUCanvasContext,
134134
canvas: HTMLCanvasElement,
135135
award: Awaited<ReturnType<typeof loadModel>>,
136-
sharedBindGroup: SharedBindGroup,
137136
) {
138137
const pipeline = root.createRenderPipeline({
139138
attribs: awardVertexLayout.attrib,
@@ -163,7 +162,7 @@ export function createMeshRenderer(
163162
resizeObserver.observe(canvas);
164163

165164
return {
166-
draw() {
165+
draw(sharedBindGroup: SharedBindGroup) {
167166
pipeline
168167
.with(sharedBindGroup)
169168
.withColorAttachment({ view: context, loadOp: 'load' })

apps/typegpu-docs/src/examples/rendering/os-awards/sdf-renderer.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/sdf/renderer.ts

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
11
import { perlin3d } from '@typegpu/noise';
22
import tgpu, { common, d, std, type TgpuRoot } from 'typegpu';
3-
import { fresnelSchlick } from './pbr.ts';
4-
import { scene } from './scene.ts';
5-
import {
6-
awardBoundsCenter,
7-
awardBoundsRadius,
8-
awardShieldMinY,
9-
sdAwardSmooth,
10-
sdEpoxyWood,
11-
} from './sdf-award.ts';
12-
import { awardUv } from './sdf-uv.ts';
3+
import { fresnelSchlick } from '../common/pbr.ts';
134
import {
145
isInEpoxyRegion,
156
modelDirToWorld,
@@ -22,7 +13,16 @@ import {
2213
shadeDirectLights,
2314
shadeOpaque,
2415
tonemapForDisplay,
25-
} from './shading.ts';
16+
} from '../common/shading.ts';
17+
import { scene } from '../scene.ts';
18+
import {
19+
awardBoundsCenter,
20+
awardBoundsRadius,
21+
awardShieldMinY,
22+
sdAwardSmooth,
23+
sdEpoxyWood,
24+
} from './shape.ts';
25+
import { awardUv } from './uv.ts';
2626

2727
const MARCH_MAX_STEPS = 128;
2828
const MARCH_SURF_DIST = 4e-4;
@@ -237,11 +237,7 @@ const sdfFragment = tgpu.fragmentFn({
237237
return d.vec4f(tonemapForDisplay(color), 1);
238238
});
239239

240-
export function createSdfRenderer(
241-
root: TgpuRoot,
242-
context: GPUCanvasContext,
243-
sharedBindGroup: SharedBindGroup,
244-
) {
240+
export function createSdfRenderer(root: TgpuRoot, context: GPUCanvasContext) {
245241
const perlinCache = perlin3d.staticCache({ root, size: d.vec3u(7) });
246242

247243
const pipeline = root.pipe(perlinCache.inject()).createRenderPipeline({
@@ -250,7 +246,7 @@ export function createSdfRenderer(
250246
});
251247

252248
return {
253-
draw() {
249+
draw(sharedBindGroup: SharedBindGroup) {
254250
pipeline.with(sharedBindGroup).withColorAttachment({ view: context, loadOp: 'load' }).draw(3);
255251
},
256252
destroy() {

apps/typegpu-docs/src/examples/rendering/os-awards/sdf-award.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/sdf/shape.ts

File renamed without changes.

apps/typegpu-docs/src/examples/rendering/os-awards/sdf-uv.ts renamed to apps/typegpu-docs/src/examples/rendering/os-awards/sdf/uv.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { d, std } from 'typegpu';
2-
import { awardShieldMinY } from './sdf-award.ts';
2+
import { awardShieldMinY } from './shape.ts';
33

44
const atlas = {
55
baseTop: {

0 commit comments

Comments
 (0)