@origingame/engine 0.3.0 → 0.4.0
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/dist/web/origin-engine.d.ts +38 -2
- package/dist/web/origin-engine.js +250 -10
- package/dist/web/origin-engine_bg.wasm +0 -0
- package/dist/web/origin-engine_bg.wasm.d.ts +14 -2
- package/dist/web-publish/origin-engine-lanes.js +255 -34
- package/dist/web-publish/origin-engine-lanes_bg.wasm +0 -0
- package/dist/web-publish/origin-engine.d.ts +39 -3
- package/dist/web-publish/origin-engine.js +253 -32
- package/dist/web-publish/origin-engine_bg.wasm +0 -0
- package/dist/web-publish/origin-engine_bg.wasm.d.ts +15 -3
- package/dist/web-publish-2d/origin-engine-lanes.js +253 -32
- package/dist/web-publish-2d/origin-engine-lanes_bg.wasm +0 -0
- package/dist/web-publish-2d/origin-engine.d.ts +38 -2
- package/dist/web-publish-2d/origin-engine.js +250 -29
- package/dist/web-publish-2d/origin-engine_bg.wasm +0 -0
- package/dist/web-publish-2d/origin-engine_bg.wasm.d.ts +14 -2
- package/knowledge/README.md +2 -1
- package/knowledge/guides/three-to-og.md +393 -0
- package/knowledge/knowledge.json +2 -1
- package/knowledge/package.json +3 -2
- package/knowledge/scaffold/origin-engine.json +2 -2
- package/knowledge/scaffold/template/package.json +1 -1
- package/knowledge/scaffold/template/project.ogt +1 -1
- package/knowledge/scripts/validate.ts +140 -21
- package/knowledge/skills/og-audio/SKILL.md +2 -2
- package/knowledge/skills/og-build/SKILL.md +22 -3
- package/knowledge/skills/og-core/SKILL.md +20 -5
- package/knowledge/skills/og-feel/SKILL.md +2 -2
- package/knowledge/skills/og-game/SKILL.md +481 -35
- package/knowledge/skills/og-i18n/SKILL.md +7 -7
- package/knowledge/skills/og-model/SKILL.md +374 -0
- package/knowledge/skills/og-platform-sdk/SKILL.md +1 -1
- package/knowledge/skills/og-ui/SKILL.md +15 -8
- package/knowledge/wiki/ai.md +20 -20
- package/knowledge/wiki/anim.md +63 -55
- package/knowledge/wiki/atmosphere.md +13 -13
- package/knowledge/wiki/audio.md +18 -18
- package/knowledge/wiki/camera.md +13 -13
- package/knowledge/wiki/commands.md +11 -11
- package/knowledge/wiki/debug.md +13 -13
- package/knowledge/wiki/game.md +8 -8
- package/knowledge/wiki/i18n.md +7 -7
- package/knowledge/wiki/index.md +57 -3
- package/knowledge/wiki/input.md +47 -47
- package/knowledge/wiki/load.md +57 -57
- package/knowledge/wiki/nav.md +34 -34
- package/knowledge/wiki/net.md +10 -10
- package/knowledge/wiki/path.md +14 -14
- package/knowledge/wiki/physics.md +95 -95
- package/knowledge/wiki/platform.md +44 -44
- package/knowledge/wiki/probe.md +86 -86
- package/knowledge/wiki/reflect.md +16 -4
- package/knowledge/wiki/render.md +1168 -170
- package/knowledge/wiki/rng.md +14 -14
- package/knowledge/wiki/shapes.md +727 -0
- package/knowledge/wiki/stream.md +15 -15
- package/knowledge/wiki/system.md +8 -8
- package/knowledge/wiki/systems.md +2 -2
- package/knowledge/wiki/terrain.md +24 -20
- package/knowledge/wiki/tilemap.md +13 -13
- package/knowledge/wiki/time.md +4 -4
- package/knowledge/wiki/timeline.md +14 -14
- package/knowledge/wiki/transform.md +8 -8
- package/knowledge/wiki/tween.md +17 -17
- package/knowledge/wiki/ui.md +245 -269
- package/knowledge/wiki/video.md +5 -5
- package/knowledge/wiki/world.md +36 -36
- package/package.json +4 -4
- package/schema/api.schema.json +1834 -305
- package/shell/platform.ts +5 -0
- package/shell/player.ts +8 -2
- package/shell/transport.ts +6 -0
- package/src/generated/abi.ts +37 -1
- package/src/geom.ts +260 -0
- package/src/index.ts +8 -1
- package/src/node/playtest-run.ts +1 -0
- package/src/platform-local.ts +2 -0
- package/src/playtest.ts +8 -0
- package/src/runtime.ts +87 -6
- package/src/ui-kit/settings.ts +9 -0
- package/src/web/shell.ts +1 -1
- package/src/web/worker.ts +2 -2
- package/types/bindings.json +697 -402
- package/types/index.d.ts +1045 -127
package/knowledge/wiki/render.md
CHANGED
|
@@ -14,7 +14,7 @@ module render {
|
|
|
14
14
|
# declarations follow, each quoted below
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
<sub>`api.ogt` line
|
|
17
|
+
<sub>`api.ogt` line 2243</sub>
|
|
18
18
|
|
|
19
19
|
## Contents
|
|
20
20
|
|
|
@@ -39,7 +39,10 @@ module render {
|
|
|
39
39
|
| [`og.SpotLight`](#record-SpotLight) | component | A cone of light along the entity's local -Z, as three.js SpotLight. |
|
|
40
40
|
| [`ToneMapping`](#type-ToneMapping) | enum | The curve from the lit HDR image to the display, as three.js toneMapping. RenderSettings.toneMapped false clamps instead, whichever is chosen. |
|
|
41
41
|
| [`ToneMapping()`](#column-ToneMapping) | column kind | A ToneMapping field: the variant's index. |
|
|
42
|
-
| [`
|
|
42
|
+
| [`GraphicsQuality`](#type-GraphicsQuality) | enum | A graphics preset: a row of RenderSettings' quality fields that og.render.applyQuality writes (its doc has the table). The settings screen (og.ui.settingsScreen) offers the three. |
|
|
43
|
+
| [`QualityPreset`](#type-QualityPreset) | enum | The preset RenderSettings' quality fields were last written with (RenderSettings.quality). |
|
|
44
|
+
| [`QualityPreset()`](#column-QualityPreset) | column kind | A QualityPreset field: the variant's index. |
|
|
45
|
+
| [`og.RenderSettings`](#record-RenderSettings) | resource | The frame's look after lighting: environment light, sky, bloom, exposure metering and tone mapping, and what the frame may cost: the quality fields (rectShadows to msaaSamples) that og.render.applyQuality sets from a graphics preset. Read after each tick; it never feeds back into the simulation. Camera.exposure is the manual exposure. |
|
|
43
46
|
| [`Lut`](#type-Lut) | handle | A colour lookup table for PostEffects.lut, from og.load.lut (a `.cube` file). |
|
|
44
47
|
| [`EnvironmentMap`](#type-EnvironmentMap) | handle | A prefiltered HDR environment map for Environment.map, from og.load.environment (an `.ogt` of `type environment` naming an equirectangular `.hdr` or `.exr`, a KTX2 cube map, or six face images). |
|
|
45
48
|
| [`ParticleEmitter`](#type-ParticleEmitter) | handle | A particle emitter asset for ParticleSystem.emitter, from og.load.emitter (an `.ogt` of `type particles`). |
|
|
@@ -109,6 +112,7 @@ module render {
|
|
|
109
112
|
| [`og.render.setMaterialShader`](#fn-setMaterialShader) | function | Give an existing material a material shader, or take it away with null: a loaded model's material (GltfInfo.materials) draws its skinned or static meshes through the hooks, with the shader's parameters at their defaults. Every mesh drawn with that material changes. |
|
|
110
113
|
| [`og.render.setShaderParam`](#fn-setShaderParam) | function | Set a parameter of a shader material, by the name its shader declares: a number for float, two to four for vec2, vec3, vec4 and color. |
|
|
111
114
|
| [`og.render.applyLook`](#fn-applyLook) | function | Apply a look, in GameDesc.start (or name it in GameDesc.look) or at any tick for a level's mood, a flashback or a photo mode: every resource the look names is replaced whole (the fields it sets take its values, the rest their defaults; PostEffects.flash and PostEffects.shakeTrauma, which game code animates, keep theirs), and the UI is configured with its style, keeping the rest of the last UiDesc. Resources it does not name are left as they are. Inside a system, the system must declare those resources among its writes. A look that switches the stylisation (a Stylise pass on or off, the pixel grid, retro 3D, the material style) starts TAA's history over, as a camera cut does, so its first frame holds no ghost of the old look. |
|
|
115
|
+
| [`og.render.applyQuality`](#fn-applyQuality) | function | Apply a graphics preset: write its row of RenderSettings' quality fields (the rest of RenderSettings keeps its values) and record it in RenderSettings.quality. The renderer reads those fields and nothing else, so what the probe and dump_world show of RenderSettings is what the next frame draws. The settings screen calls it when the player picks a preset (SettingsDesc.world); a game applies a saved preset itself at start. Inside a system, the system must declare RenderSettings among its writes. The rows: |
|
|
112
116
|
| [`og.render.look`](#fn-look) | function | The look last applied (by og.render.applyLook or GameDesc.look), as og.load.lookInfo describes it; null before any. |
|
|
113
117
|
| [`og.render.capabilities`](#fn-capabilities) | function | The renderer's tier and limits on this device. |
|
|
114
118
|
| [`og.render.text`](#fn-text) | function | Draw text this frame. Systems and commands may call it; the list is cleared at every tick, so submit it every tick the text should show. Multi-page fonts are drawn page by page with one layout. |
|
|
@@ -131,6 +135,30 @@ module render {
|
|
|
131
135
|
| [`og.render.ringGeometry`](#fn-ringGeometry) | function | Make a ring geometry for og.Mesh (one-sided: give it a double-sided material to see it from behind). |
|
|
132
136
|
| [`og.render.circleGeometry`](#fn-circleGeometry) | function | Make a circle geometry for og.Mesh (one-sided, as ringGeometry). |
|
|
133
137
|
| [`og.render.tubeGeometry`](#fn-tubeGeometry) | function | Make a tube along a curve through points for og.Mesh: pipes, cables, rails, a path shown as a ribbon of geometry. Physics can use it as a triangle-mesh Collider.mesh. |
|
|
138
|
+
| [`ShapePoints`](#type-ShapePoints) | struct | A shape as points, what og.Shape.extractPoints returns and what shapeGeometry, extrudeGeometry and sweepGeometry read: the outline, then each hole. A repeated closing point is dropped, as three.js drops it. |
|
|
139
|
+
| [`ShapeGeometryDesc`](#type-ShapeGeometryDesc) | desc struct | A flat shape with holes in the xy plane facing +Z, as three.js ShapeGeometry(shapes, curveSegments): triangulated by earcut (three.js's own port), the outline made clockwise and the holes counter-clockwise first, so its vertices and triangles are three.js's for the same shape. uvs are world x and y (v flipped to run down the image). |
|
|
140
|
+
| [`ExtrudeGeometryDesc`](#type-ExtrudeGeometryDesc) | desc struct | Shapes pushed along +Z, or along a path, as three.js ExtrudeGeometry(shapes, options) with its option names and defaults: a closed solid, its lids from earcut and its walls ring by ring, rounded by a bevel of bevelSegments rings at each face. Unindexed as three.js's (every triangle its own vertices, flat normals), three.js's vertex order and counts; uvs from three.js's WorldUVGenerator (v flipped to run down the image). |
|
|
141
|
+
| [`LatheGeometryDesc`](#type-LatheGeometryDesc) | desc struct | A profile turned round +Y, as three.js LatheGeometry(points, segments, phiStart, phiLength): vases, bottles, columns, wheels. three.js's vertices, indices and smooth normals; u round the axis, v along the profile (flipped to run down the image). A whole turn's seam meets exactly. |
|
|
142
|
+
| [`PolyhedronGeometryDesc`](#type-PolyhedronGeometryDesc) | desc struct | A polyhedron from vertices and faces, every face subdivided `detail` times and every vertex pushed onto the sphere of `radius`, as three.js PolyhedronGeometry(vertices, indices, radius, detail): unindexed, flat normals at detail 0 and the sphere's above, three.js's spherical uvs. |
|
|
143
|
+
| [`SolidGeometryDesc`](#type-SolidGeometryDesc) | desc struct | A regular solid, as three.js IcosahedronGeometry, DodecahedronGeometry, OctahedronGeometry and TetrahedronGeometry(radius, detail): PolyhedronGeometryDesc with the solid's own vertices and faces. An icosahedron at detail 2 or more is a sphere with even triangles. |
|
|
144
|
+
| [`SweepKey`](#type-SweepKey) | struct | A value at a fraction of a sweep's path: linear between keys, held before the first and past the last. |
|
|
145
|
+
| [`SweepGeometryDesc`](#type-SweepGeometryDesc) | desc struct | A section swept along a path, scaled and twisted over it: horns, tusks, handles, blades, tapered pipes, twisted columns (img2threejs's tapered sweep; three.js has no class for it). The section's x lies along the path's normal and y along its binormal (three.js's Frenet frames), rings evenly spaced along the path's length; u runs along the path, v round the section (flipped to run down the image), the sides smooth. An open path's ends are capped. |
|
|
146
|
+
| [`MirrorAxis`](#type-MirrorAxis) | enum | The world axis a part is mirrored along, after its placement. |
|
|
147
|
+
| [`GeometryPart`](#type-GeometryPart) | desc struct | A geometry placed as an Object3D is (scale, then rotate, then move), then mirrored: one part of og.render.mergeGeometries or an operand of og.render.csgGeometry. |
|
|
148
|
+
| [`CsgOp`](#type-CsgOp) | enum | A boolean operation on two solids. |
|
|
149
|
+
| [`CsgGeometryDesc`](#type-CsgGeometryDesc) | desc struct | Two closed geometries combined by a boolean operation, each placed first: a box with a hole bored through it, a dice, a window cut in a wall. The result is closed when both are (every edge shared by two triangles, wound opposite), every piece keeps its source's normals, uvs and colours (b's turned inside out where it is subtracted). Where a plane side or an edge crossing is decided, the decision is exact (Shewchuk's predicates), so every host makes the same cuts; faces that coincide keep one copy or none, as the operation says. |
|
|
150
|
+
| [`MergeGeometriesDesc`](#type-MergeGeometriesDesc) | desc struct | Geometries placed and merged into one, as three.js BufferGeometryUtils.mergeGeometries after applying each part's matrix: a prop of parts drawn in one draw, a mirrored half, an array (the same part at several placements). Normals follow each placement; a mirrored part turns its triangles so they still face out. Vertex colours are kept when any part has them. |
|
|
151
|
+
| [`og.render.shapeGeometry`](#fn-shapeGeometry) | function | Make a flat shape for og.Mesh (one-sided, as circleGeometry): an og.Shape with holes, or a points array. Physics can use it as a triangle-mesh Collider.mesh. |
|
|
152
|
+
| [`og.render.extrudeGeometry`](#fn-extrudeGeometry) | function | Make an extruded solid for og.Mesh: a three.js extrusion is a paste (`og.render.extrudeGeometry(world, { shapes: shape, depth: 0.2, bevelEnabled: true })`). Gears, signs, keys, logos, cookie cutters; along a path, a rail or a moulding. |
|
|
153
|
+
| [`og.render.latheGeometry`](#fn-latheGeometry) | function | Make a solid of revolution for og.Mesh: a profile turned round +Y. |
|
|
154
|
+
| [`og.render.polyhedronGeometry`](#fn-polyhedronGeometry) | function | Make a polyhedron from vertices and faces for og.Mesh, subdivided onto a sphere. |
|
|
155
|
+
| [`og.render.icosahedronGeometry`](#fn-icosahedronGeometry) | function | Make an icosahedron (twenty faces) for og.Mesh; with detail, a geodesic sphere. |
|
|
156
|
+
| [`og.render.dodecahedronGeometry`](#fn-dodecahedronGeometry) | function | Make a dodecahedron (twelve pentagons, thirty-six triangles) for og.Mesh. |
|
|
157
|
+
| [`og.render.octahedronGeometry`](#fn-octahedronGeometry) | function | Make an octahedron (eight faces) for og.Mesh. |
|
|
158
|
+
| [`og.render.tetrahedronGeometry`](#fn-tetrahedronGeometry) | function | Make a tetrahedron (four faces) for og.Mesh. |
|
|
159
|
+
| [`og.render.sweepGeometry`](#fn-sweepGeometry) | function | Make a section swept along a path for og.Mesh, tapered and twisted by keys. |
|
|
160
|
+
| [`og.render.csgGeometry`](#fn-csgGeometry) | function | Make the union, difference or intersection of two placed geometries for og.Mesh. Chain calls for more operands (a cube minus six spheres is six calls); each result is a geometry like any other. |
|
|
161
|
+
| [`og.render.mergeGeometries`](#fn-mergeGeometries) | function | Make one geometry of several placed ones for og.Mesh: one draw instead of many, mirrored halves, arrays. |
|
|
134
162
|
| [`LineMode`](#type-LineMode) | enum | How a line set's points join, as three.js's three line objects. |
|
|
135
163
|
| [`LineMode()`](#column-LineMode) | column kind | A LineMode field: the variant's index. |
|
|
136
164
|
| [`LinesDesc`](#type-LinesDesc) | desc struct | Lines through points, drawn this frame only (immediate mode, as og.render.sprite): submit them every tick they should show. three.js Line, LineSegments and LineLoop with a LineBasicMaterial or LineDashedMaterial, but any width on every tier (each segment is a quad in screen space with a feathered edge, so WebGL2's one-pixel lines do not apply). |
|
|
@@ -155,7 +183,7 @@ module render {
|
|
|
155
183
|
| [`Post()`](#column-Post) | column kind | A Post handle field (0 is none). |
|
|
156
184
|
| [`og.render.setPostParam`](#fn-setPostParam) | function | Set a parameter of a custom post pass, by the name its asset declares: a number for float, two to four for vec2, vec3, vec4 and color. Every frame it runs in reads it. |
|
|
157
185
|
| [`PostError`](#type-PostError) | struct | A custom post pass the device failed to compile. |
|
|
158
|
-
| [`og.render.postErrors`](#fn-postErrors) | function | The custom post passes PostEffects.
|
|
186
|
+
| [`og.render.postErrors`](#fn-postErrors) | function | The custom post passes PostEffects.custom names that failed to compile on this device, each skipped (the frame draws as without it). The cook validates every pass for each back end, so this is a device's own refusal. |
|
|
159
187
|
| [`VolumetricFog`](#type-VolumetricFog) | enum | How the device draws Fog.volumetric (RenderCapabilities.volumetricFog). |
|
|
160
188
|
| [`og.RectLight`](#record-RectLight) | component | A rectangle of light, as three.js RectAreaLight: width by height metres centred on the entity in its local xy plane, facing along its local -Z (aim it with transform.lookAt, as a spot), emitting color * intensity from its front, or from both faces with twoSided. Shaded with linearly transformed cosines (Heitz et al. 2016, three.js's tables), so its highlight on a glossy floor is the rectangle's shape and its light on a matte wall falls off as a real panel's does. With castShadow it casts a soft shadow in the frame; og bake lightmaps traces its exact soft shadows into the bounce light either way. |
|
|
161
189
|
| [`og.LightVolume`](#record-LightVolume) | component | A box of baked light probes (an irradiance volume): og bake lightmaps traces the light arriving from the scene (bounced off its static models, from the sky, from emissive surfaces) at a grid of points spacing metres apart inside it, as first-order spherical harmonics. Every mesh, model, skinned character and particle-lit surface drawn inside it that has no lightmap of its own takes its ambient light from the probes instead of the sky's, blended at the box's edge over one spacing: a ball rolling past a red wall turns red on that side. |
|
|
@@ -192,7 +220,7 @@ fn ribbon {
|
|
|
192
220
|
}
|
|
193
221
|
```
|
|
194
222
|
|
|
195
|
-
<sub>`api.ogt` line
|
|
223
|
+
<sub>`api.ogt` line 3584</sub>
|
|
196
224
|
|
|
197
225
|
<a id="fn-sprite"></a>
|
|
198
226
|
|
|
@@ -222,7 +250,7 @@ fn sprite {
|
|
|
222
250
|
}
|
|
223
251
|
```
|
|
224
252
|
|
|
225
|
-
<sub>`api.ogt` line
|
|
253
|
+
<sub>`api.ogt` line 3712</sub>
|
|
226
254
|
|
|
227
255
|
<a id="fn-floatingText"></a>
|
|
228
256
|
|
|
@@ -252,7 +280,7 @@ fn floatingText {
|
|
|
252
280
|
}
|
|
253
281
|
```
|
|
254
282
|
|
|
255
|
-
<sub>`api.ogt` line
|
|
283
|
+
<sub>`api.ogt` line 3892</sub>
|
|
256
284
|
|
|
257
285
|
<a id="fn-measureText"></a>
|
|
258
286
|
|
|
@@ -282,7 +310,7 @@ fn measureText {
|
|
|
282
310
|
}
|
|
283
311
|
```
|
|
284
312
|
|
|
285
|
-
<sub>`api.ogt` line
|
|
313
|
+
<sub>`api.ogt` line 3899</sub>
|
|
286
314
|
|
|
287
315
|
<a id="fn-boxGeometry"></a>
|
|
288
316
|
|
|
@@ -312,7 +340,7 @@ fn boxGeometry {
|
|
|
312
340
|
}
|
|
313
341
|
```
|
|
314
342
|
|
|
315
|
-
<sub>`api.ogt` line
|
|
343
|
+
<sub>`api.ogt` line 3968</sub>
|
|
316
344
|
|
|
317
345
|
<a id="fn-planeGeometry"></a>
|
|
318
346
|
|
|
@@ -342,7 +370,7 @@ fn planeGeometry {
|
|
|
342
370
|
}
|
|
343
371
|
```
|
|
344
372
|
|
|
345
|
-
<sub>`api.ogt` line
|
|
373
|
+
<sub>`api.ogt` line 3975</sub>
|
|
346
374
|
|
|
347
375
|
<a id="fn-sphereGeometry"></a>
|
|
348
376
|
|
|
@@ -372,7 +400,7 @@ fn sphereGeometry {
|
|
|
372
400
|
}
|
|
373
401
|
```
|
|
374
402
|
|
|
375
|
-
<sub>`api.ogt` line
|
|
403
|
+
<sub>`api.ogt` line 3982</sub>
|
|
376
404
|
|
|
377
405
|
<a id="fn-standardMaterial"></a>
|
|
378
406
|
|
|
@@ -402,7 +430,7 @@ fn standardMaterial {
|
|
|
402
430
|
}
|
|
403
431
|
```
|
|
404
432
|
|
|
405
|
-
<sub>`api.ogt` line
|
|
433
|
+
<sub>`api.ogt` line 4064</sub>
|
|
406
434
|
|
|
407
435
|
<a id="fn-updateMaterial"></a>
|
|
408
436
|
|
|
@@ -434,7 +462,7 @@ fn updateMaterial {
|
|
|
434
462
|
}
|
|
435
463
|
```
|
|
436
464
|
|
|
437
|
-
<sub>`api.ogt` line
|
|
465
|
+
<sub>`api.ogt` line 4071</sub>
|
|
438
466
|
|
|
439
467
|
<a id="fn-shaderMaterial"></a>
|
|
440
468
|
|
|
@@ -466,7 +494,7 @@ fn shaderMaterial {
|
|
|
466
494
|
}
|
|
467
495
|
```
|
|
468
496
|
|
|
469
|
-
<sub>`api.ogt` line
|
|
497
|
+
<sub>`api.ogt` line 4081</sub>
|
|
470
498
|
|
|
471
499
|
<a id="fn-setMaterialShader"></a>
|
|
472
500
|
|
|
@@ -498,7 +526,7 @@ fn setMaterialShader {
|
|
|
498
526
|
}
|
|
499
527
|
```
|
|
500
528
|
|
|
501
|
-
<sub>`api.ogt` line
|
|
529
|
+
<sub>`api.ogt` line 4089</sub>
|
|
502
530
|
|
|
503
531
|
<a id="fn-setShaderParam"></a>
|
|
504
532
|
|
|
@@ -532,7 +560,7 @@ fn setShaderParam {
|
|
|
532
560
|
}
|
|
533
561
|
```
|
|
534
562
|
|
|
535
|
-
<sub>`api.ogt` line
|
|
563
|
+
<sub>`api.ogt` line 4097</sub>
|
|
536
564
|
|
|
537
565
|
<a id="fn-applyLook"></a>
|
|
538
566
|
|
|
@@ -562,7 +590,61 @@ fn applyLook {
|
|
|
562
590
|
}
|
|
563
591
|
```
|
|
564
592
|
|
|
565
|
-
<sub>`api.ogt` line
|
|
593
|
+
<sub>`api.ogt` line 4106</sub>
|
|
594
|
+
|
|
595
|
+
<a id="fn-applyQuality"></a>
|
|
596
|
+
|
|
597
|
+
### `og.render.applyQuality`
|
|
598
|
+
|
|
599
|
+
Apply a graphics preset: write its row of RenderSettings' quality fields (the rest of RenderSettings keeps its values) and record it in RenderSettings.quality. The renderer reads those fields and nothing else, so what the probe and dump_world show of RenderSettings is what the next frame draws. The settings screen calls it when the player picks a preset (SettingsDesc.world); a game applies a saved preset itself at start. Inside a system, the system must declare RenderSettings among its writes. The rows:
|
|
600
|
+
|
|
601
|
+
| Field | low | medium | high |
|
|
602
|
+
|---|---|---|---|
|
|
603
|
+
| rectShadows | false | true | true |
|
|
604
|
+
| shadowedLights | 2 | 8 | 8 |
|
|
605
|
+
| shadowMapScale | 0.5 | 1 | 2 |
|
|
606
|
+
| volumetricFog | false | true | true |
|
|
607
|
+
| softParticles | false | true | true |
|
|
608
|
+
| screenSpaceReflections | false | true | true |
|
|
609
|
+
| ambientOcclusion | false | true | true |
|
|
610
|
+
| msaaSamples | 1 | 4 | 4 |
|
|
611
|
+
|
|
612
|
+
Medium is every field's default, the frame drawn before any preset.
|
|
613
|
+
|
|
614
|
+
```ts
|
|
615
|
+
og.render.applyQuality(world: World, preset: GraphicsQuality): Result<void>
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
| Parameter | Type | Optional | Doc |
|
|
619
|
+
|---|---|---|---|
|
|
620
|
+
| `world` | `World` | no | The world whose RenderSettings change. |
|
|
621
|
+
| `preset` | `GraphicsQuality` | no | The preset. |
|
|
622
|
+
|
|
623
|
+
**Returns** `Result<void>`: Refused for a world that is not alive, or inside a system that did not declare RenderSettings among its writes.
|
|
624
|
+
|
|
625
|
+
Binding symbol `og_render_apply_quality` · publish builds: kept
|
|
626
|
+
|
|
627
|
+
```ogt
|
|
628
|
+
fn applyQuality {
|
|
629
|
+
doc "Apply a graphics preset: write its row of RenderSettings' quality fields (the rest of RenderSettings keeps its values) and record it in RenderSettings.quality. The renderer reads those fields and nothing else, so what the probe and dump_world show of RenderSettings is what the next frame draws. The settings screen calls it when the player picks a preset (SettingsDesc.world); a game applies a saved preset itself at start. Inside a system, the system must declare RenderSettings among its writes. The rows:"
|
|
630
|
+
doc "| Field | low | medium | high |"
|
|
631
|
+
doc "|---|---|---|---|"
|
|
632
|
+
doc "| rectShadows | false | true | true |"
|
|
633
|
+
doc "| shadowedLights | 2 | 8 | 8 |"
|
|
634
|
+
doc "| shadowMapScale | 0.5 | 1 | 2 |"
|
|
635
|
+
doc "| volumetricFog | false | true | true |"
|
|
636
|
+
doc "| softParticles | false | true | true |"
|
|
637
|
+
doc "| screenSpaceReflections | false | true | true |"
|
|
638
|
+
doc "| ambientOcclusion | false | true | true |"
|
|
639
|
+
doc "| msaaSamples | 1 | 4 | 4 |"
|
|
640
|
+
doc "Medium is every field's default, the frame drawn before any preset."
|
|
641
|
+
param world World "The world whose RenderSettings change."
|
|
642
|
+
param preset GraphicsQuality "The preset."
|
|
643
|
+
returns Result.Void "Refused for a world that is not alive, or inside a system that did not declare RenderSettings among its writes."
|
|
644
|
+
}
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
<sub>`api.ogt` line 4113</sub>
|
|
566
648
|
|
|
567
649
|
<a id="fn-look"></a>
|
|
568
650
|
|
|
@@ -590,7 +672,7 @@ fn look {
|
|
|
590
672
|
}
|
|
591
673
|
```
|
|
592
674
|
|
|
593
|
-
<sub>`api.ogt` line
|
|
675
|
+
<sub>`api.ogt` line 4131</sub>
|
|
594
676
|
|
|
595
677
|
<a id="fn-capabilities"></a>
|
|
596
678
|
|
|
@@ -618,7 +700,7 @@ fn capabilities {
|
|
|
618
700
|
}
|
|
619
701
|
```
|
|
620
702
|
|
|
621
|
-
<sub>`api.ogt` line
|
|
703
|
+
<sub>`api.ogt` line 4137</sub>
|
|
622
704
|
|
|
623
705
|
<a id="fn-text"></a>
|
|
624
706
|
|
|
@@ -648,7 +730,7 @@ fn text {
|
|
|
648
730
|
}
|
|
649
731
|
```
|
|
650
732
|
|
|
651
|
-
<sub>`api.ogt` line
|
|
733
|
+
<sub>`api.ogt` line 4143</sub>
|
|
652
734
|
|
|
653
735
|
<a id="fn-bufferGeometry"></a>
|
|
654
736
|
|
|
@@ -678,7 +760,7 @@ fn bufferGeometry {
|
|
|
678
760
|
}
|
|
679
761
|
```
|
|
680
762
|
|
|
681
|
-
<sub>`api.ogt` line
|
|
763
|
+
<sub>`api.ogt` line 4181</sub>
|
|
682
764
|
|
|
683
765
|
<a id="fn-updateGeometry"></a>
|
|
684
766
|
|
|
@@ -710,7 +792,7 @@ fn updateGeometry {
|
|
|
710
792
|
}
|
|
711
793
|
```
|
|
712
794
|
|
|
713
|
-
<sub>`api.ogt` line
|
|
795
|
+
<sub>`api.ogt` line 4188</sub>
|
|
714
796
|
|
|
715
797
|
<a id="fn-geometryInfo"></a>
|
|
716
798
|
|
|
@@ -740,7 +822,7 @@ fn geometryInfo {
|
|
|
740
822
|
}
|
|
741
823
|
```
|
|
742
824
|
|
|
743
|
-
<sub>`api.ogt` line
|
|
825
|
+
<sub>`api.ogt` line 4196</sub>
|
|
744
826
|
|
|
745
827
|
<a id="fn-cylinderGeometry"></a>
|
|
746
828
|
|
|
@@ -770,7 +852,7 @@ fn cylinderGeometry {
|
|
|
770
852
|
}
|
|
771
853
|
```
|
|
772
854
|
|
|
773
|
-
<sub>`api.ogt` line
|
|
855
|
+
<sub>`api.ogt` line 4391</sub>
|
|
774
856
|
|
|
775
857
|
<a id="fn-coneGeometry"></a>
|
|
776
858
|
|
|
@@ -800,7 +882,7 @@ fn coneGeometry {
|
|
|
800
882
|
}
|
|
801
883
|
```
|
|
802
884
|
|
|
803
|
-
<sub>`api.ogt` line
|
|
885
|
+
<sub>`api.ogt` line 4398</sub>
|
|
804
886
|
|
|
805
887
|
<a id="fn-capsuleGeometry"></a>
|
|
806
888
|
|
|
@@ -830,7 +912,7 @@ fn capsuleGeometry {
|
|
|
830
912
|
}
|
|
831
913
|
```
|
|
832
914
|
|
|
833
|
-
<sub>`api.ogt` line
|
|
915
|
+
<sub>`api.ogt` line 4405</sub>
|
|
834
916
|
|
|
835
917
|
<a id="fn-torusGeometry"></a>
|
|
836
918
|
|
|
@@ -860,7 +942,7 @@ fn torusGeometry {
|
|
|
860
942
|
}
|
|
861
943
|
```
|
|
862
944
|
|
|
863
|
-
<sub>`api.ogt` line
|
|
945
|
+
<sub>`api.ogt` line 4412</sub>
|
|
864
946
|
|
|
865
947
|
<a id="fn-ringGeometry"></a>
|
|
866
948
|
|
|
@@ -890,7 +972,7 @@ fn ringGeometry {
|
|
|
890
972
|
}
|
|
891
973
|
```
|
|
892
974
|
|
|
893
|
-
<sub>`api.ogt` line
|
|
975
|
+
<sub>`api.ogt` line 4419</sub>
|
|
894
976
|
|
|
895
977
|
<a id="fn-circleGeometry"></a>
|
|
896
978
|
|
|
@@ -920,7 +1002,7 @@ fn circleGeometry {
|
|
|
920
1002
|
}
|
|
921
1003
|
```
|
|
922
1004
|
|
|
923
|
-
<sub>`api.ogt` line
|
|
1005
|
+
<sub>`api.ogt` line 4426</sub>
|
|
924
1006
|
|
|
925
1007
|
<a id="fn-tubeGeometry"></a>
|
|
926
1008
|
|
|
@@ -950,7 +1032,337 @@ fn tubeGeometry {
|
|
|
950
1032
|
}
|
|
951
1033
|
```
|
|
952
1034
|
|
|
953
|
-
<sub>`api.ogt` line
|
|
1035
|
+
<sub>`api.ogt` line 4433</sub>
|
|
1036
|
+
|
|
1037
|
+
<a id="fn-shapeGeometry"></a>
|
|
1038
|
+
|
|
1039
|
+
### `og.render.shapeGeometry`
|
|
1040
|
+
|
|
1041
|
+
Make a flat shape for og.Mesh (one-sided, as circleGeometry): an og.Shape with holes, or a points array. Physics can use it as a triangle-mesh Collider.mesh.
|
|
1042
|
+
|
|
1043
|
+
```ts
|
|
1044
|
+
og.render.shapeGeometry(world: World, desc?: ShapeGeometryDesc): Result<Geometry>
|
|
1045
|
+
```
|
|
1046
|
+
|
|
1047
|
+
| Parameter | Type | Optional | Doc |
|
|
1048
|
+
|---|---|---|---|
|
|
1049
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1050
|
+
| `desc` | `ShapeGeometryDesc` | yes | The shapes and their tessellation. |
|
|
1051
|
+
|
|
1052
|
+
**Returns** `Result<Geometry>`: Refused for a shape whose points are not finite or that triangulates to nothing.
|
|
1053
|
+
|
|
1054
|
+
Binding symbol `og_render_shape_geometry` · publish builds: kept
|
|
1055
|
+
|
|
1056
|
+
```ogt
|
|
1057
|
+
fn shapeGeometry {
|
|
1058
|
+
doc "Make a flat shape for og.Mesh (one-sided, as circleGeometry): an og.Shape with holes, or a points array. Physics can use it as a triangle-mesh Collider.mesh."
|
|
1059
|
+
param world World "The world whose renderer owns the geometry."
|
|
1060
|
+
param desc ShapeGeometryDesc "The shapes and their tessellation."
|
|
1061
|
+
returns Result.Geometry "Refused for a shape whose points are not finite or that triangulates to nothing."
|
|
1062
|
+
}
|
|
1063
|
+
```
|
|
1064
|
+
|
|
1065
|
+
<sub>`api.ogt` line 4670</sub>
|
|
1066
|
+
|
|
1067
|
+
<a id="fn-extrudeGeometry"></a>
|
|
1068
|
+
|
|
1069
|
+
### `og.render.extrudeGeometry`
|
|
1070
|
+
|
|
1071
|
+
Make an extruded solid for og.Mesh: a three.js extrusion is a paste (`og.render.extrudeGeometry(world, { shapes: shape, depth: 0.2, bevelEnabled: true })`). Gears, signs, keys, logos, cookie cutters; along a path, a rail or a moulding.
|
|
1072
|
+
|
|
1073
|
+
```ts
|
|
1074
|
+
og.render.extrudeGeometry(world: World, desc?: ExtrudeGeometryDesc): Result<Geometry>
|
|
1075
|
+
```
|
|
1076
|
+
|
|
1077
|
+
| Parameter | Type | Optional | Doc |
|
|
1078
|
+
|---|---|---|---|
|
|
1079
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1080
|
+
| `desc` | `ExtrudeGeometryDesc` | yes | The shapes, depth, bevel and path. |
|
|
1081
|
+
|
|
1082
|
+
**Returns** `Result<Geometry>`: Refused for a shape whose points are not finite or that triangulates to nothing, or an extrudePath that is not alive.
|
|
1083
|
+
|
|
1084
|
+
Binding symbol `og_render_extrude_geometry` · publish builds: kept
|
|
1085
|
+
|
|
1086
|
+
```ogt
|
|
1087
|
+
fn extrudeGeometry {
|
|
1088
|
+
doc "Make an extruded solid for og.Mesh: a three.js extrusion is a paste (`og.render.extrudeGeometry(world, { shapes: shape, depth: 0.2, bevelEnabled: true })`). Gears, signs, keys, logos, cookie cutters; along a path, a rail or a moulding."
|
|
1089
|
+
param world World "The world whose renderer owns the geometry."
|
|
1090
|
+
param desc ExtrudeGeometryDesc "The shapes, depth, bevel and path."
|
|
1091
|
+
returns Result.Geometry "Refused for a shape whose points are not finite or that triangulates to nothing, or an extrudePath that is not alive."
|
|
1092
|
+
}
|
|
1093
|
+
```
|
|
1094
|
+
|
|
1095
|
+
<sub>`api.ogt` line 4677</sub>
|
|
1096
|
+
|
|
1097
|
+
<a id="fn-latheGeometry"></a>
|
|
1098
|
+
|
|
1099
|
+
### `og.render.latheGeometry`
|
|
1100
|
+
|
|
1101
|
+
Make a solid of revolution for og.Mesh: a profile turned round +Y.
|
|
1102
|
+
|
|
1103
|
+
```ts
|
|
1104
|
+
og.render.latheGeometry(world: World, desc?: LatheGeometryDesc): Result<Geometry>
|
|
1105
|
+
```
|
|
1106
|
+
|
|
1107
|
+
| Parameter | Type | Optional | Doc |
|
|
1108
|
+
|---|---|---|---|
|
|
1109
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1110
|
+
| `desc` | `LatheGeometryDesc` | yes | The profile and the turn. |
|
|
1111
|
+
|
|
1112
|
+
**Returns** `Result<Geometry>`: Refused for fewer than two points or one that is not finite.
|
|
1113
|
+
|
|
1114
|
+
Binding symbol `og_render_lathe_geometry` · publish builds: kept
|
|
1115
|
+
|
|
1116
|
+
```ogt
|
|
1117
|
+
fn latheGeometry {
|
|
1118
|
+
doc "Make a solid of revolution for og.Mesh: a profile turned round +Y."
|
|
1119
|
+
param world World "The world whose renderer owns the geometry."
|
|
1120
|
+
param desc LatheGeometryDesc "The profile and the turn."
|
|
1121
|
+
returns Result.Geometry "Refused for fewer than two points or one that is not finite."
|
|
1122
|
+
}
|
|
1123
|
+
```
|
|
1124
|
+
|
|
1125
|
+
<sub>`api.ogt` line 4684</sub>
|
|
1126
|
+
|
|
1127
|
+
<a id="fn-polyhedronGeometry"></a>
|
|
1128
|
+
|
|
1129
|
+
### `og.render.polyhedronGeometry`
|
|
1130
|
+
|
|
1131
|
+
Make a polyhedron from vertices and faces for og.Mesh, subdivided onto a sphere.
|
|
1132
|
+
|
|
1133
|
+
```ts
|
|
1134
|
+
og.render.polyhedronGeometry(world: World, desc?: PolyhedronGeometryDesc): Result<Geometry>
|
|
1135
|
+
```
|
|
1136
|
+
|
|
1137
|
+
| Parameter | Type | Optional | Doc |
|
|
1138
|
+
|---|---|---|---|
|
|
1139
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1140
|
+
| `desc` | `PolyhedronGeometryDesc` | yes | The vertices, faces, radius and detail. |
|
|
1141
|
+
|
|
1142
|
+
**Returns** `Result<Geometry>`: Refused for no faces, an index past the vertices, or a count that is not a multiple of three.
|
|
1143
|
+
|
|
1144
|
+
Binding symbol `og_render_polyhedron_geometry` · publish builds: kept
|
|
1145
|
+
|
|
1146
|
+
```ogt
|
|
1147
|
+
fn polyhedronGeometry {
|
|
1148
|
+
doc "Make a polyhedron from vertices and faces for og.Mesh, subdivided onto a sphere."
|
|
1149
|
+
param world World "The world whose renderer owns the geometry."
|
|
1150
|
+
param desc PolyhedronGeometryDesc "The vertices, faces, radius and detail."
|
|
1151
|
+
returns Result.Geometry "Refused for no faces, an index past the vertices, or a count that is not a multiple of three."
|
|
1152
|
+
}
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
<sub>`api.ogt` line 4691</sub>
|
|
1156
|
+
|
|
1157
|
+
<a id="fn-icosahedronGeometry"></a>
|
|
1158
|
+
|
|
1159
|
+
### `og.render.icosahedronGeometry`
|
|
1160
|
+
|
|
1161
|
+
Make an icosahedron (twenty faces) for og.Mesh; with detail, a geodesic sphere.
|
|
1162
|
+
|
|
1163
|
+
```ts
|
|
1164
|
+
og.render.icosahedronGeometry(world: World, desc?: SolidGeometryDesc): Result<Geometry>
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1167
|
+
| Parameter | Type | Optional | Doc |
|
|
1168
|
+
|---|---|---|---|
|
|
1169
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1170
|
+
| `desc` | `SolidGeometryDesc` | yes | Its radius and detail. |
|
|
1171
|
+
|
|
1172
|
+
**Returns** `Result<Geometry>`.
|
|
1173
|
+
|
|
1174
|
+
Binding symbol `og_render_icosahedron_geometry` · publish builds: kept
|
|
1175
|
+
|
|
1176
|
+
```ogt
|
|
1177
|
+
fn icosahedronGeometry {
|
|
1178
|
+
doc "Make an icosahedron (twenty faces) for og.Mesh; with detail, a geodesic sphere."
|
|
1179
|
+
param world World "The world whose renderer owns the geometry."
|
|
1180
|
+
param desc SolidGeometryDesc "Its radius and detail."
|
|
1181
|
+
returns Result.Geometry
|
|
1182
|
+
}
|
|
1183
|
+
```
|
|
1184
|
+
|
|
1185
|
+
<sub>`api.ogt` line 4698</sub>
|
|
1186
|
+
|
|
1187
|
+
<a id="fn-dodecahedronGeometry"></a>
|
|
1188
|
+
|
|
1189
|
+
### `og.render.dodecahedronGeometry`
|
|
1190
|
+
|
|
1191
|
+
Make a dodecahedron (twelve pentagons, thirty-six triangles) for og.Mesh.
|
|
1192
|
+
|
|
1193
|
+
```ts
|
|
1194
|
+
og.render.dodecahedronGeometry(world: World, desc?: SolidGeometryDesc): Result<Geometry>
|
|
1195
|
+
```
|
|
1196
|
+
|
|
1197
|
+
| Parameter | Type | Optional | Doc |
|
|
1198
|
+
|---|---|---|---|
|
|
1199
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1200
|
+
| `desc` | `SolidGeometryDesc` | yes | Its radius and detail. |
|
|
1201
|
+
|
|
1202
|
+
**Returns** `Result<Geometry>`.
|
|
1203
|
+
|
|
1204
|
+
Binding symbol `og_render_dodecahedron_geometry` · publish builds: kept
|
|
1205
|
+
|
|
1206
|
+
```ogt
|
|
1207
|
+
fn dodecahedronGeometry {
|
|
1208
|
+
doc "Make a dodecahedron (twelve pentagons, thirty-six triangles) for og.Mesh."
|
|
1209
|
+
param world World "The world whose renderer owns the geometry."
|
|
1210
|
+
param desc SolidGeometryDesc "Its radius and detail."
|
|
1211
|
+
returns Result.Geometry
|
|
1212
|
+
}
|
|
1213
|
+
```
|
|
1214
|
+
|
|
1215
|
+
<sub>`api.ogt` line 4705</sub>
|
|
1216
|
+
|
|
1217
|
+
<a id="fn-octahedronGeometry"></a>
|
|
1218
|
+
|
|
1219
|
+
### `og.render.octahedronGeometry`
|
|
1220
|
+
|
|
1221
|
+
Make an octahedron (eight faces) for og.Mesh.
|
|
1222
|
+
|
|
1223
|
+
```ts
|
|
1224
|
+
og.render.octahedronGeometry(world: World, desc?: SolidGeometryDesc): Result<Geometry>
|
|
1225
|
+
```
|
|
1226
|
+
|
|
1227
|
+
| Parameter | Type | Optional | Doc |
|
|
1228
|
+
|---|---|---|---|
|
|
1229
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1230
|
+
| `desc` | `SolidGeometryDesc` | yes | Its radius and detail. |
|
|
1231
|
+
|
|
1232
|
+
**Returns** `Result<Geometry>`.
|
|
1233
|
+
|
|
1234
|
+
Binding symbol `og_render_octahedron_geometry` · publish builds: kept
|
|
1235
|
+
|
|
1236
|
+
```ogt
|
|
1237
|
+
fn octahedronGeometry {
|
|
1238
|
+
doc "Make an octahedron (eight faces) for og.Mesh."
|
|
1239
|
+
param world World "The world whose renderer owns the geometry."
|
|
1240
|
+
param desc SolidGeometryDesc "Its radius and detail."
|
|
1241
|
+
returns Result.Geometry
|
|
1242
|
+
}
|
|
1243
|
+
```
|
|
1244
|
+
|
|
1245
|
+
<sub>`api.ogt` line 4712</sub>
|
|
1246
|
+
|
|
1247
|
+
<a id="fn-tetrahedronGeometry"></a>
|
|
1248
|
+
|
|
1249
|
+
### `og.render.tetrahedronGeometry`
|
|
1250
|
+
|
|
1251
|
+
Make a tetrahedron (four faces) for og.Mesh.
|
|
1252
|
+
|
|
1253
|
+
```ts
|
|
1254
|
+
og.render.tetrahedronGeometry(world: World, desc?: SolidGeometryDesc): Result<Geometry>
|
|
1255
|
+
```
|
|
1256
|
+
|
|
1257
|
+
| Parameter | Type | Optional | Doc |
|
|
1258
|
+
|---|---|---|---|
|
|
1259
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1260
|
+
| `desc` | `SolidGeometryDesc` | yes | Its radius and detail. |
|
|
1261
|
+
|
|
1262
|
+
**Returns** `Result<Geometry>`.
|
|
1263
|
+
|
|
1264
|
+
Binding symbol `og_render_tetrahedron_geometry` · publish builds: kept
|
|
1265
|
+
|
|
1266
|
+
```ogt
|
|
1267
|
+
fn tetrahedronGeometry {
|
|
1268
|
+
doc "Make a tetrahedron (four faces) for og.Mesh."
|
|
1269
|
+
param world World "The world whose renderer owns the geometry."
|
|
1270
|
+
param desc SolidGeometryDesc "Its radius and detail."
|
|
1271
|
+
returns Result.Geometry
|
|
1272
|
+
}
|
|
1273
|
+
```
|
|
1274
|
+
|
|
1275
|
+
<sub>`api.ogt` line 4719</sub>
|
|
1276
|
+
|
|
1277
|
+
<a id="fn-sweepGeometry"></a>
|
|
1278
|
+
|
|
1279
|
+
### `og.render.sweepGeometry`
|
|
1280
|
+
|
|
1281
|
+
Make a section swept along a path for og.Mesh, tapered and twisted by keys.
|
|
1282
|
+
|
|
1283
|
+
```ts
|
|
1284
|
+
og.render.sweepGeometry(world: World, desc?: SweepGeometryDesc): Result<Geometry>
|
|
1285
|
+
```
|
|
1286
|
+
|
|
1287
|
+
| Parameter | Type | Optional | Doc |
|
|
1288
|
+
|---|---|---|---|
|
|
1289
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1290
|
+
| `desc` | `SweepGeometryDesc` | yes | The section, path, keys and caps. |
|
|
1291
|
+
|
|
1292
|
+
**Returns** `Result<Geometry>`: Refused for a path that is not alive, a section of fewer than three points or of no area, or a value that is not finite.
|
|
1293
|
+
|
|
1294
|
+
Binding symbol `og_render_sweep_geometry` · publish builds: kept
|
|
1295
|
+
|
|
1296
|
+
```ogt
|
|
1297
|
+
fn sweepGeometry {
|
|
1298
|
+
doc "Make a section swept along a path for og.Mesh, tapered and twisted by keys."
|
|
1299
|
+
param world World "The world whose renderer owns the geometry."
|
|
1300
|
+
param desc SweepGeometryDesc "The section, path, keys and caps."
|
|
1301
|
+
returns Result.Geometry "Refused for a path that is not alive, a section of fewer than three points or of no area, or a value that is not finite."
|
|
1302
|
+
}
|
|
1303
|
+
```
|
|
1304
|
+
|
|
1305
|
+
<sub>`api.ogt` line 4726</sub>
|
|
1306
|
+
|
|
1307
|
+
<a id="fn-csgGeometry"></a>
|
|
1308
|
+
|
|
1309
|
+
### `og.render.csgGeometry`
|
|
1310
|
+
|
|
1311
|
+
Make the union, difference or intersection of two placed geometries for og.Mesh. Chain calls for more operands (a cube minus six spheres is six calls); each result is a geometry like any other.
|
|
1312
|
+
|
|
1313
|
+
```ts
|
|
1314
|
+
og.render.csgGeometry(world: World, desc?: CsgGeometryDesc): Result<Geometry>
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
| Parameter | Type | Optional | Doc |
|
|
1318
|
+
|---|---|---|---|
|
|
1319
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1320
|
+
| `desc` | `CsgGeometryDesc` | yes | The operation and its operands. |
|
|
1321
|
+
|
|
1322
|
+
**Returns** `Result<Geometry>`: Refused for a dead geometry, a placement with a zero scale, or a position that is not finite.
|
|
1323
|
+
|
|
1324
|
+
Binding symbol `og_render_csg_geometry` · publish builds: kept
|
|
1325
|
+
|
|
1326
|
+
```ogt
|
|
1327
|
+
fn csgGeometry {
|
|
1328
|
+
doc "Make the union, difference or intersection of two placed geometries for og.Mesh. Chain calls for more operands (a cube minus six spheres is six calls); each result is a geometry like any other."
|
|
1329
|
+
param world World "The world whose renderer owns the geometry."
|
|
1330
|
+
param desc CsgGeometryDesc "The operation and its operands."
|
|
1331
|
+
returns Result.Geometry "Refused for a dead geometry, a placement with a zero scale, or a position that is not finite."
|
|
1332
|
+
}
|
|
1333
|
+
```
|
|
1334
|
+
|
|
1335
|
+
<sub>`api.ogt` line 4733</sub>
|
|
1336
|
+
|
|
1337
|
+
<a id="fn-mergeGeometries"></a>
|
|
1338
|
+
|
|
1339
|
+
### `og.render.mergeGeometries`
|
|
1340
|
+
|
|
1341
|
+
Make one geometry of several placed ones for og.Mesh: one draw instead of many, mirrored halves, arrays.
|
|
1342
|
+
|
|
1343
|
+
```ts
|
|
1344
|
+
og.render.mergeGeometries(world: World, desc?: MergeGeometriesDesc): Result<Geometry>
|
|
1345
|
+
```
|
|
1346
|
+
|
|
1347
|
+
| Parameter | Type | Optional | Doc |
|
|
1348
|
+
|---|---|---|---|
|
|
1349
|
+
| `world` | `World` | no | The world whose renderer owns the geometry. |
|
|
1350
|
+
| `desc` | `MergeGeometriesDesc` | yes | The parts and their placements. |
|
|
1351
|
+
|
|
1352
|
+
**Returns** `Result<Geometry>`: Refused for no parts, a dead geometry, or a placement with a zero scale.
|
|
1353
|
+
|
|
1354
|
+
Binding symbol `og_render_merge_geometries` · publish builds: kept
|
|
1355
|
+
|
|
1356
|
+
```ogt
|
|
1357
|
+
fn mergeGeometries {
|
|
1358
|
+
doc "Make one geometry of several placed ones for og.Mesh: one draw instead of many, mirrored halves, arrays."
|
|
1359
|
+
param world World "The world whose renderer owns the geometry."
|
|
1360
|
+
param desc MergeGeometriesDesc "The parts and their placements."
|
|
1361
|
+
returns Result.Geometry "Refused for no parts, a dead geometry, or a placement with a zero scale."
|
|
1362
|
+
}
|
|
1363
|
+
```
|
|
1364
|
+
|
|
1365
|
+
<sub>`api.ogt` line 4740</sub>
|
|
954
1366
|
|
|
955
1367
|
<a id="fn-lines"></a>
|
|
956
1368
|
|
|
@@ -980,7 +1392,7 @@ fn lines {
|
|
|
980
1392
|
}
|
|
981
1393
|
```
|
|
982
1394
|
|
|
983
|
-
<sub>`api.ogt` line
|
|
1395
|
+
<sub>`api.ogt` line 4798</sub>
|
|
984
1396
|
|
|
985
1397
|
<a id="fn-points"></a>
|
|
986
1398
|
|
|
@@ -1010,7 +1422,7 @@ fn points {
|
|
|
1010
1422
|
}
|
|
1011
1423
|
```
|
|
1012
1424
|
|
|
1013
|
-
<sub>`api.ogt` line
|
|
1425
|
+
<sub>`api.ogt` line 4833</sub>
|
|
1014
1426
|
|
|
1015
1427
|
<a id="fn-raycast"></a>
|
|
1016
1428
|
|
|
@@ -1042,7 +1454,7 @@ fn raycast {
|
|
|
1042
1454
|
}
|
|
1043
1455
|
```
|
|
1044
1456
|
|
|
1045
|
-
<sub>`api.ogt` line
|
|
1457
|
+
<sub>`api.ogt` line 4937</sub>
|
|
1046
1458
|
|
|
1047
1459
|
<a id="fn-renderTarget"></a>
|
|
1048
1460
|
|
|
@@ -1072,7 +1484,7 @@ fn renderTarget {
|
|
|
1072
1484
|
}
|
|
1073
1485
|
```
|
|
1074
1486
|
|
|
1075
|
-
<sub>`api.ogt` line
|
|
1487
|
+
<sub>`api.ogt` line 4993</sub>
|
|
1076
1488
|
|
|
1077
1489
|
<a id="fn-setPostParam"></a>
|
|
1078
1490
|
|
|
@@ -1106,13 +1518,13 @@ fn setPostParam {
|
|
|
1106
1518
|
}
|
|
1107
1519
|
```
|
|
1108
1520
|
|
|
1109
|
-
<sub>`api.ogt` line
|
|
1521
|
+
<sub>`api.ogt` line 5105</sub>
|
|
1110
1522
|
|
|
1111
1523
|
<a id="fn-postErrors"></a>
|
|
1112
1524
|
|
|
1113
1525
|
### `og.render.postErrors`
|
|
1114
1526
|
|
|
1115
|
-
The custom post passes PostEffects.
|
|
1527
|
+
The custom post passes PostEffects.custom names that failed to compile on this device, each skipped (the frame draws as without it). The cook validates every pass for each back end, so this is a device's own refusal.
|
|
1116
1528
|
|
|
1117
1529
|
```ts
|
|
1118
1530
|
og.render.postErrors(world: World): readonly PostError[]
|
|
@@ -1128,13 +1540,13 @@ Binding symbol `og_render_post_errors` · publish builds: kept
|
|
|
1128
1540
|
|
|
1129
1541
|
```ogt
|
|
1130
1542
|
fn postErrors {
|
|
1131
|
-
doc "The custom post passes PostEffects.
|
|
1543
|
+
doc "The custom post passes PostEffects.custom names that failed to compile on this device, each skipped (the frame draws as without it). The cook validates every pass for each back end, so this is a device's own refusal."
|
|
1132
1544
|
param world World "The world asked."
|
|
1133
1545
|
returns List.PostError
|
|
1134
1546
|
}
|
|
1135
1547
|
```
|
|
1136
1548
|
|
|
1137
|
-
<sub>`api.ogt` line
|
|
1549
|
+
<sub>`api.ogt` line 5120</sub>
|
|
1138
1550
|
|
|
1139
1551
|
<a id="fn-bakedLighting"></a>
|
|
1140
1552
|
|
|
@@ -1162,7 +1574,7 @@ fn bakedLighting {
|
|
|
1162
1574
|
}
|
|
1163
1575
|
```
|
|
1164
1576
|
|
|
1165
|
-
<sub>`api.ogt` line
|
|
1577
|
+
<sub>`api.ogt` line 5188</sub>
|
|
1166
1578
|
|
|
1167
1579
|
## Components, resources and events
|
|
1168
1580
|
|
|
@@ -1220,7 +1632,7 @@ component Mesh {
|
|
|
1220
1632
|
}
|
|
1221
1633
|
```
|
|
1222
1634
|
|
|
1223
|
-
<sub>`api.ogt` line
|
|
1635
|
+
<sub>`api.ogt` line 2511</sub>
|
|
1224
1636
|
|
|
1225
1637
|
<a id="record-DirectionalLight"></a>
|
|
1226
1638
|
|
|
@@ -1275,7 +1687,7 @@ component DirectionalLight {
|
|
|
1275
1687
|
}
|
|
1276
1688
|
```
|
|
1277
1689
|
|
|
1278
|
-
<sub>`api.ogt` line
|
|
1690
|
+
<sub>`api.ogt` line 2541</sub>
|
|
1279
1691
|
|
|
1280
1692
|
<a id="record-PointLight"></a>
|
|
1281
1693
|
|
|
@@ -1318,7 +1730,7 @@ component PointLight {
|
|
|
1318
1730
|
}
|
|
1319
1731
|
```
|
|
1320
1732
|
|
|
1321
|
-
<sub>`api.ogt` line
|
|
1733
|
+
<sub>`api.ogt` line 2573</sub>
|
|
1322
1734
|
|
|
1323
1735
|
<a id="record-SpotLight"></a>
|
|
1324
1736
|
|
|
@@ -1372,13 +1784,13 @@ component SpotLight {
|
|
|
1372
1784
|
}
|
|
1373
1785
|
```
|
|
1374
1786
|
|
|
1375
|
-
<sub>`api.ogt` line
|
|
1787
|
+
<sub>`api.ogt` line 2594</sub>
|
|
1376
1788
|
|
|
1377
1789
|
<a id="record-RenderSettings"></a>
|
|
1378
1790
|
|
|
1379
1791
|
### `og.RenderSettings` (resource)
|
|
1380
1792
|
|
|
1381
|
-
The frame's look after lighting: environment light, sky, bloom, exposure metering and tone mapping. Read after each tick; it never feeds back into the simulation. Camera.exposure is the manual exposure.
|
|
1793
|
+
The frame's look after lighting: environment light, sky, bloom, exposure metering and tone mapping, and what the frame may cost: the quality fields (rectShadows to msaaSamples) that og.render.applyQuality sets from a graphics preset. Read after each tick; it never feeds back into the simulation. Camera.exposure is the manual exposure.
|
|
1382
1794
|
|
|
1383
1795
|
Token `og.RenderSettings`, registered under the schema name `og.RenderSettings`; its value type is `RenderSettings`.
|
|
1384
1796
|
|
|
@@ -1397,12 +1809,21 @@ Token `og.RenderSettings`, registered under the schema name `og.RenderSettings`;
|
|
|
1397
1809
|
| `toneMapping` | `ToneMapping` | `"aces"` | — | — | — | Which curve tone maps the frame while toneMapped is true: aces (the default), agx or none. |
|
|
1398
1810
|
| `exposure` | `number` | `1` | 0 … 16 | — | tunable | A multiplier on every camera's Camera.exposure, as three.js renderer.toneMappingExposure is one for the whole frame: a look's brightness without touching the cameras; 1 leaves them as they are. |
|
|
1399
1811
|
| `decalAtlas` | `Texture` | `0` | — | — | — | The texture Decal components take their uvMin to uvMax region from; 0 draws decals as solid colour. |
|
|
1400
|
-
| `lodBias` | `number` | `1` | 0 … 16 | — | tunable | A multiplier on every model's projected
|
|
1812
|
+
| `lodBias` | `number` | `1` | 0 … 16 | — | tunable | A multiplier on every model's projected level-of-detail error when its level is picked (og.Model.lodBias multiplies it again): a level is drawn while its error, measured by the cook against the full mesh, covers less than a pixel on the screen. 1 is the engine's choice, 2 keeps full meshes twice as far, 0.5 simplifies sooner; 0 draws every model at its full mesh. |
|
|
1401
1813
|
| `bakedLighting` | `boolean` | `true` | — | — | — | Draw the baked lighting of the scenes that have it (og bake lightmaps): static models with their lightmaps, everything else inside a LightVolume with its probes. False draws every scene as if unbaked, its ambient light from the sky or the environment map: to compare, or to see the realtime lights alone. |
|
|
1814
|
+
| `quality` | `QualityPreset` | `"none"` | — | — | — | The graphics preset og.render.applyQuality last wrote into the quality fields below (rectShadows to msaaSamples), or none. A record for the settings screen and the probe: the renderer reads the fields, never this, so a field the game sets after the preset is drawn as set. |
|
|
1815
|
+
| `rectShadows` | `boolean` | `true` | — | — | — | Rect lights whose castShadow is on cast their soft shadows; false draws every rect light unshadowed, each keeping its castShadow for when this is on again. The low preset turns it off: a rect light's shadow is the costliest light in the frame. |
|
|
1816
|
+
| `shadowedLights` | `number` | `8` | 0 … 8 | — | — | At most this many point, spot and rect lights cast shadows in a frame, the brightest at the camera kept (RenderCapabilities.shadowedLights caps it); 0 casts none. The directional light's cascades are not counted. |
|
|
1817
|
+
| `shadowMapScale` | `number` | `1` | 0.125 … 4 | — | — | The shadow maps at this fraction of their full side: the directional light's cascades (2048 texels by default) and the local lights' layers (512), each kept within 64 texels and the device's limit (4096 for the cascades). Changing it makes the maps again at the next frame; RenderCapabilities.shadowMapSize is the cascades' side drawn. |
|
|
1818
|
+
| `volumetricFog` | `boolean` | `true` | — | — | — | An og.VolumetricFog is drawn lit, with its light shafts; false draws the same medium as plain distance and height fog. |
|
|
1819
|
+
| `softParticles` | `boolean` | `true` | — | — | — | Particles with a softDistance fade against the scene behind them; false draws them hard-edged and asks no depth prepass for them. |
|
|
1820
|
+
| `screenSpaceReflections` | `boolean` | `true` | — | — | — | PostEffects.ssr draws (on the full tier); false leaves smooth surfaces the reflection probes' and the environment's reflection. PostEffects keeps its settings either way. |
|
|
1821
|
+
| `ambientOcclusion` | `boolean` | `true` | — | — | — | PostEffects.ao darkens creases; false draws none. PostEffects keeps its settings either way. |
|
|
1822
|
+
| `msaaSamples` | `number` | `4` | 1 … 4 | — | — | Samples per pixel where the antialiasing multisamples (msaa, the WebGL2 tier's choice; RenderCapabilities.antialias): 4, or 1, which draws FXAA instead. TAA, FXAA and no antialiasing take one sample whatever it says. Changing it makes the multisampled targets and pipelines again at the next frame. |
|
|
1402
1823
|
|
|
1403
1824
|
```ogt
|
|
1404
1825
|
resource RenderSettings {
|
|
1405
|
-
doc "The frame's look after lighting: environment light, sky, bloom, exposure metering and tone mapping. Read after each tick; it never feeds back into the simulation. Camera.exposure is the manual exposure."
|
|
1826
|
+
doc "The frame's look after lighting: environment light, sky, bloom, exposure metering and tone mapping, and what the frame may cost: the quality fields (rectShadows to msaaSamples) that og.render.applyQuality sets from a graphics preset. Read after each tick; it never feeds back into the simulation. Camera.exposure is the manual exposure."
|
|
1406
1827
|
field environmentIntensity f32 "The strength of the image-based ambient light from the sky; og.Environment.intensity takes its place while an environment map is set." {
|
|
1407
1828
|
default 0.55
|
|
1408
1829
|
min 0
|
|
@@ -1448,7 +1869,7 @@ resource RenderSettings {
|
|
|
1448
1869
|
tunable true
|
|
1449
1870
|
}
|
|
1450
1871
|
field decalAtlas Texture "The texture Decal components take their uvMin to uvMax region from; 0 draws decals as solid colour."
|
|
1451
|
-
field lodBias f32 "A multiplier on every model's projected
|
|
1872
|
+
field lodBias f32 "A multiplier on every model's projected level-of-detail error when its level is picked (og.Model.lodBias multiplies it again): a level is drawn while its error, measured by the cook against the full mesh, covers less than a pixel on the screen. 1 is the engine's choice, 2 keeps full meshes twice as far, 0.5 simplifies sooner; 0 draws every model at its full mesh." {
|
|
1452
1873
|
default 1
|
|
1453
1874
|
min 0
|
|
1454
1875
|
max 16
|
|
@@ -1457,10 +1878,41 @@ resource RenderSettings {
|
|
|
1457
1878
|
field bakedLighting bool "Draw the baked lighting of the scenes that have it (og bake lightmaps): static models with their lightmaps, everything else inside a LightVolume with its probes. False draws every scene as if unbaked, its ambient light from the sky or the environment map: to compare, or to see the realtime lights alone." {
|
|
1458
1879
|
default true
|
|
1459
1880
|
}
|
|
1881
|
+
field quality QualityPreset "The graphics preset og.render.applyQuality last wrote into the quality fields below (rectShadows to msaaSamples), or none. A record for the settings screen and the probe: the renderer reads the fields, never this, so a field the game sets after the preset is drawn as set."
|
|
1882
|
+
field rectShadows bool "Rect lights whose castShadow is on cast their soft shadows; false draws every rect light unshadowed, each keeping its castShadow for when this is on again. The low preset turns it off: a rect light's shadow is the costliest light in the frame." {
|
|
1883
|
+
default true
|
|
1884
|
+
}
|
|
1885
|
+
field shadowedLights u32 "At most this many point, spot and rect lights cast shadows in a frame, the brightest at the camera kept (RenderCapabilities.shadowedLights caps it); 0 casts none. The directional light's cascades are not counted." {
|
|
1886
|
+
default 8
|
|
1887
|
+
min 0
|
|
1888
|
+
max 8
|
|
1889
|
+
}
|
|
1890
|
+
field shadowMapScale f32 "The shadow maps at this fraction of their full side: the directional light's cascades (2048 texels by default) and the local lights' layers (512), each kept within 64 texels and the device's limit (4096 for the cascades). Changing it makes the maps again at the next frame; RenderCapabilities.shadowMapSize is the cascades' side drawn." {
|
|
1891
|
+
default 1
|
|
1892
|
+
min 0.125
|
|
1893
|
+
max 4
|
|
1894
|
+
}
|
|
1895
|
+
field volumetricFog bool "An og.VolumetricFog is drawn lit, with its light shafts; false draws the same medium as plain distance and height fog." {
|
|
1896
|
+
default true
|
|
1897
|
+
}
|
|
1898
|
+
field softParticles bool "Particles with a softDistance fade against the scene behind them; false draws them hard-edged and asks no depth prepass for them." {
|
|
1899
|
+
default true
|
|
1900
|
+
}
|
|
1901
|
+
field screenSpaceReflections bool "PostEffects.ssr draws (on the full tier); false leaves smooth surfaces the reflection probes' and the environment's reflection. PostEffects keeps its settings either way." {
|
|
1902
|
+
default true
|
|
1903
|
+
}
|
|
1904
|
+
field ambientOcclusion bool "PostEffects.ao darkens creases; false draws none. PostEffects keeps its settings either way." {
|
|
1905
|
+
default true
|
|
1906
|
+
}
|
|
1907
|
+
field msaaSamples u32 "Samples per pixel where the antialiasing multisamples (msaa, the WebGL2 tier's choice; RenderCapabilities.antialias): 4, or 1, which draws FXAA instead. TAA, FXAA and no antialiasing take one sample whatever it says. Changing it makes the multisampled targets and pipelines again at the next frame." {
|
|
1908
|
+
default 4
|
|
1909
|
+
min 1
|
|
1910
|
+
max 4
|
|
1911
|
+
}
|
|
1460
1912
|
}
|
|
1461
1913
|
```
|
|
1462
1914
|
|
|
1463
|
-
<sub>`api.ogt` line
|
|
1915
|
+
<sub>`api.ogt` line 2662</sub>
|
|
1464
1916
|
|
|
1465
1917
|
<a id="record-Environment"></a>
|
|
1466
1918
|
|
|
@@ -1500,7 +1952,7 @@ resource Environment {
|
|
|
1500
1952
|
}
|
|
1501
1953
|
```
|
|
1502
1954
|
|
|
1503
|
-
<sub>`api.ogt` line
|
|
1955
|
+
<sub>`api.ogt` line 2778</sub>
|
|
1504
1956
|
|
|
1505
1957
|
<a id="record-PostEffects"></a>
|
|
1506
1958
|
|
|
@@ -1565,14 +2017,7 @@ Token `og.PostEffects`, registered under the schema name `og.PostEffects`; its v
|
|
|
1565
2017
|
| `ssrSteps` | `number` | `32` | 4 … 128 | — | — | Steps along each ray (a binary refinement follows the hit). |
|
|
1566
2018
|
| `ssrFade` | `number` | `0.15` | 0 … 1 | `ratio` | — | The fraction of the screen's edge, and of the march's end, over which a reflection fades into the probes'. |
|
|
1567
2019
|
| `ssrIntensity` | `number` | `1` | 0 … 1 | — | tunable | How much of the reflection is laid over the frame; 1 is physically weighted by the surface's Fresnel. |
|
|
1568
|
-
| `
|
|
1569
|
-
| `custom2` | `Post` | `0` | — | — | — | The second custom post pass, over the first's output (0 skips the slot). |
|
|
1570
|
-
| `custom3` | `Post` | `0` | — | — | — | The third custom post pass. |
|
|
1571
|
-
| `custom4` | `Post` | `0` | — | — | — | The fourth custom post pass. |
|
|
1572
|
-
| `custom5` | `Post` | `0` | — | — | — | The fifth custom post pass. |
|
|
1573
|
-
| `custom6` | `Post` | `0` | — | — | — | The sixth custom post pass. |
|
|
1574
|
-
| `custom7` | `Post` | `0` | — | — | — | The seventh custom post pass. |
|
|
1575
|
-
| `custom8` | `Post` | `0` | — | — | — | The eighth and last custom post pass, over every one before it. |
|
|
2020
|
+
| `custom` | `readonly Post[]` | `[]` | — | — | a list of at most 8 `Post` (`List.Post.8`): reads a frozen copy, writes a whole array | The custom post passes, in order (og.load.post, `type post` assets): at most RenderCapabilities.maxCustomPosts (8, og-render's MAX_CUSTOM_POSTS). Each runs over the one before it (the lit image for the first), after depth of field and motion blur and before exposure, bloom and the tone curve, and reads the lit image, depth and normals too (any pass turns the prepass on). Write the whole list: `post.custom = [grade, crt]`, `post.custom = []`; a look gives it on one line (`custom "post/tint.ogt" "post/crt.ogt"`). A 0 in it is skipped. Its parameters are set with og.render.setPostParam. A pass the device fails to compile is reported (og.render.postErrors) and skipped. |
|
|
1576
2021
|
|
|
1577
2022
|
```ogt
|
|
1578
2023
|
resource PostEffects {
|
|
@@ -1778,18 +2223,11 @@ resource PostEffects {
|
|
|
1778
2223
|
max 1
|
|
1779
2224
|
tunable true
|
|
1780
2225
|
}
|
|
1781
|
-
field
|
|
1782
|
-
field custom2 Post "The second custom post pass, over the first's output (0 skips the slot)."
|
|
1783
|
-
field custom3 Post "The third custom post pass."
|
|
1784
|
-
field custom4 Post "The fourth custom post pass."
|
|
1785
|
-
field custom5 Post "The fifth custom post pass."
|
|
1786
|
-
field custom6 Post "The sixth custom post pass."
|
|
1787
|
-
field custom7 Post "The seventh custom post pass."
|
|
1788
|
-
field custom8 Post "The eighth and last custom post pass, over every one before it."
|
|
2226
|
+
field custom List.Post.8 "The custom post passes, in order (og.load.post, `type post` assets): at most RenderCapabilities.maxCustomPosts (8, og-render's MAX_CUSTOM_POSTS). Each runs over the one before it (the lit image for the first), after depth of field and motion blur and before exposure, bloom and the tone curve, and reads the lit image, depth and normals too (any pass turns the prepass on). Write the whole list: `post.custom = [grade, crt]`, `post.custom = []`; a look gives it on one line (`custom \"post/tint.ogt\" \"post/crt.ogt\"`). A 0 in it is skipped. Its parameters are set with og.render.setPostParam. A pass the device fails to compile is reported (og.render.postErrors) and skipped."
|
|
1789
2227
|
}
|
|
1790
2228
|
```
|
|
1791
2229
|
|
|
1792
|
-
<sub>`api.ogt` line
|
|
2230
|
+
<sub>`api.ogt` line 2858</sub>
|
|
1793
2231
|
|
|
1794
2232
|
<a id="record-Stylise"></a>
|
|
1795
2233
|
|
|
@@ -2044,7 +2482,7 @@ resource Stylise {
|
|
|
2044
2482
|
}
|
|
2045
2483
|
```
|
|
2046
2484
|
|
|
2047
|
-
<sub>`api.ogt` line
|
|
2485
|
+
<sub>`api.ogt` line 3107</sub>
|
|
2048
2486
|
|
|
2049
2487
|
<a id="record-MaterialStyle"></a>
|
|
2050
2488
|
|
|
@@ -2109,7 +2547,7 @@ resource MaterialStyle {
|
|
|
2109
2547
|
}
|
|
2110
2548
|
```
|
|
2111
2549
|
|
|
2112
|
-
<sub>`api.ogt` line
|
|
2550
|
+
<sub>`api.ogt` line 3300</sub>
|
|
2113
2551
|
|
|
2114
2552
|
<a id="record-Lighting2D"></a>
|
|
2115
2553
|
|
|
@@ -2148,7 +2586,7 @@ resource Lighting2D {
|
|
|
2148
2586
|
}
|
|
2149
2587
|
```
|
|
2150
2588
|
|
|
2151
|
-
<sub>`api.ogt` line
|
|
2589
|
+
<sub>`api.ogt` line 3350</sub>
|
|
2152
2590
|
|
|
2153
2591
|
<a id="record-Light2D"></a>
|
|
2154
2592
|
|
|
@@ -2199,7 +2637,7 @@ component Light2D {
|
|
|
2199
2637
|
}
|
|
2200
2638
|
```
|
|
2201
2639
|
|
|
2202
|
-
<sub>`api.ogt` line
|
|
2640
|
+
<sub>`api.ogt` line 3369</sub>
|
|
2203
2641
|
|
|
2204
2642
|
<a id="record-Occluder2D"></a>
|
|
2205
2643
|
|
|
@@ -2230,7 +2668,7 @@ component Occluder2D {
|
|
|
2230
2668
|
}
|
|
2231
2669
|
```
|
|
2232
2670
|
|
|
2233
|
-
<sub>`api.ogt` line
|
|
2671
|
+
<sub>`api.ogt` line 3399</sub>
|
|
2234
2672
|
|
|
2235
2673
|
<a id="record-Decal"></a>
|
|
2236
2674
|
|
|
@@ -2285,7 +2723,7 @@ component Decal {
|
|
|
2285
2723
|
}
|
|
2286
2724
|
```
|
|
2287
2725
|
|
|
2288
|
-
<sub>`api.ogt` line
|
|
2726
|
+
<sub>`api.ogt` line 3413</sub>
|
|
2289
2727
|
|
|
2290
2728
|
<a id="record-ParticleSystem"></a>
|
|
2291
2729
|
|
|
@@ -2322,7 +2760,7 @@ component ParticleSystem {
|
|
|
2322
2760
|
}
|
|
2323
2761
|
```
|
|
2324
2762
|
|
|
2325
|
-
<sub>`api.ogt` line
|
|
2763
|
+
<sub>`api.ogt` line 3447</sub>
|
|
2326
2764
|
|
|
2327
2765
|
<a id="record-Trail"></a>
|
|
2328
2766
|
|
|
@@ -2398,7 +2836,7 @@ component Trail {
|
|
|
2398
2836
|
}
|
|
2399
2837
|
```
|
|
2400
2838
|
|
|
2401
|
-
<sub>`api.ogt` line
|
|
2839
|
+
<sub>`api.ogt` line 3463</sub>
|
|
2402
2840
|
|
|
2403
2841
|
<a id="record-Beam"></a>
|
|
2404
2842
|
|
|
@@ -2464,7 +2902,7 @@ component Beam {
|
|
|
2464
2902
|
}
|
|
2465
2903
|
```
|
|
2466
2904
|
|
|
2467
|
-
<sub>`api.ogt` line
|
|
2905
|
+
<sub>`api.ogt` line 3511</sub>
|
|
2468
2906
|
|
|
2469
2907
|
<a id="record-Sprite"></a>
|
|
2470
2908
|
|
|
@@ -2599,7 +3037,7 @@ component Sprite {
|
|
|
2599
3037
|
}
|
|
2600
3038
|
```
|
|
2601
3039
|
|
|
2602
|
-
<sub>`api.ogt` line
|
|
3040
|
+
<sub>`api.ogt` line 3719</sub>
|
|
2603
3041
|
|
|
2604
3042
|
<a id="record-Afterimage"></a>
|
|
2605
3043
|
|
|
@@ -2647,7 +3085,7 @@ component Afterimage {
|
|
|
2647
3085
|
}
|
|
2648
3086
|
```
|
|
2649
3087
|
|
|
2650
|
-
<sub>`api.ogt` line
|
|
3088
|
+
<sub>`api.ogt` line 3807</sub>
|
|
2651
3089
|
|
|
2652
3090
|
<a id="record-ReflectionProbe"></a>
|
|
2653
3091
|
|
|
@@ -2700,7 +3138,7 @@ component ReflectionProbe {
|
|
|
2700
3138
|
}
|
|
2701
3139
|
```
|
|
2702
3140
|
|
|
2703
|
-
<sub>`api.ogt` line
|
|
3141
|
+
<sub>`api.ogt` line 4032</sub>
|
|
2704
3142
|
|
|
2705
3143
|
<a id="record-Lines"></a>
|
|
2706
3144
|
|
|
@@ -2763,7 +3201,7 @@ component Lines {
|
|
|
2763
3201
|
}
|
|
2764
3202
|
```
|
|
2765
3203
|
|
|
2766
|
-
<sub>`api.ogt` line
|
|
3204
|
+
<sub>`api.ogt` line 4840</sub>
|
|
2767
3205
|
|
|
2768
3206
|
<a id="record-Points"></a>
|
|
2769
3207
|
|
|
@@ -2817,7 +3255,7 @@ component Points {
|
|
|
2817
3255
|
}
|
|
2818
3256
|
```
|
|
2819
3257
|
|
|
2820
|
-
<sub>`api.ogt` line
|
|
3258
|
+
<sub>`api.ogt` line 4877</sub>
|
|
2821
3259
|
|
|
2822
3260
|
<a id="record-CameraView"></a>
|
|
2823
3261
|
|
|
@@ -2924,7 +3362,7 @@ component CameraView {
|
|
|
2924
3362
|
}
|
|
2925
3363
|
```
|
|
2926
3364
|
|
|
2927
|
-
<sub>`api.ogt` line
|
|
3365
|
+
<sub>`api.ogt` line 5000</sub>
|
|
2928
3366
|
|
|
2929
3367
|
<a id="record-Mirror"></a>
|
|
2930
3368
|
|
|
@@ -2969,7 +3407,7 @@ component Mirror {
|
|
|
2969
3407
|
}
|
|
2970
3408
|
```
|
|
2971
3409
|
|
|
2972
|
-
<sub>`api.ogt` line
|
|
3410
|
+
<sub>`api.ogt` line 5072</sub>
|
|
2973
3411
|
|
|
2974
3412
|
<a id="record-RectLight"></a>
|
|
2975
3413
|
|
|
@@ -3019,7 +3457,7 @@ component RectLight {
|
|
|
3019
3457
|
}
|
|
3020
3458
|
```
|
|
3021
3459
|
|
|
3022
|
-
<sub>`api.ogt` line
|
|
3460
|
+
<sub>`api.ogt` line 5134</sub>
|
|
3023
3461
|
|
|
3024
3462
|
<a id="record-LightVolume"></a>
|
|
3025
3463
|
|
|
@@ -3053,7 +3491,7 @@ component LightVolume {
|
|
|
3053
3491
|
}
|
|
3054
3492
|
```
|
|
3055
3493
|
|
|
3056
|
-
<sub>`api.ogt` line
|
|
3494
|
+
<sub>`api.ogt` line 5161</sub>
|
|
3057
3495
|
|
|
3058
3496
|
## Types
|
|
3059
3497
|
|
|
@@ -3069,7 +3507,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3069
3507
|
handle Geometry "Vertex and index data, as three.js BufferGeometry. Comes from a loaded glTF."
|
|
3070
3508
|
```
|
|
3071
3509
|
|
|
3072
|
-
<sub>`api.ogt` line
|
|
3510
|
+
<sub>`api.ogt` line 2247</sub>
|
|
3073
3511
|
|
|
3074
3512
|
<a id="type-Material"></a>
|
|
3075
3513
|
|
|
@@ -3083,7 +3521,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3083
3521
|
handle Material "A material instance."
|
|
3084
3522
|
```
|
|
3085
3523
|
|
|
3086
|
-
<sub>`api.ogt` line
|
|
3524
|
+
<sub>`api.ogt` line 2248</sub>
|
|
3087
3525
|
|
|
3088
3526
|
<a id="type-Texture"></a>
|
|
3089
3527
|
|
|
@@ -3097,7 +3535,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3097
3535
|
handle Texture "A cooked texture."
|
|
3098
3536
|
```
|
|
3099
3537
|
|
|
3100
|
-
<sub>`api.ogt` line
|
|
3538
|
+
<sub>`api.ogt` line 2249</sub>
|
|
3101
3539
|
|
|
3102
3540
|
<a id="type-Side"></a>
|
|
3103
3541
|
|
|
@@ -3122,7 +3560,7 @@ enum Side {
|
|
|
3122
3560
|
}
|
|
3123
3561
|
```
|
|
3124
3562
|
|
|
3125
|
-
<sub>`api.ogt` line
|
|
3563
|
+
<sub>`api.ogt` line 2265</sub>
|
|
3126
3564
|
|
|
3127
3565
|
<a id="type-RenderTier"></a>
|
|
3128
3566
|
|
|
@@ -3153,7 +3591,7 @@ enum RenderTier {
|
|
|
3153
3591
|
}
|
|
3154
3592
|
```
|
|
3155
3593
|
|
|
3156
|
-
<sub>`api.ogt` line
|
|
3594
|
+
<sub>`api.ogt` line 2272</sub>
|
|
3157
3595
|
|
|
3158
3596
|
<a id="type-Antialias"></a>
|
|
3159
3597
|
|
|
@@ -3182,7 +3620,7 @@ enum Antialias {
|
|
|
3182
3620
|
}
|
|
3183
3621
|
```
|
|
3184
3622
|
|
|
3185
|
-
<sub>`api.ogt` line
|
|
3623
|
+
<sub>`api.ogt` line 2282</sub>
|
|
3186
3624
|
|
|
3187
3625
|
<a id="type-PointShadows"></a>
|
|
3188
3626
|
|
|
@@ -3207,7 +3645,7 @@ enum PointShadows {
|
|
|
3207
3645
|
}
|
|
3208
3646
|
```
|
|
3209
3647
|
|
|
3210
|
-
<sub>`api.ogt` line
|
|
3648
|
+
<sub>`api.ogt` line 2291</sub>
|
|
3211
3649
|
|
|
3212
3650
|
<a id="type-TaaHistory"></a>
|
|
3213
3651
|
|
|
@@ -3230,7 +3668,7 @@ enum TaaHistory {
|
|
|
3230
3668
|
}
|
|
3231
3669
|
```
|
|
3232
3670
|
|
|
3233
|
-
<sub>`api.ogt` line
|
|
3671
|
+
<sub>`api.ogt` line 2298</sub>
|
|
3234
3672
|
|
|
3235
3673
|
<a id="type-DebugView"></a>
|
|
3236
3674
|
|
|
@@ -3259,7 +3697,7 @@ enum DebugView {
|
|
|
3259
3697
|
}
|
|
3260
3698
|
```
|
|
3261
3699
|
|
|
3262
|
-
<sub>`api.ogt` line
|
|
3700
|
+
<sub>`api.ogt` line 2304</sub>
|
|
3263
3701
|
|
|
3264
3702
|
<a id="type-RenderOptions"></a>
|
|
3265
3703
|
|
|
@@ -3299,7 +3737,7 @@ struct RenderOptions {
|
|
|
3299
3737
|
}
|
|
3300
3738
|
```
|
|
3301
3739
|
|
|
3302
|
-
<sub>`api.ogt` line
|
|
3740
|
+
<sub>`api.ogt` line 2313</sub>
|
|
3303
3741
|
|
|
3304
3742
|
<a id="type-StandardMaterialDesc"></a>
|
|
3305
3743
|
|
|
@@ -3569,7 +4007,7 @@ struct StandardMaterialDesc {
|
|
|
3569
4007
|
}
|
|
3570
4008
|
```
|
|
3571
4009
|
|
|
3572
|
-
<sub>`api.ogt` line
|
|
4010
|
+
<sub>`api.ogt` line 2332</sub>
|
|
3573
4011
|
|
|
3574
4012
|
<a id="type-ToneMapping"></a>
|
|
3575
4013
|
|
|
@@ -3594,7 +4032,59 @@ enum ToneMapping {
|
|
|
3594
4032
|
}
|
|
3595
4033
|
```
|
|
3596
4034
|
|
|
3597
|
-
<sub>`api.ogt` line
|
|
4035
|
+
<sub>`api.ogt` line 2626</sub>
|
|
4036
|
+
|
|
4037
|
+
<a id="type-GraphicsQuality"></a>
|
|
4038
|
+
|
|
4039
|
+
### `GraphicsQuality` (enum)
|
|
4040
|
+
|
|
4041
|
+
A graphics preset: a row of RenderSettings' quality fields that og.render.applyQuality writes (its doc has the table). The settings screen (og.ui.settingsScreen) offers the three.
|
|
4042
|
+
|
|
4043
|
+
A string: one of the variants below. The zero value is `"medium"`.
|
|
4044
|
+
|
|
4045
|
+
| Variant | Doc |
|
|
4046
|
+
|---|---|
|
|
4047
|
+
| `"medium"` | The full frame: every quality field at its default. |
|
|
4048
|
+
| `"low"` | The cheapest frame: no rect-light shadows, two shadowed lights, half-size shadow maps, plain fog, hard particles, no screen-space reflections or ambient occlusion, FXAA for MSAA. |
|
|
4049
|
+
| `"high"` | The full frame with the shadow maps at twice their side. |
|
|
4050
|
+
|
|
4051
|
+
```ogt
|
|
4052
|
+
enum GraphicsQuality {
|
|
4053
|
+
doc "A graphics preset: a row of RenderSettings' quality fields that og.render.applyQuality writes (its doc has the table). The settings screen (og.ui.settingsScreen) offers the three."
|
|
4054
|
+
variant medium "The full frame: every quality field at its default."
|
|
4055
|
+
variant low "The cheapest frame: no rect-light shadows, two shadowed lights, half-size shadow maps, plain fog, hard particles, no screen-space reflections or ambient occlusion, FXAA for MSAA."
|
|
4056
|
+
variant high "The full frame with the shadow maps at twice their side."
|
|
4057
|
+
}
|
|
4058
|
+
```
|
|
4059
|
+
|
|
4060
|
+
<sub>`api.ogt` line 2640</sub>
|
|
4061
|
+
|
|
4062
|
+
<a id="type-QualityPreset"></a>
|
|
4063
|
+
|
|
4064
|
+
### `QualityPreset` (enum)
|
|
4065
|
+
|
|
4066
|
+
The preset RenderSettings' quality fields were last written with (RenderSettings.quality).
|
|
4067
|
+
|
|
4068
|
+
A string: one of the variants below. The zero value is `"none"`.
|
|
4069
|
+
|
|
4070
|
+
| Variant | Doc |
|
|
4071
|
+
|---|---|
|
|
4072
|
+
| `"none"` | No preset applied: the fields are their defaults or the game's own. |
|
|
4073
|
+
| `"low"` | og.render.applyQuality(world, "low"). |
|
|
4074
|
+
| `"medium"` | og.render.applyQuality(world, "medium"). |
|
|
4075
|
+
| `"high"` | og.render.applyQuality(world, "high"). |
|
|
4076
|
+
|
|
4077
|
+
```ogt
|
|
4078
|
+
enum QualityPreset {
|
|
4079
|
+
doc "The preset RenderSettings' quality fields were last written with (RenderSettings.quality)."
|
|
4080
|
+
variant none "No preset applied: the fields are their defaults or the game's own."
|
|
4081
|
+
variant low "og.render.applyQuality(world, \"low\")."
|
|
4082
|
+
variant medium "og.render.applyQuality(world, \"medium\")."
|
|
4083
|
+
variant high "og.render.applyQuality(world, \"high\")."
|
|
4084
|
+
}
|
|
4085
|
+
```
|
|
4086
|
+
|
|
4087
|
+
<sub>`api.ogt` line 2647</sub>
|
|
3598
4088
|
|
|
3599
4089
|
<a id="type-Lut"></a>
|
|
3600
4090
|
|
|
@@ -3608,7 +4098,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3608
4098
|
handle Lut "A colour lookup table for PostEffects.lut, from og.load.lut (a `.cube` file)."
|
|
3609
4099
|
```
|
|
3610
4100
|
|
|
3611
|
-
<sub>`api.ogt` line
|
|
4101
|
+
<sub>`api.ogt` line 2753</sub>
|
|
3612
4102
|
|
|
3613
4103
|
<a id="type-EnvironmentMap"></a>
|
|
3614
4104
|
|
|
@@ -3622,7 +4112,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3622
4112
|
handle EnvironmentMap "A prefiltered HDR environment map for Environment.map, from og.load.environment (an `.ogt` of `type environment` naming an equirectangular `.hdr` or `.exr`, a KTX2 cube map, or six face images)."
|
|
3623
4113
|
```
|
|
3624
4114
|
|
|
3625
|
-
<sub>`api.ogt` line
|
|
4115
|
+
<sub>`api.ogt` line 2754</sub>
|
|
3626
4116
|
|
|
3627
4117
|
<a id="type-ParticleEmitter"></a>
|
|
3628
4118
|
|
|
@@ -3636,7 +4126,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3636
4126
|
handle ParticleEmitter "A particle emitter asset for ParticleSystem.emitter, from og.load.emitter (an `.ogt` of `type particles`)."
|
|
3637
4127
|
```
|
|
3638
4128
|
|
|
3639
|
-
<sub>`api.ogt` line
|
|
4129
|
+
<sub>`api.ogt` line 2755</sub>
|
|
3640
4130
|
|
|
3641
4131
|
<a id="type-AoMethod"></a>
|
|
3642
4132
|
|
|
@@ -3661,7 +4151,7 @@ enum AoMethod {
|
|
|
3661
4151
|
}
|
|
3662
4152
|
```
|
|
3663
4153
|
|
|
3664
|
-
<sub>`api.ogt` line
|
|
4154
|
+
<sub>`api.ogt` line 2805</sub>
|
|
3665
4155
|
|
|
3666
4156
|
<a id="type-DofQuality"></a>
|
|
3667
4157
|
|
|
@@ -3684,7 +4174,7 @@ enum DofQuality {
|
|
|
3684
4174
|
}
|
|
3685
4175
|
```
|
|
3686
4176
|
|
|
3687
|
-
<sub>`api.ogt` line
|
|
4177
|
+
<sub>`api.ogt` line 2819</sub>
|
|
3688
4178
|
|
|
3689
4179
|
<a id="type-SpriteBlend"></a>
|
|
3690
4180
|
|
|
@@ -3707,7 +4197,7 @@ enum SpriteBlend {
|
|
|
3707
4197
|
}
|
|
3708
4198
|
```
|
|
3709
4199
|
|
|
3710
|
-
<sub>`api.ogt` line
|
|
4200
|
+
<sub>`api.ogt` line 2832</sub>
|
|
3711
4201
|
|
|
3712
4202
|
<a id="type-StripBlend"></a>
|
|
3713
4203
|
|
|
@@ -3730,7 +4220,7 @@ enum StripBlend {
|
|
|
3730
4220
|
}
|
|
3731
4221
|
```
|
|
3732
4222
|
|
|
3733
|
-
<sub>`api.ogt` line
|
|
4223
|
+
<sub>`api.ogt` line 2845</sub>
|
|
3734
4224
|
|
|
3735
4225
|
<a id="type-Palette"></a>
|
|
3736
4226
|
|
|
@@ -3744,7 +4234,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3744
4234
|
handle Palette "A colour palette for Stylise.palette, from og.load.palette (a `.hex` or GIMP `.gpl` file of up to 256 colours)."
|
|
3745
4235
|
```
|
|
3746
4236
|
|
|
3747
|
-
<sub>`api.ogt` line
|
|
4237
|
+
<sub>`api.ogt` line 3066</sub>
|
|
3748
4238
|
|
|
3749
4239
|
<a id="type-Look"></a>
|
|
3750
4240
|
|
|
@@ -3758,7 +4248,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
3758
4248
|
handle Look "A look from og.load.look (an `.ogt` of `type look`): the frame's whole art direction as data, applied with og.render.applyLook."
|
|
3759
4249
|
```
|
|
3760
4250
|
|
|
3761
|
-
<sub>`api.ogt` line
|
|
4251
|
+
<sub>`api.ogt` line 3067</sub>
|
|
3762
4252
|
|
|
3763
4253
|
<a id="type-DitherPattern"></a>
|
|
3764
4254
|
|
|
@@ -3789,7 +4279,7 @@ enum DitherPattern {
|
|
|
3789
4279
|
}
|
|
3790
4280
|
```
|
|
3791
4281
|
|
|
3792
|
-
<sub>`api.ogt` line
|
|
4282
|
+
<sub>`api.ogt` line 3076</sub>
|
|
3793
4283
|
|
|
3794
4284
|
<a id="type-StyliseSpace"></a>
|
|
3795
4285
|
|
|
@@ -3814,7 +4304,7 @@ enum StyliseSpace {
|
|
|
3814
4304
|
}
|
|
3815
4305
|
```
|
|
3816
4306
|
|
|
3817
|
-
<sub>`api.ogt` line
|
|
4307
|
+
<sub>`api.ogt` line 3093</sub>
|
|
3818
4308
|
|
|
3819
4309
|
<a id="type-LookInfo"></a>
|
|
3820
4310
|
|
|
@@ -3845,7 +4335,7 @@ struct LookInfo {
|
|
|
3845
4335
|
}
|
|
3846
4336
|
```
|
|
3847
4337
|
|
|
3848
|
-
<sub>`api.ogt` line
|
|
4338
|
+
<sub>`api.ogt` line 3339</sub>
|
|
3849
4339
|
|
|
3850
4340
|
<a id="type-RibbonPoint"></a>
|
|
3851
4341
|
|
|
@@ -3885,7 +4375,7 @@ struct RibbonPoint {
|
|
|
3885
4375
|
}
|
|
3886
4376
|
```
|
|
3887
4377
|
|
|
3888
|
-
<sub>`api.ogt` line
|
|
4378
|
+
<sub>`api.ogt` line 3551</sub>
|
|
3889
4379
|
|
|
3890
4380
|
<a id="type-RibbonDesc"></a>
|
|
3891
4381
|
|
|
@@ -3916,7 +4406,7 @@ struct RibbonDesc {
|
|
|
3916
4406
|
}
|
|
3917
4407
|
```
|
|
3918
4408
|
|
|
3919
|
-
<sub>`api.ogt` line
|
|
4409
|
+
<sub>`api.ogt` line 3572</sub>
|
|
3920
4410
|
|
|
3921
4411
|
<a id="type-TextDesc"></a>
|
|
3922
4412
|
|
|
@@ -3978,7 +4468,7 @@ struct TextDesc {
|
|
|
3978
4468
|
}
|
|
3979
4469
|
```
|
|
3980
4470
|
|
|
3981
|
-
<sub>`api.ogt` line
|
|
4471
|
+
<sub>`api.ogt` line 3591</sub>
|
|
3982
4472
|
|
|
3983
4473
|
<a id="type-TextMeasureDesc"></a>
|
|
3984
4474
|
|
|
@@ -4007,7 +4497,7 @@ struct TextMeasureDesc {
|
|
|
4007
4497
|
}
|
|
4008
4498
|
```
|
|
4009
4499
|
|
|
4010
|
-
<sub>`api.ogt` line
|
|
4500
|
+
<sub>`api.ogt` line 3625</sub>
|
|
4011
4501
|
|
|
4012
4502
|
<a id="type-TextMetrics"></a>
|
|
4013
4503
|
|
|
@@ -4030,7 +4520,7 @@ struct TextMetrics {
|
|
|
4030
4520
|
}
|
|
4031
4521
|
```
|
|
4032
4522
|
|
|
4033
|
-
<sub>`api.ogt` line
|
|
4523
|
+
<sub>`api.ogt` line 3636</sub>
|
|
4034
4524
|
|
|
4035
4525
|
<a id="type-SpriteDesc"></a>
|
|
4036
4526
|
|
|
@@ -4141,7 +4631,7 @@ struct SpriteDesc {
|
|
|
4141
4631
|
}
|
|
4142
4632
|
```
|
|
4143
4633
|
|
|
4144
|
-
<sub>`api.ogt` line
|
|
4634
|
+
<sub>`api.ogt` line 3643</sub>
|
|
4145
4635
|
|
|
4146
4636
|
<a id="type-FloatingTextDesc"></a>
|
|
4147
4637
|
|
|
@@ -4229,7 +4719,7 @@ struct FloatingTextDesc {
|
|
|
4229
4719
|
}
|
|
4230
4720
|
```
|
|
4231
4721
|
|
|
4232
|
-
<sub>`api.ogt` line
|
|
4722
|
+
<sub>`api.ogt` line 3834</sub>
|
|
4233
4723
|
|
|
4234
4724
|
<a id="type-BoxGeometryDesc"></a>
|
|
4235
4725
|
|
|
@@ -4271,7 +4761,7 @@ struct BoxGeometryDesc {
|
|
|
4271
4761
|
}
|
|
4272
4762
|
```
|
|
4273
4763
|
|
|
4274
|
-
<sub>`api.ogt` line
|
|
4764
|
+
<sub>`api.ogt` line 3906</sub>
|
|
4275
4765
|
|
|
4276
4766
|
<a id="type-PlaneGeometryDesc"></a>
|
|
4277
4767
|
|
|
@@ -4307,7 +4797,7 @@ struct PlaneGeometryDesc {
|
|
|
4307
4797
|
}
|
|
4308
4798
|
```
|
|
4309
4799
|
|
|
4310
|
-
<sub>`api.ogt` line
|
|
4800
|
+
<sub>`api.ogt` line 3929</sub>
|
|
4311
4801
|
|
|
4312
4802
|
<a id="type-SphereGeometryDesc"></a>
|
|
4313
4803
|
|
|
@@ -4347,7 +4837,7 @@ struct SphereGeometryDesc {
|
|
|
4347
4837
|
}
|
|
4348
4838
|
```
|
|
4349
4839
|
|
|
4350
|
-
<sub>`api.ogt` line
|
|
4840
|
+
<sub>`api.ogt` line 3947</sub>
|
|
4351
4841
|
|
|
4352
4842
|
<a id="type-RenderCapabilities"></a>
|
|
4353
4843
|
|
|
@@ -4370,11 +4860,13 @@ What the renderer can do on this device. Backend limits are reported here, never
|
|
|
4370
4860
|
| `reflectionProbes` | `number` | `0` | — | — | — | How many og.ReflectionProbe components one frame samples (MAX_REFLECTION_PROBES on every tier). |
|
|
4371
4861
|
| `renderTargetDepth` | `boolean` | `false` | — | — | — | Whether a render target made with `depth` gets its view's depth drawn: true on every tier with a renderer (WebGPU, Vulkan, Metal and WebGL2 alike), false without one. The depth comes from the view's own depth prepass of its opaque meshes into a linear-depth colour target, never from its depth buffer, which WebGL2 cannot read in a shader. |
|
|
4372
4862
|
| `maxRenderTargetSize` | `number` | `0` | — | — | — | The largest side of a render target (the device's largest 2D texture). |
|
|
4373
|
-
| `maxCustomPosts` | `number` | `0` | — | — | — | The most custom post passes a frame runs: 8 on every tier, PostEffects.
|
|
4863
|
+
| `maxCustomPosts` | `number` | `0` | — | — | — | The most custom post passes a frame runs: 8 on every tier, PostEffects.custom's capacity. |
|
|
4374
4864
|
| `volumetricFog` | `VolumetricFog` | `"froxel"` | — | — | — | How Fog.volumetric is drawn on this device: a froxel grid (the full tier) or a raymarch along each pixel's view ray (WebGL2), each lit by the sun through its shadows and by the point, spot and rect lights around each sample (up to volumetricLights of them) through their shadows and cookies. |
|
|
4375
4865
|
| `volumetricLights` | `number` | `0` | — | — | — | The most point, spot and rect lights that light one sample of Fog.volumetric: those of its screen cluster, MAX_CLUSTER_LIGHTS (64) in the froxel grid, 8 in WebGL2's raymarch, the brightest at the camera first. |
|
|
4376
4866
|
| `maxLightCookies` | `number` | `0` | — | — | — | The most light cookie layers one frame draws (24 on every tier): a SpotLight.cookie takes one, a PointLight.cookie six (its cube's faces), and a texture several lights of one kind share takes its layers once. Cookies past it, in the order of their lights' entities, are not drawn: those lights shine without them, and the log names them in a warning. |
|
|
4377
|
-
| `gpuTimestamps` | `boolean` | `false` | — | — | — | Whether the device times each render pass on the GPU (timestamp queries: Vulkan, Metal and D3D12 adapters that have them, WebGPU with `timestamp-query`; never WebGL2): ProbeTimings.gpuPasses and the trace's gpu thread are filled only where it is true. |
|
|
4867
|
+
| `gpuTimestamps` | `boolean` | `false` | — | — | — | Whether the device times each render pass on the GPU (timestamp queries: Vulkan, Metal and D3D12 adapters that have them, WebGPU with `timestamp-query`; never WebGL2, and never in a publish build, which leaves the queries out): ProbeTimings.gpuPasses and the trace's gpu thread are filled only where it is true. |
|
|
4868
|
+
| `spriteAnisotropy` | `number` | `0` | — | — | — | The anisotropic filtering of sprites and og.ui's images (text is not filtered anisotropically: its distance field would lose its edge): 16 where the device filters anisotropically (WebGPU, Vulkan, Metal, WebGL2 with EXT_texture_filter_anisotropic), 1 where it has none and on a software rasterizer (the vulkan-cpu tier: lavapipe's anisotropic filter softens even an image drawn 1:1), 0 without a renderer. Above 1, an image squeezed along one axis keeps the other axis's detail: a style's nine-slice middle squeezed into a short button keeps its outline as crisp as the corners. At 1 the squeezed piece reads a smaller mip level and blurs; og.ui bounds a middle's squeeze at twice its art, so the outline there is one mip level softer than the corners. |
|
|
4869
|
+
| `world3d` | `boolean` | `false` | — | — | — | Whether the renderer draws the 3D world subsystems: terrain, planar water (og.Water), the 3D fluids, scattered copies and volumetric fog. False in the 2D profile's publish and lanes modules, which leave them out (a scene's are not drawn, og.terrain's calls and a SHAPE_HEIGHTFIELD collider answer a refusal naming this field, and `og build --publish` refuses a 2D project whose scenes hold og.Terrain, og.TerrainScatter, og.Water, og.WaterSurface or og.Fluid3D, by scene file and line); true in the 3D modules, the dev module and the native host. |
|
|
4378
4870
|
|
|
4379
4871
|
```ogt
|
|
4380
4872
|
struct RenderCapabilities {
|
|
@@ -4392,15 +4884,17 @@ struct RenderCapabilities {
|
|
|
4392
4884
|
field reflectionProbes u32 "How many og.ReflectionProbe components one frame samples (MAX_REFLECTION_PROBES on every tier)."
|
|
4393
4885
|
field renderTargetDepth bool "Whether a render target made with `depth` gets its view's depth drawn: true on every tier with a renderer (WebGPU, Vulkan, Metal and WebGL2 alike), false without one. The depth comes from the view's own depth prepass of its opaque meshes into a linear-depth colour target, never from its depth buffer, which WebGL2 cannot read in a shader."
|
|
4394
4886
|
field maxRenderTargetSize u32 "The largest side of a render target (the device's largest 2D texture)."
|
|
4395
|
-
field maxCustomPosts u32 "The most custom post passes a frame runs: 8 on every tier, PostEffects.
|
|
4887
|
+
field maxCustomPosts u32 "The most custom post passes a frame runs: 8 on every tier, PostEffects.custom's capacity."
|
|
4396
4888
|
field volumetricFog VolumetricFog "How Fog.volumetric is drawn on this device: a froxel grid (the full tier) or a raymarch along each pixel's view ray (WebGL2), each lit by the sun through its shadows and by the point, spot and rect lights around each sample (up to volumetricLights of them) through their shadows and cookies."
|
|
4397
4889
|
field volumetricLights u32 "The most point, spot and rect lights that light one sample of Fog.volumetric: those of its screen cluster, MAX_CLUSTER_LIGHTS (64) in the froxel grid, 8 in WebGL2's raymarch, the brightest at the camera first."
|
|
4398
4890
|
field maxLightCookies u32 "The most light cookie layers one frame draws (24 on every tier): a SpotLight.cookie takes one, a PointLight.cookie six (its cube's faces), and a texture several lights of one kind share takes its layers once. Cookies past it, in the order of their lights' entities, are not drawn: those lights shine without them, and the log names them in a warning."
|
|
4399
|
-
field gpuTimestamps bool "Whether the device times each render pass on the GPU (timestamp queries: Vulkan, Metal and D3D12 adapters that have them, WebGPU with `timestamp-query`; never WebGL2): ProbeTimings.gpuPasses and the trace's gpu thread are filled only where it is true."
|
|
4891
|
+
field gpuTimestamps bool "Whether the device times each render pass on the GPU (timestamp queries: Vulkan, Metal and D3D12 adapters that have them, WebGPU with `timestamp-query`; never WebGL2, and never in a publish build, which leaves the queries out): ProbeTimings.gpuPasses and the trace's gpu thread are filled only where it is true."
|
|
4892
|
+
field spriteAnisotropy u32 "The anisotropic filtering of sprites and og.ui's images (text is not filtered anisotropically: its distance field would lose its edge): 16 where the device filters anisotropically (WebGPU, Vulkan, Metal, WebGL2 with EXT_texture_filter_anisotropic), 1 where it has none and on a software rasterizer (the vulkan-cpu tier: lavapipe's anisotropic filter softens even an image drawn 1:1), 0 without a renderer. Above 1, an image squeezed along one axis keeps the other axis's detail: a style's nine-slice middle squeezed into a short button keeps its outline as crisp as the corners. At 1 the squeezed piece reads a smaller mip level and blurs; og.ui bounds a middle's squeeze at twice its art, so the outline there is one mip level softer than the corners."
|
|
4893
|
+
field world3d bool "Whether the renderer draws the 3D world subsystems: terrain, planar water (og.Water), the 3D fluids, scattered copies and volumetric fog. False in the 2D profile's publish and lanes modules, which leave them out (a scene's are not drawn, og.terrain's calls and a SHAPE_HEIGHTFIELD collider answer a refusal naming this field, and `og build --publish` refuses a 2D project whose scenes hold og.Terrain, og.TerrainScatter, og.Water, og.WaterSurface or og.Fluid3D, by scene file and line); true in the 3D modules, the dev module and the native host."
|
|
4400
4894
|
}
|
|
4401
4895
|
```
|
|
4402
4896
|
|
|
4403
|
-
<sub>`api.ogt` line
|
|
4897
|
+
<sub>`api.ogt` line 3993</sub>
|
|
4404
4898
|
|
|
4405
4899
|
<a id="type-ReflectionProbeMode"></a>
|
|
4406
4900
|
|
|
@@ -4423,7 +4917,7 @@ enum ReflectionProbeMode {
|
|
|
4423
4917
|
}
|
|
4424
4918
|
```
|
|
4425
4919
|
|
|
4426
|
-
<sub>`api.ogt` line
|
|
4920
|
+
<sub>`api.ogt` line 4019</sub>
|
|
4427
4921
|
|
|
4428
4922
|
<a id="type-Shader"></a>
|
|
4429
4923
|
|
|
@@ -4437,7 +4931,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
4437
4931
|
handle Shader "A material shader from og.load.shader (an `.ogt` of `type shader`): WGSL hooks of the lit shader, or with `mode full` its own vertex and fragment entries, and the parameters they read."
|
|
4438
4932
|
```
|
|
4439
4933
|
|
|
4440
|
-
<sub>`api.ogt` line
|
|
4934
|
+
<sub>`api.ogt` line 4079</sub>
|
|
4441
4935
|
|
|
4442
4936
|
<a id="type-BufferGeometryDesc"></a>
|
|
4443
4937
|
|
|
@@ -4478,7 +4972,7 @@ struct BufferGeometryDesc {
|
|
|
4478
4972
|
}
|
|
4479
4973
|
```
|
|
4480
4974
|
|
|
4481
|
-
<sub>`api.ogt` line
|
|
4975
|
+
<sub>`api.ogt` line 4152</sub>
|
|
4482
4976
|
|
|
4483
4977
|
<a id="type-GeometryInfo"></a>
|
|
4484
4978
|
|
|
@@ -4509,7 +5003,7 @@ struct GeometryInfo {
|
|
|
4509
5003
|
}
|
|
4510
5004
|
```
|
|
4511
5005
|
|
|
4512
|
-
<sub>`api.ogt` line
|
|
5006
|
+
<sub>`api.ogt` line 4168</sub>
|
|
4513
5007
|
|
|
4514
5008
|
<a id="type-CylinderGeometryDesc"></a>
|
|
4515
5009
|
|
|
@@ -4568,7 +5062,7 @@ struct CylinderGeometryDesc {
|
|
|
4568
5062
|
}
|
|
4569
5063
|
```
|
|
4570
5064
|
|
|
4571
|
-
<sub>`api.ogt` line
|
|
5065
|
+
<sub>`api.ogt` line 4203</sub>
|
|
4572
5066
|
|
|
4573
5067
|
<a id="type-ConeGeometryDesc"></a>
|
|
4574
5068
|
|
|
@@ -4612,7 +5106,7 @@ struct ConeGeometryDesc {
|
|
|
4612
5106
|
}
|
|
4613
5107
|
```
|
|
4614
5108
|
|
|
4615
|
-
<sub>`api.ogt` line
|
|
5109
|
+
<sub>`api.ogt` line 4239</sub>
|
|
4616
5110
|
|
|
4617
5111
|
<a id="type-CapsuleGeometryDesc"></a>
|
|
4618
5112
|
|
|
@@ -4659,7 +5153,7 @@ struct CapsuleGeometryDesc {
|
|
|
4659
5153
|
}
|
|
4660
5154
|
```
|
|
4661
5155
|
|
|
4662
|
-
<sub>`api.ogt` line
|
|
5156
|
+
<sub>`api.ogt` line 4263</sub>
|
|
4663
5157
|
|
|
4664
5158
|
<a id="type-TorusGeometryDesc"></a>
|
|
4665
5159
|
|
|
@@ -4706,7 +5200,7 @@ struct TorusGeometryDesc {
|
|
|
4706
5200
|
}
|
|
4707
5201
|
```
|
|
4708
5202
|
|
|
4709
|
-
<sub>`api.ogt` line
|
|
5203
|
+
<sub>`api.ogt` line 4290</sub>
|
|
4710
5204
|
|
|
4711
5205
|
<a id="type-RingGeometryDesc"></a>
|
|
4712
5206
|
|
|
@@ -4757,7 +5251,7 @@ struct RingGeometryDesc {
|
|
|
4757
5251
|
}
|
|
4758
5252
|
```
|
|
4759
5253
|
|
|
4760
|
-
<sub>`api.ogt` line
|
|
5254
|
+
<sub>`api.ogt` line 4317</sub>
|
|
4761
5255
|
|
|
4762
5256
|
<a id="type-CircleGeometryDesc"></a>
|
|
4763
5257
|
|
|
@@ -4797,7 +5291,7 @@ struct CircleGeometryDesc {
|
|
|
4797
5291
|
}
|
|
4798
5292
|
```
|
|
4799
5293
|
|
|
4800
|
-
<sub>`api.ogt` line
|
|
5294
|
+
<sub>`api.ogt` line 4347</sub>
|
|
4801
5295
|
|
|
4802
5296
|
<a id="type-TubeGeometryDesc"></a>
|
|
4803
5297
|
|
|
@@ -4841,7 +5335,499 @@ struct TubeGeometryDesc {
|
|
|
4841
5335
|
}
|
|
4842
5336
|
```
|
|
4843
5337
|
|
|
4844
|
-
<sub>`api.ogt` line
|
|
5338
|
+
<sub>`api.ogt` line 4368</sub>
|
|
5339
|
+
|
|
5340
|
+
<a id="type-ShapePoints"></a>
|
|
5341
|
+
|
|
5342
|
+
### `ShapePoints` (struct)
|
|
5343
|
+
|
|
5344
|
+
A shape as points, what og.Shape.extractPoints returns and what shapeGeometry, extrudeGeometry and sweepGeometry read: the outline, then each hole. A repeated closing point is dropped, as three.js drops it.
|
|
5345
|
+
|
|
5346
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5347
|
+
|---|---|---|---|---|---|---|
|
|
5348
|
+
| `shape` | `readonly Vector2[]` | `[]` | — | — | — | The outline's points, in order. |
|
|
5349
|
+
| `holes` | `readonly (readonly Vector2[])[]` | `[]` | — | — | — | Each hole's points, in order. |
|
|
5350
|
+
|
|
5351
|
+
```ogt
|
|
5352
|
+
struct ShapePoints {
|
|
5353
|
+
doc "A shape as points, what og.Shape.extractPoints returns and what shapeGeometry, extrudeGeometry and sweepGeometry read: the outline, then each hole. A repeated closing point is dropped, as three.js drops it."
|
|
5354
|
+
field shape List.Vector2 "The outline's points, in order."
|
|
5355
|
+
field holes List.List.Vector2 "Each hole's points, in order."
|
|
5356
|
+
}
|
|
5357
|
+
```
|
|
5358
|
+
|
|
5359
|
+
<sub>`api.ogt` line 4442</sub>
|
|
5360
|
+
|
|
5361
|
+
<a id="type-ShapeGeometryDesc"></a>
|
|
5362
|
+
|
|
5363
|
+
### `ShapeGeometryDesc` (desc struct)
|
|
5364
|
+
|
|
5365
|
+
A flat shape with holes in the xy plane facing +Z, as three.js ShapeGeometry(shapes, curveSegments): triangulated by earcut (three.js's own port), the outline made clockwise and the holes counter-clockwise first, so its vertices and triangles are three.js's for the same shape. uvs are world x and y (v flipped to run down the image).
|
|
5366
|
+
|
|
5367
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5368
|
+
|
|
5369
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5370
|
+
|---|---|---|---|---|---|---|
|
|
5371
|
+
| `shapes` | `Path2 \| readonly Path2[] \| readonly Vector2[] \| null` | `null` | — | — | — | One og.Shape (an og.Path2 is a shape without holes), a list of them, or the outline's points. Without it, three.js's default triangle (0, 0.5), (-0.5, -0.5), (0.5, -0.5). |
|
|
5372
|
+
| `curveSegments` | `number` | `12` | ≥ 1 | — | — | Points per curve when an og.Shape's curves are flattened (three.js extractPoints(curveSegments); an ellipse takes twice as many, a spline as many per point). |
|
|
5373
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5374
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too (BufferGeometryDesc.physics). |
|
|
5375
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later (BufferGeometryDesc.dynamic). |
|
|
5376
|
+
|
|
5377
|
+
```ogt
|
|
5378
|
+
struct ShapeGeometryDesc {
|
|
5379
|
+
doc "A flat shape with holes in the xy plane facing +Z, as three.js ShapeGeometry(shapes, curveSegments): triangulated by earcut (three.js's own port), the outline made clockwise and the holes counter-clockwise first, so its vertices and triangles are three.js's for the same shape. uvs are world x and y (v flipped to run down the image)."
|
|
5380
|
+
desc true
|
|
5381
|
+
field shapes Option.OneOf.Path2.OneOf.List.Path2.List.Vector2 "One og.Shape (an og.Path2 is a shape without holes), a list of them, or the outline's points. Without it, three.js's default triangle (0, 0.5), (-0.5, -0.5), (0.5, -0.5)."
|
|
5382
|
+
field curveSegments u32 "Points per curve when an og.Shape's curves are flattened (three.js extractPoints(curveSegments); an ellipse takes twice as many, a spline as many per point)." {
|
|
5383
|
+
default 12
|
|
5384
|
+
min 1
|
|
5385
|
+
}
|
|
5386
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5387
|
+
default 1 1
|
|
5388
|
+
}
|
|
5389
|
+
field physics bool "Register it as a physics mesh too (BufferGeometryDesc.physics)." {
|
|
5390
|
+
default true
|
|
5391
|
+
}
|
|
5392
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later (BufferGeometryDesc.dynamic)."
|
|
5393
|
+
}
|
|
5394
|
+
```
|
|
5395
|
+
|
|
5396
|
+
<sub>`api.ogt` line 4448</sub>
|
|
5397
|
+
|
|
5398
|
+
<a id="type-ExtrudeGeometryDesc"></a>
|
|
5399
|
+
|
|
5400
|
+
### `ExtrudeGeometryDesc` (desc struct)
|
|
5401
|
+
|
|
5402
|
+
Shapes pushed along +Z, or along a path, as three.js ExtrudeGeometry(shapes, options) with its option names and defaults: a closed solid, its lids from earcut and its walls ring by ring, rounded by a bevel of bevelSegments rings at each face. Unindexed as three.js's (every triangle its own vertices, flat normals), three.js's vertex order and counts; uvs from three.js's WorldUVGenerator (v flipped to run down the image).
|
|
5403
|
+
|
|
5404
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5405
|
+
|
|
5406
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5407
|
+
|---|---|---|---|---|---|---|
|
|
5408
|
+
| `shapes` | `Path2 \| readonly Path2[] \| readonly Vector2[] \| null` | `null` | — | — | — | One og.Shape, a list of them, or the outline's points. Without it, three.js's default square of side 1. |
|
|
5409
|
+
| `depth` | `number` | `1` | ≥ 0 | `m` | — | How far the shape is pushed along +Z (without extrudePath). |
|
|
5410
|
+
| `steps` | `number` | `1` | ≥ 1 | — | — | Rings along the depth or the path. |
|
|
5411
|
+
| `bevelEnabled` | `boolean` | `true` | — | — | — | Round the edges of both faces. |
|
|
5412
|
+
| `bevelThickness` | `number` | `0.2` | ≥ 0 | `m` | — | How far the bevel reaches beyond each face, along z. |
|
|
5413
|
+
| `bevelSize` | `number \| null` | `null` | — | `m` | — | How far the bevel reaches out from the outline. Null or unset, bevelThickness - 0.1, as three.js derives it (0.1 at the default thickness, 0 at a thickness of 0.1). |
|
|
5414
|
+
| `bevelOffset` | `number` | `0` | — | `m` | — | How far the bevel starts out from the outline. |
|
|
5415
|
+
| `bevelSegments` | `number` | `3` | ≥ 1 | — | — | Rings in each bevel. |
|
|
5416
|
+
| `curveSegments` | `number` | `12` | ≥ 1 | — | — | Points per curve when an og.Shape's curves are flattened. |
|
|
5417
|
+
| `extrudePath` | `Path` | `0` | — | — | — | A path (og.path.create or og.path.find) to extrude along instead of +Z: the shape's x along the path's normal and y along its binormal (three.js's Frenet frames), steps rings evenly spaced along it. A path turns the bevel off, as three.js. 0 extrudes along +Z. |
|
|
5418
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5419
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too. |
|
|
5420
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later. |
|
|
5421
|
+
|
|
5422
|
+
```ogt
|
|
5423
|
+
struct ExtrudeGeometryDesc {
|
|
5424
|
+
doc "Shapes pushed along +Z, or along a path, as three.js ExtrudeGeometry(shapes, options) with its option names and defaults: a closed solid, its lids from earcut and its walls ring by ring, rounded by a bevel of bevelSegments rings at each face. Unindexed as three.js's (every triangle its own vertices, flat normals), three.js's vertex order and counts; uvs from three.js's WorldUVGenerator (v flipped to run down the image)."
|
|
5425
|
+
desc true
|
|
5426
|
+
field shapes Option.OneOf.Path2.OneOf.List.Path2.List.Vector2 "One og.Shape, a list of them, or the outline's points. Without it, three.js's default square of side 1."
|
|
5427
|
+
field depth f32 "How far the shape is pushed along +Z (without extrudePath)." {
|
|
5428
|
+
default 1
|
|
5429
|
+
min 0
|
|
5430
|
+
unit m
|
|
5431
|
+
}
|
|
5432
|
+
field steps u32 "Rings along the depth or the path." {
|
|
5433
|
+
default 1
|
|
5434
|
+
min 1
|
|
5435
|
+
}
|
|
5436
|
+
field bevelEnabled bool "Round the edges of both faces." {
|
|
5437
|
+
default true
|
|
5438
|
+
}
|
|
5439
|
+
field bevelThickness f32 "How far the bevel reaches beyond each face, along z." {
|
|
5440
|
+
default 0.2
|
|
5441
|
+
min 0
|
|
5442
|
+
unit m
|
|
5443
|
+
}
|
|
5444
|
+
field bevelSize Option.f32 "How far the bevel reaches out from the outline. Null or unset, bevelThickness - 0.1, as three.js derives it (0.1 at the default thickness, 0 at a thickness of 0.1)." {
|
|
5445
|
+
unit m
|
|
5446
|
+
}
|
|
5447
|
+
field bevelOffset f32 "How far the bevel starts out from the outline." {
|
|
5448
|
+
unit m
|
|
5449
|
+
}
|
|
5450
|
+
field bevelSegments u32 "Rings in each bevel." {
|
|
5451
|
+
default 3
|
|
5452
|
+
min 1
|
|
5453
|
+
}
|
|
5454
|
+
field curveSegments u32 "Points per curve when an og.Shape's curves are flattened." {
|
|
5455
|
+
default 12
|
|
5456
|
+
min 1
|
|
5457
|
+
}
|
|
5458
|
+
field extrudePath Path "A path (og.path.create or og.path.find) to extrude along instead of +Z: the shape's x along the path's normal and y along its binormal (three.js's Frenet frames), steps rings evenly spaced along it. A path turns the bevel off, as three.js. 0 extrudes along +Z."
|
|
5459
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5460
|
+
default 1 1
|
|
5461
|
+
}
|
|
5462
|
+
field physics bool "Register it as a physics mesh too." {
|
|
5463
|
+
default true
|
|
5464
|
+
}
|
|
5465
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later."
|
|
5466
|
+
}
|
|
5467
|
+
```
|
|
5468
|
+
|
|
5469
|
+
<sub>`api.ogt` line 4465</sub>
|
|
5470
|
+
|
|
5471
|
+
<a id="type-LatheGeometryDesc"></a>
|
|
5472
|
+
|
|
5473
|
+
### `LatheGeometryDesc` (desc struct)
|
|
5474
|
+
|
|
5475
|
+
A profile turned round +Y, as three.js LatheGeometry(points, segments, phiStart, phiLength): vases, bottles, columns, wheels. three.js's vertices, indices and smooth normals; u round the axis, v along the profile (flipped to run down the image). A whole turn's seam meets exactly.
|
|
5476
|
+
|
|
5477
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5478
|
+
|
|
5479
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5480
|
+
|---|---|---|---|---|---|---|
|
|
5481
|
+
| `points` | `readonly Vector2[]` | `[]` | — | `m` | — | The profile, x the distance from the axis and y the height, in order (at least two). Without it, three.js's default (0, -0.5), (0.5, 0), (0, 0.5). |
|
|
5482
|
+
| `segments` | `number` | `12` | ≥ 1 | — | — | Segments round the axis. |
|
|
5483
|
+
| `phiStart` | `number` | `0` | — | `rad` | — | Where the turn starts, from +Z towards +X. |
|
|
5484
|
+
| `phiLength` | `number` | `6.283185307179586` | — | `rad` | — | How far it turns; 2 pi is whole (clamped to it). |
|
|
5485
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5486
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too. |
|
|
5487
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later. |
|
|
5488
|
+
|
|
5489
|
+
```ogt
|
|
5490
|
+
struct LatheGeometryDesc {
|
|
5491
|
+
doc "A profile turned round +Y, as three.js LatheGeometry(points, segments, phiStart, phiLength): vases, bottles, columns, wheels. three.js's vertices, indices and smooth normals; u round the axis, v along the profile (flipped to run down the image). A whole turn's seam meets exactly."
|
|
5492
|
+
desc true
|
|
5493
|
+
field points List.Vector2 "The profile, x the distance from the axis and y the height, in order (at least two). Without it, three.js's default (0, -0.5), (0.5, 0), (0, 0.5)." {
|
|
5494
|
+
unit m
|
|
5495
|
+
}
|
|
5496
|
+
field segments u32 "Segments round the axis." {
|
|
5497
|
+
default 12
|
|
5498
|
+
min 1
|
|
5499
|
+
}
|
|
5500
|
+
field phiStart f32 "Where the turn starts, from +Z towards +X." {
|
|
5501
|
+
unit rad
|
|
5502
|
+
}
|
|
5503
|
+
field phiLength f32 "How far it turns; 2 pi is whole (clamped to it)." {
|
|
5504
|
+
default 6.283185307179586
|
|
5505
|
+
unit rad
|
|
5506
|
+
}
|
|
5507
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5508
|
+
default 1 1
|
|
5509
|
+
}
|
|
5510
|
+
field physics bool "Register it as a physics mesh too." {
|
|
5511
|
+
default true
|
|
5512
|
+
}
|
|
5513
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later."
|
|
5514
|
+
}
|
|
5515
|
+
```
|
|
5516
|
+
|
|
5517
|
+
<sub>`api.ogt` line 4510</sub>
|
|
5518
|
+
|
|
5519
|
+
<a id="type-PolyhedronGeometryDesc"></a>
|
|
5520
|
+
|
|
5521
|
+
### `PolyhedronGeometryDesc` (desc struct)
|
|
5522
|
+
|
|
5523
|
+
A polyhedron from vertices and faces, every face subdivided `detail` times and every vertex pushed onto the sphere of `radius`, as three.js PolyhedronGeometry(vertices, indices, radius, detail): unindexed, flat normals at detail 0 and the sphere's above, three.js's spherical uvs.
|
|
5524
|
+
|
|
5525
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5526
|
+
|
|
5527
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5528
|
+
|---|---|---|---|---|---|---|
|
|
5529
|
+
| `vertices` | `readonly number[]` | `[]` | — | — | — | The corners, x y z each (three.js's flat array). |
|
|
5530
|
+
| `indices` | `readonly number[]` | `[]` | — | — | — | The faces, three corner indices each, counter-clockwise seen from outside. |
|
|
5531
|
+
| `radius` | `number` | `1` | ≥ 0 | `m` | — | The sphere the vertices are pushed onto. |
|
|
5532
|
+
| `detail` | `number` | `0` | ≤ 64 | — | — | Subdivisions of each face: (detail + 1)² triangles a face. |
|
|
5533
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5534
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too. |
|
|
5535
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later. |
|
|
5536
|
+
|
|
5537
|
+
```ogt
|
|
5538
|
+
struct PolyhedronGeometryDesc {
|
|
5539
|
+
doc "A polyhedron from vertices and faces, every face subdivided `detail` times and every vertex pushed onto the sphere of `radius`, as three.js PolyhedronGeometry(vertices, indices, radius, detail): unindexed, flat normals at detail 0 and the sphere's above, three.js's spherical uvs."
|
|
5540
|
+
desc true
|
|
5541
|
+
field vertices List.f32 "The corners, x y z each (three.js's flat array)."
|
|
5542
|
+
field indices List.u32 "The faces, three corner indices each, counter-clockwise seen from outside."
|
|
5543
|
+
field radius f32 "The sphere the vertices are pushed onto." {
|
|
5544
|
+
default 1
|
|
5545
|
+
min 0
|
|
5546
|
+
unit m
|
|
5547
|
+
}
|
|
5548
|
+
field detail u32 "Subdivisions of each face: (detail + 1)² triangles a face." {
|
|
5549
|
+
max 64
|
|
5550
|
+
}
|
|
5551
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5552
|
+
default 1 1
|
|
5553
|
+
}
|
|
5554
|
+
field physics bool "Register it as a physics mesh too." {
|
|
5555
|
+
default true
|
|
5556
|
+
}
|
|
5557
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later."
|
|
5558
|
+
}
|
|
5559
|
+
```
|
|
5560
|
+
|
|
5561
|
+
<sub>`api.ogt` line 4536</sub>
|
|
5562
|
+
|
|
5563
|
+
<a id="type-SolidGeometryDesc"></a>
|
|
5564
|
+
|
|
5565
|
+
### `SolidGeometryDesc` (desc struct)
|
|
5566
|
+
|
|
5567
|
+
A regular solid, as three.js IcosahedronGeometry, DodecahedronGeometry, OctahedronGeometry and TetrahedronGeometry(radius, detail): PolyhedronGeometryDesc with the solid's own vertices and faces. An icosahedron at detail 2 or more is a sphere with even triangles.
|
|
5568
|
+
|
|
5569
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5570
|
+
|
|
5571
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5572
|
+
|---|---|---|---|---|---|---|
|
|
5573
|
+
| `radius` | `number` | `1` | ≥ 0 | `m` | — | The radius. |
|
|
5574
|
+
| `detail` | `number` | `0` | ≤ 64 | — | — | Subdivisions of each face. |
|
|
5575
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5576
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too. |
|
|
5577
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later. |
|
|
5578
|
+
|
|
5579
|
+
```ogt
|
|
5580
|
+
struct SolidGeometryDesc {
|
|
5581
|
+
doc "A regular solid, as three.js IcosahedronGeometry, DodecahedronGeometry, OctahedronGeometry and TetrahedronGeometry(radius, detail): PolyhedronGeometryDesc with the solid's own vertices and faces. An icosahedron at detail 2 or more is a sphere with even triangles."
|
|
5582
|
+
desc true
|
|
5583
|
+
field radius f32 "The radius." {
|
|
5584
|
+
default 1
|
|
5585
|
+
min 0
|
|
5586
|
+
unit m
|
|
5587
|
+
}
|
|
5588
|
+
field detail u32 "Subdivisions of each face." {
|
|
5589
|
+
max 64
|
|
5590
|
+
}
|
|
5591
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5592
|
+
default 1 1
|
|
5593
|
+
}
|
|
5594
|
+
field physics bool "Register it as a physics mesh too." {
|
|
5595
|
+
default true
|
|
5596
|
+
}
|
|
5597
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later."
|
|
5598
|
+
}
|
|
5599
|
+
```
|
|
5600
|
+
|
|
5601
|
+
<sub>`api.ogt` line 4558</sub>
|
|
5602
|
+
|
|
5603
|
+
<a id="type-SweepKey"></a>
|
|
5604
|
+
|
|
5605
|
+
### `SweepKey` (struct)
|
|
5606
|
+
|
|
5607
|
+
A value at a fraction of a sweep's path: linear between keys, held before the first and past the last.
|
|
5608
|
+
|
|
5609
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5610
|
+
|---|---|---|---|---|---|---|
|
|
5611
|
+
| `t` | `number` | `0` | — | `ratio` | — | The fraction of the path's length, 0 to 1. |
|
|
5612
|
+
| `value` | `number` | `0` | — | — | — | The value there. |
|
|
5613
|
+
|
|
5614
|
+
```ogt
|
|
5615
|
+
struct SweepKey {
|
|
5616
|
+
doc "A value at a fraction of a sweep's path: linear between keys, held before the first and past the last."
|
|
5617
|
+
field t f32 "The fraction of the path's length, 0 to 1." {
|
|
5618
|
+
unit ratio
|
|
5619
|
+
}
|
|
5620
|
+
field value f32 "The value there."
|
|
5621
|
+
}
|
|
5622
|
+
```
|
|
5623
|
+
|
|
5624
|
+
<sub>`api.ogt` line 4578</sub>
|
|
5625
|
+
|
|
5626
|
+
<a id="type-SweepGeometryDesc"></a>
|
|
5627
|
+
|
|
5628
|
+
### `SweepGeometryDesc` (desc struct)
|
|
5629
|
+
|
|
5630
|
+
A section swept along a path, scaled and twisted over it: horns, tusks, handles, blades, tapered pipes, twisted columns (img2threejs's tapered sweep; three.js has no class for it). The section's x lies along the path's normal and y along its binormal (three.js's Frenet frames), rings evenly spaced along the path's length; u runs along the path, v round the section (flipped to run down the image), the sides smooth. An open path's ends are capped.
|
|
5631
|
+
|
|
5632
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5633
|
+
|
|
5634
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5635
|
+
|---|---|---|---|---|---|---|
|
|
5636
|
+
| `section` | `Path2 \| readonly Vector2[] \| null` | `null` | — | — | — | The section's outline: an og.Shape or og.Path2 (flattened by curveSegments; holes are not swept) or its points, at least three, either winding. |
|
|
5637
|
+
| `path` | `Path` | `0` | — | — | — | The path (og.path.create or og.path.find). |
|
|
5638
|
+
| `steps` | `number` | `64` | ≥ 1 | — | — | Rings along the path, less one. |
|
|
5639
|
+
| `scale` | `readonly SweepKey[]` | `[]` | — | — | — | The section's scale over the path (none: 1 throughout). A horn: [{ t: 0, value: 1 }, { t: 1, value: 0.05 }]. |
|
|
5640
|
+
| `twist` | `readonly SweepKey[]` | `[]` | — | — | — | The section's turn round the path over its length, in radians (none: 0). |
|
|
5641
|
+
| `caps` | `boolean` | `true` | — | — | — | Close the ends of an open path. |
|
|
5642
|
+
| `curveSegments` | `number` | `12` | ≥ 1 | — | — | Points per curve when an og.Shape section is flattened. |
|
|
5643
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5644
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too. |
|
|
5645
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later. |
|
|
5646
|
+
|
|
5647
|
+
```ogt
|
|
5648
|
+
struct SweepGeometryDesc {
|
|
5649
|
+
doc "A section swept along a path, scaled and twisted over it: horns, tusks, handles, blades, tapered pipes, twisted columns (img2threejs's tapered sweep; three.js has no class for it). The section's x lies along the path's normal and y along its binormal (three.js's Frenet frames), rings evenly spaced along the path's length; u runs along the path, v round the section (flipped to run down the image), the sides smooth. An open path's ends are capped."
|
|
5650
|
+
desc true
|
|
5651
|
+
field section Option.OneOf.Path2.List.Vector2 "The section's outline: an og.Shape or og.Path2 (flattened by curveSegments; holes are not swept) or its points, at least three, either winding."
|
|
5652
|
+
field path Path "The path (og.path.create or og.path.find)."
|
|
5653
|
+
field steps u32 "Rings along the path, less one." {
|
|
5654
|
+
default 64
|
|
5655
|
+
min 1
|
|
5656
|
+
}
|
|
5657
|
+
field scale List.SweepKey "The section's scale over the path (none: 1 throughout). A horn: [{ t: 0, value: 1 }, { t: 1, value: 0.05 }]."
|
|
5658
|
+
field twist List.SweepKey "The section's turn round the path over its length, in radians (none: 0)."
|
|
5659
|
+
field caps bool "Close the ends of an open path." {
|
|
5660
|
+
default true
|
|
5661
|
+
}
|
|
5662
|
+
field curveSegments u32 "Points per curve when an og.Shape section is flattened." {
|
|
5663
|
+
default 12
|
|
5664
|
+
min 1
|
|
5665
|
+
}
|
|
5666
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5667
|
+
default 1 1
|
|
5668
|
+
}
|
|
5669
|
+
field physics bool "Register it as a physics mesh too." {
|
|
5670
|
+
default true
|
|
5671
|
+
}
|
|
5672
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later."
|
|
5673
|
+
}
|
|
5674
|
+
```
|
|
5675
|
+
|
|
5676
|
+
<sub>`api.ogt` line 4586</sub>
|
|
5677
|
+
|
|
5678
|
+
<a id="type-MirrorAxis"></a>
|
|
5679
|
+
|
|
5680
|
+
### `MirrorAxis` (enum)
|
|
5681
|
+
|
|
5682
|
+
The world axis a part is mirrored along, after its placement.
|
|
5683
|
+
|
|
5684
|
+
A string: one of the variants below. The zero value is `"none"`.
|
|
5685
|
+
|
|
5686
|
+
| Variant | Doc |
|
|
5687
|
+
|---|---|
|
|
5688
|
+
| `"none"` | Not mirrored. |
|
|
5689
|
+
| `"x"` | x negated: the mirror image across the yz plane. |
|
|
5690
|
+
| `"y"` | y negated: across the xz plane. |
|
|
5691
|
+
| `"z"` | z negated: across the xy plane. |
|
|
5692
|
+
|
|
5693
|
+
```ogt
|
|
5694
|
+
enum MirrorAxis {
|
|
5695
|
+
doc "The world axis a part is mirrored along, after its placement."
|
|
5696
|
+
variant none "Not mirrored."
|
|
5697
|
+
variant x "x negated: the mirror image across the yz plane."
|
|
5698
|
+
variant y "y negated: across the xz plane."
|
|
5699
|
+
variant z "z negated: across the xy plane."
|
|
5700
|
+
}
|
|
5701
|
+
```
|
|
5702
|
+
|
|
5703
|
+
<sub>`api.ogt` line 4613</sub>
|
|
5704
|
+
|
|
5705
|
+
<a id="type-GeometryPart"></a>
|
|
5706
|
+
|
|
5707
|
+
### `GeometryPart` (desc struct)
|
|
5708
|
+
|
|
5709
|
+
A geometry placed as an Object3D is (scale, then rotate, then move), then mirrored: one part of og.render.mergeGeometries or an operand of og.render.csgGeometry.
|
|
5710
|
+
|
|
5711
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5712
|
+
|
|
5713
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5714
|
+
|---|---|---|---|---|---|---|
|
|
5715
|
+
| `geometry` | `Geometry` | `0` | — | — | — | Any geometry: made, a primitive or a loaded glTF's. |
|
|
5716
|
+
| `position` | `Vector3` | `{ x: 0, y: 0, z: 0 }` | — | `m` | — | Where it goes. |
|
|
5717
|
+
| `quaternion` | `Quaternion` | `{ x: 0, y: 0, z: 0, w: 1 }` | — | — | — | How it turns. |
|
|
5718
|
+
| `scale` | `Vector3` | `{ x: 1, y: 1, z: 1 }` | — | — | — | Its scale (a negative component mirrors it as `mirror` does). |
|
|
5719
|
+
| `mirror` | `MirrorAxis` | `"none"` | — | — | — | Mirror it along a world axis after placing it: a symmetric prop is one half twice, the second mirrored. |
|
|
5720
|
+
|
|
5721
|
+
```ogt
|
|
5722
|
+
struct GeometryPart {
|
|
5723
|
+
doc "A geometry placed as an Object3D is (scale, then rotate, then move), then mirrored: one part of og.render.mergeGeometries or an operand of og.render.csgGeometry."
|
|
5724
|
+
desc true
|
|
5725
|
+
field geometry Geometry "Any geometry: made, a primitive or a loaded glTF's."
|
|
5726
|
+
field position Vector3 "Where it goes." {
|
|
5727
|
+
unit m
|
|
5728
|
+
}
|
|
5729
|
+
field quaternion Quaternion "How it turns."
|
|
5730
|
+
field scale Vector3 "Its scale (a negative component mirrors it as `mirror` does)." {
|
|
5731
|
+
default 1 1 1
|
|
5732
|
+
}
|
|
5733
|
+
field mirror MirrorAxis "Mirror it along a world axis after placing it: a symmetric prop is one half twice, the second mirrored."
|
|
5734
|
+
}
|
|
5735
|
+
```
|
|
5736
|
+
|
|
5737
|
+
<sub>`api.ogt` line 4621</sub>
|
|
5738
|
+
|
|
5739
|
+
<a id="type-CsgOp"></a>
|
|
5740
|
+
|
|
5741
|
+
### `CsgOp` (enum)
|
|
5742
|
+
|
|
5743
|
+
A boolean operation on two solids.
|
|
5744
|
+
|
|
5745
|
+
A string: one of the variants below. The zero value is `"union"`.
|
|
5746
|
+
|
|
5747
|
+
| Variant | Doc |
|
|
5748
|
+
|---|---|
|
|
5749
|
+
| `"union"` | Everything in either: a + b. |
|
|
5750
|
+
| `"subtract"` | What of a is not in b: a - b (holes, notches, a dice's pips). |
|
|
5751
|
+
| `"intersect"` | What is in both. |
|
|
5752
|
+
|
|
5753
|
+
```ogt
|
|
5754
|
+
enum CsgOp {
|
|
5755
|
+
doc "A boolean operation on two solids."
|
|
5756
|
+
variant union "Everything in either: a + b."
|
|
5757
|
+
variant subtract "What of a is not in b: a - b (holes, notches, a dice's pips)."
|
|
5758
|
+
variant intersect "What is in both."
|
|
5759
|
+
}
|
|
5760
|
+
```
|
|
5761
|
+
|
|
5762
|
+
<sub>`api.ogt` line 4635</sub>
|
|
5763
|
+
|
|
5764
|
+
<a id="type-CsgGeometryDesc"></a>
|
|
5765
|
+
|
|
5766
|
+
### `CsgGeometryDesc` (desc struct)
|
|
5767
|
+
|
|
5768
|
+
Two closed geometries combined by a boolean operation, each placed first: a box with a hole bored through it, a dice, a window cut in a wall. The result is closed when both are (every edge shared by two triangles, wound opposite), every piece keeps its source's normals, uvs and colours (b's turned inside out where it is subtracted). Where a plane side or an edge crossing is decided, the decision is exact (Shewchuk's predicates), so every host makes the same cuts; faces that coincide keep one copy or none, as the operation says.
|
|
5769
|
+
|
|
5770
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5771
|
+
|
|
5772
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5773
|
+
|---|---|---|---|---|---|---|
|
|
5774
|
+
| `op` | `CsgOp` | `"union"` | — | — | — | The operation. |
|
|
5775
|
+
| `a` | `GeometryPart` | `{}` | — | — | — | The first operand. |
|
|
5776
|
+
| `b` | `GeometryPart` | `{}` | — | — | — | The second operand. |
|
|
5777
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5778
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too. |
|
|
5779
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later. |
|
|
5780
|
+
|
|
5781
|
+
```ogt
|
|
5782
|
+
struct CsgGeometryDesc {
|
|
5783
|
+
doc "Two closed geometries combined by a boolean operation, each placed first: a box with a hole bored through it, a dice, a window cut in a wall. The result is closed when both are (every edge shared by two triangles, wound opposite), every piece keeps its source's normals, uvs and colours (b's turned inside out where it is subtracted). Where a plane side or an edge crossing is decided, the decision is exact (Shewchuk's predicates), so every host makes the same cuts; faces that coincide keep one copy or none, as the operation says."
|
|
5784
|
+
desc true
|
|
5785
|
+
field op CsgOp "The operation."
|
|
5786
|
+
field a GeometryPart "The first operand."
|
|
5787
|
+
field b GeometryPart "The second operand."
|
|
5788
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5789
|
+
default 1 1
|
|
5790
|
+
}
|
|
5791
|
+
field physics bool "Register it as a physics mesh too." {
|
|
5792
|
+
default true
|
|
5793
|
+
}
|
|
5794
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later."
|
|
5795
|
+
}
|
|
5796
|
+
```
|
|
5797
|
+
|
|
5798
|
+
<sub>`api.ogt` line 4642</sub>
|
|
5799
|
+
|
|
5800
|
+
<a id="type-MergeGeometriesDesc"></a>
|
|
5801
|
+
|
|
5802
|
+
### `MergeGeometriesDesc` (desc struct)
|
|
5803
|
+
|
|
5804
|
+
Geometries placed and merged into one, as three.js BufferGeometryUtils.mergeGeometries after applying each part's matrix: a prop of parts drawn in one draw, a mirrored half, an array (the same part at several placements). Normals follow each placement; a mirrored part turns its triangles so they still face out. Vertex colours are kept when any part has them.
|
|
5805
|
+
|
|
5806
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
5807
|
+
|
|
5808
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
5809
|
+
|---|---|---|---|---|---|---|
|
|
5810
|
+
| `parts` | `readonly GeometryPart[]` | `[]` | — | — | — | The parts, in order (at least one). |
|
|
5811
|
+
| `uvRepeat` | `Vector2` | `{ x: 1, y: 1 }` | — | — | — | How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping). |
|
|
5812
|
+
| `physics` | `boolean` | `true` | — | — | — | Register it as a physics mesh too. |
|
|
5813
|
+
| `dynamic` | `boolean` | `false` | — | — | — | Whether og.render.updateGeometry may rewrite it later. |
|
|
5814
|
+
|
|
5815
|
+
```ogt
|
|
5816
|
+
struct MergeGeometriesDesc {
|
|
5817
|
+
doc "Geometries placed and merged into one, as three.js BufferGeometryUtils.mergeGeometries after applying each part's matrix: a prop of parts drawn in one draw, a mirrored half, an array (the same part at several placements). Normals follow each placement; a mirrored part turns its triangles so they still face out. Vertex colours are kept when any part has them."
|
|
5818
|
+
desc true
|
|
5819
|
+
field parts List.GeometryPart "The parts, in order (at least one)."
|
|
5820
|
+
field uvRepeat Vector2 "How many times a texture repeats across it, along u and v: its UVs scaled by uvRepeat (three.js texture.repeat, here on the geometry; material textures sample with repeat wrapping)." {
|
|
5821
|
+
default 1 1
|
|
5822
|
+
}
|
|
5823
|
+
field physics bool "Register it as a physics mesh too." {
|
|
5824
|
+
default true
|
|
5825
|
+
}
|
|
5826
|
+
field dynamic bool "Whether og.render.updateGeometry may rewrite it later."
|
|
5827
|
+
}
|
|
5828
|
+
```
|
|
5829
|
+
|
|
5830
|
+
<sub>`api.ogt` line 4657</sub>
|
|
4845
5831
|
|
|
4846
5832
|
<a id="type-LineMode"></a>
|
|
4847
5833
|
|
|
@@ -4866,7 +5852,7 @@ enum LineMode {
|
|
|
4866
5852
|
}
|
|
4867
5853
|
```
|
|
4868
5854
|
|
|
4869
|
-
<sub>`api.ogt` line
|
|
5855
|
+
<sub>`api.ogt` line 4747</sub>
|
|
4870
5856
|
|
|
4871
5857
|
<a id="type-LinesDesc"></a>
|
|
4872
5858
|
|
|
@@ -4932,7 +5918,7 @@ struct LinesDesc {
|
|
|
4932
5918
|
}
|
|
4933
5919
|
```
|
|
4934
5920
|
|
|
4935
|
-
<sub>`api.ogt` line
|
|
5921
|
+
<sub>`api.ogt` line 4761</sub>
|
|
4936
5922
|
|
|
4937
5923
|
<a id="type-PointsDesc"></a>
|
|
4938
5924
|
|
|
@@ -4983,7 +5969,7 @@ struct PointsDesc {
|
|
|
4983
5969
|
}
|
|
4984
5970
|
```
|
|
4985
5971
|
|
|
4986
|
-
<sub>`api.ogt` line
|
|
5972
|
+
<sub>`api.ogt` line 4805</sub>
|
|
4987
5973
|
|
|
4988
5974
|
<a id="type-RaycastGeometryDesc"></a>
|
|
4989
5975
|
|
|
@@ -5016,7 +6002,7 @@ struct RaycastGeometryDesc {
|
|
|
5016
6002
|
}
|
|
5017
6003
|
```
|
|
5018
6004
|
|
|
5019
|
-
<sub>`api.ogt` line
|
|
6005
|
+
<sub>`api.ogt` line 4908</sub>
|
|
5020
6006
|
|
|
5021
6007
|
<a id="type-GeometryHit"></a>
|
|
5022
6008
|
|
|
@@ -5051,7 +6037,7 @@ struct GeometryHit {
|
|
|
5051
6037
|
}
|
|
5052
6038
|
```
|
|
5053
6039
|
|
|
5054
|
-
<sub>`api.ogt` line
|
|
6040
|
+
<sub>`api.ogt` line 4922</sub>
|
|
5055
6041
|
|
|
5056
6042
|
<a id="type-RenderTargetFormat"></a>
|
|
5057
6043
|
|
|
@@ -5074,7 +6060,7 @@ enum RenderTargetFormat {
|
|
|
5074
6060
|
}
|
|
5075
6061
|
```
|
|
5076
6062
|
|
|
5077
|
-
<sub>`api.ogt` line
|
|
6063
|
+
<sub>`api.ogt` line 4947</sub>
|
|
5078
6064
|
|
|
5079
6065
|
<a id="type-RenderTarget"></a>
|
|
5080
6066
|
|
|
@@ -5088,7 +6074,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
5088
6074
|
handle RenderTarget "A texture a camera draws into (og.render.renderTarget), as three.js WebGLRenderTarget."
|
|
5089
6075
|
```
|
|
5090
6076
|
|
|
5091
|
-
<sub>`api.ogt` line
|
|
6077
|
+
<sub>`api.ogt` line 4960</sub>
|
|
5092
6078
|
|
|
5093
6079
|
<a id="type-RenderTargetDesc"></a>
|
|
5094
6080
|
|
|
@@ -5122,7 +6108,7 @@ struct RenderTargetDesc {
|
|
|
5122
6108
|
}
|
|
5123
6109
|
```
|
|
5124
6110
|
|
|
5125
|
-
<sub>`api.ogt` line
|
|
6111
|
+
<sub>`api.ogt` line 4969</sub>
|
|
5126
6112
|
|
|
5127
6113
|
<a id="type-RenderTargetInfo"></a>
|
|
5128
6114
|
|
|
@@ -5149,7 +6135,7 @@ struct RenderTargetInfo {
|
|
|
5149
6135
|
}
|
|
5150
6136
|
```
|
|
5151
6137
|
|
|
5152
|
-
<sub>`api.ogt` line
|
|
6138
|
+
<sub>`api.ogt` line 4984</sub>
|
|
5153
6139
|
|
|
5154
6140
|
<a id="type-Post"></a>
|
|
5155
6141
|
|
|
@@ -5163,7 +6149,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
5163
6149
|
handle Post "A custom post pass from og.load.post (an `.ogt` of `type post`): a WGSL `post` function over the lit image and the parameters it reads."
|
|
5164
6150
|
```
|
|
5165
6151
|
|
|
5166
|
-
<sub>`api.ogt` line
|
|
6152
|
+
<sub>`api.ogt` line 5096</sub>
|
|
5167
6153
|
|
|
5168
6154
|
<a id="type-PostError"></a>
|
|
5169
6155
|
|
|
@@ -5184,7 +6170,7 @@ struct PostError {
|
|
|
5184
6170
|
}
|
|
5185
6171
|
```
|
|
5186
6172
|
|
|
5187
|
-
<sub>`api.ogt` line
|
|
6173
|
+
<sub>`api.ogt` line 5114</sub>
|
|
5188
6174
|
|
|
5189
6175
|
<a id="type-VolumetricFog"></a>
|
|
5190
6176
|
|
|
@@ -5207,7 +6193,7 @@ enum VolumetricFog {
|
|
|
5207
6193
|
}
|
|
5208
6194
|
```
|
|
5209
6195
|
|
|
5210
|
-
<sub>`api.ogt` line
|
|
6196
|
+
<sub>`api.ogt` line 5128</sub>
|
|
5211
6197
|
|
|
5212
6198
|
<a id="type-BakedScene"></a>
|
|
5213
6199
|
|
|
@@ -5240,7 +6226,7 @@ struct BakedScene {
|
|
|
5240
6226
|
}
|
|
5241
6227
|
```
|
|
5242
6228
|
|
|
5243
|
-
<sub>`api.ogt` line
|
|
6229
|
+
<sub>`api.ogt` line 5176</sub>
|
|
5244
6230
|
|
|
5245
6231
|
## Column kinds
|
|
5246
6232
|
|
|
@@ -5251,6 +6237,7 @@ Each is a factory, `Geometry(value?, options?)`, that makes one field of a compo
|
|
|
5251
6237
|
| <a id="column-Geometry"></a>`Geometry` | `Geometry` | `Uint32Array` | 2 | A Geometry handle field. |
|
|
5252
6238
|
| <a id="column-Material"></a>`Material` | `Material` | `Uint32Array` | 2 | A Material handle field. |
|
|
5253
6239
|
| <a id="column-ToneMapping"></a>`ToneMapping` | `ToneMapping` | `Uint32Array` | 1 | A ToneMapping field: the variant's index. |
|
|
6240
|
+
| <a id="column-QualityPreset"></a>`QualityPreset` | `QualityPreset` | `Uint32Array` | 1 | A QualityPreset field: the variant's index. |
|
|
5254
6241
|
| <a id="column-Texture"></a>`Texture` | `Texture` | `Uint32Array` | 2 | A Texture handle field (0 is none). |
|
|
5255
6242
|
| <a id="column-Lut"></a>`Lut` | `Lut` | `Uint32Array` | 2 | A Lut handle field (0 is none). |
|
|
5256
6243
|
| <a id="column-EnvironmentMap"></a>`EnvironmentMap` | `EnvironmentMap` | `Uint32Array` | 2 | An EnvironmentMap handle field (0 is none). |
|
|
@@ -5277,7 +6264,7 @@ column Geometry {
|
|
|
5277
6264
|
}
|
|
5278
6265
|
```
|
|
5279
6266
|
|
|
5280
|
-
<sub>`api.ogt` line
|
|
6267
|
+
<sub>`api.ogt` line 2251</sub>
|
|
5281
6268
|
|
|
5282
6269
|
```ogt
|
|
5283
6270
|
column Material {
|
|
@@ -5288,7 +6275,7 @@ column Material {
|
|
|
5288
6275
|
}
|
|
5289
6276
|
```
|
|
5290
6277
|
|
|
5291
|
-
<sub>`api.ogt` line
|
|
6278
|
+
<sub>`api.ogt` line 2258</sub>
|
|
5292
6279
|
|
|
5293
6280
|
```ogt
|
|
5294
6281
|
column ToneMapping {
|
|
@@ -5299,7 +6286,18 @@ column ToneMapping {
|
|
|
5299
6286
|
}
|
|
5300
6287
|
```
|
|
5301
6288
|
|
|
5302
|
-
<sub>`api.ogt` line
|
|
6289
|
+
<sub>`api.ogt` line 2633</sub>
|
|
6290
|
+
|
|
6291
|
+
```ogt
|
|
6292
|
+
column QualityPreset {
|
|
6293
|
+
doc "A QualityPreset field: the variant's index."
|
|
6294
|
+
array Uint32Array
|
|
6295
|
+
stride 1
|
|
6296
|
+
value QualityPreset
|
|
6297
|
+
}
|
|
6298
|
+
```
|
|
6299
|
+
|
|
6300
|
+
<sub>`api.ogt` line 2655</sub>
|
|
5303
6301
|
|
|
5304
6302
|
```ogt
|
|
5305
6303
|
column Texture {
|
|
@@ -5310,7 +6308,7 @@ column Texture {
|
|
|
5310
6308
|
}
|
|
5311
6309
|
```
|
|
5312
6310
|
|
|
5313
|
-
<sub>`api.ogt` line
|
|
6311
|
+
<sub>`api.ogt` line 2757</sub>
|
|
5314
6312
|
|
|
5315
6313
|
```ogt
|
|
5316
6314
|
column Lut {
|
|
@@ -5321,7 +6319,7 @@ column Lut {
|
|
|
5321
6319
|
}
|
|
5322
6320
|
```
|
|
5323
6321
|
|
|
5324
|
-
<sub>`api.ogt` line
|
|
6322
|
+
<sub>`api.ogt` line 2764</sub>
|
|
5325
6323
|
|
|
5326
6324
|
```ogt
|
|
5327
6325
|
column EnvironmentMap {
|
|
@@ -5332,7 +6330,7 @@ column EnvironmentMap {
|
|
|
5332
6330
|
}
|
|
5333
6331
|
```
|
|
5334
6332
|
|
|
5335
|
-
<sub>`api.ogt` line
|
|
6333
|
+
<sub>`api.ogt` line 2771</sub>
|
|
5336
6334
|
|
|
5337
6335
|
```ogt
|
|
5338
6336
|
column ParticleEmitter {
|
|
@@ -5343,7 +6341,7 @@ column ParticleEmitter {
|
|
|
5343
6341
|
}
|
|
5344
6342
|
```
|
|
5345
6343
|
|
|
5346
|
-
<sub>`api.ogt` line
|
|
6344
|
+
<sub>`api.ogt` line 2798</sub>
|
|
5347
6345
|
|
|
5348
6346
|
```ogt
|
|
5349
6347
|
column AoMethod {
|
|
@@ -5354,7 +6352,7 @@ column AoMethod {
|
|
|
5354
6352
|
}
|
|
5355
6353
|
```
|
|
5356
6354
|
|
|
5357
|
-
<sub>`api.ogt` line
|
|
6355
|
+
<sub>`api.ogt` line 2812</sub>
|
|
5358
6356
|
|
|
5359
6357
|
```ogt
|
|
5360
6358
|
column DofQuality {
|
|
@@ -5365,7 +6363,7 @@ column DofQuality {
|
|
|
5365
6363
|
}
|
|
5366
6364
|
```
|
|
5367
6365
|
|
|
5368
|
-
<sub>`api.ogt` line
|
|
6366
|
+
<sub>`api.ogt` line 2825</sub>
|
|
5369
6367
|
|
|
5370
6368
|
```ogt
|
|
5371
6369
|
column SpriteBlend {
|
|
@@ -5376,7 +6374,7 @@ column SpriteBlend {
|
|
|
5376
6374
|
}
|
|
5377
6375
|
```
|
|
5378
6376
|
|
|
5379
|
-
<sub>`api.ogt` line
|
|
6377
|
+
<sub>`api.ogt` line 2838</sub>
|
|
5380
6378
|
|
|
5381
6379
|
```ogt
|
|
5382
6380
|
column StripBlend {
|
|
@@ -5387,7 +6385,7 @@ column StripBlend {
|
|
|
5387
6385
|
}
|
|
5388
6386
|
```
|
|
5389
6387
|
|
|
5390
|
-
<sub>`api.ogt` line
|
|
6388
|
+
<sub>`api.ogt` line 2851</sub>
|
|
5391
6389
|
|
|
5392
6390
|
```ogt
|
|
5393
6391
|
column Palette {
|
|
@@ -5398,7 +6396,7 @@ column Palette {
|
|
|
5398
6396
|
}
|
|
5399
6397
|
```
|
|
5400
6398
|
|
|
5401
|
-
<sub>`api.ogt` line
|
|
6399
|
+
<sub>`api.ogt` line 3069</sub>
|
|
5402
6400
|
|
|
5403
6401
|
```ogt
|
|
5404
6402
|
column DitherPattern {
|
|
@@ -5409,7 +6407,7 @@ column DitherPattern {
|
|
|
5409
6407
|
}
|
|
5410
6408
|
```
|
|
5411
6409
|
|
|
5412
|
-
<sub>`api.ogt` line
|
|
6410
|
+
<sub>`api.ogt` line 3086</sub>
|
|
5413
6411
|
|
|
5414
6412
|
```ogt
|
|
5415
6413
|
column StyliseSpace {
|
|
@@ -5420,7 +6418,7 @@ column StyliseSpace {
|
|
|
5420
6418
|
}
|
|
5421
6419
|
```
|
|
5422
6420
|
|
|
5423
|
-
<sub>`api.ogt` line
|
|
6421
|
+
<sub>`api.ogt` line 3100</sub>
|
|
5424
6422
|
|
|
5425
6423
|
```ogt
|
|
5426
6424
|
column ReflectionProbeMode {
|
|
@@ -5431,7 +6429,7 @@ column ReflectionProbeMode {
|
|
|
5431
6429
|
}
|
|
5432
6430
|
```
|
|
5433
6431
|
|
|
5434
|
-
<sub>`api.ogt` line
|
|
6432
|
+
<sub>`api.ogt` line 4025</sub>
|
|
5435
6433
|
|
|
5436
6434
|
```ogt
|
|
5437
6435
|
column LineMode {
|
|
@@ -5442,7 +6440,7 @@ column LineMode {
|
|
|
5442
6440
|
}
|
|
5443
6441
|
```
|
|
5444
6442
|
|
|
5445
|
-
<sub>`api.ogt` line
|
|
6443
|
+
<sub>`api.ogt` line 4754</sub>
|
|
5446
6444
|
|
|
5447
6445
|
```ogt
|
|
5448
6446
|
column RenderTargetFormat {
|
|
@@ -5453,7 +6451,7 @@ column RenderTargetFormat {
|
|
|
5453
6451
|
}
|
|
5454
6452
|
```
|
|
5455
6453
|
|
|
5456
|
-
<sub>`api.ogt` line
|
|
6454
|
+
<sub>`api.ogt` line 4953</sub>
|
|
5457
6455
|
|
|
5458
6456
|
```ogt
|
|
5459
6457
|
column RenderTarget {
|
|
@@ -5464,7 +6462,7 @@ column RenderTarget {
|
|
|
5464
6462
|
}
|
|
5465
6463
|
```
|
|
5466
6464
|
|
|
5467
|
-
<sub>`api.ogt` line
|
|
6465
|
+
<sub>`api.ogt` line 4962</sub>
|
|
5468
6466
|
|
|
5469
6467
|
```ogt
|
|
5470
6468
|
column Post {
|
|
@@ -5475,7 +6473,7 @@ column Post {
|
|
|
5475
6473
|
}
|
|
5476
6474
|
```
|
|
5477
6475
|
|
|
5478
|
-
<sub>`api.ogt` line
|
|
6476
|
+
<sub>`api.ogt` line 5098</sub>
|
|
5479
6477
|
|
|
5480
6478
|
## Constants
|
|
5481
6479
|
|
|
@@ -5491,28 +6489,28 @@ column Post {
|
|
|
5491
6489
|
const PARTICLES_ARMED u32 4294967295 "ParticleSystem.startTick's default: never written. A looping emitter emits as if started at tick 0; a one-shot (`looping false`) emits nothing until its startTick is written, so a burst spawned in `start` waits for its first use. Write it back to re-arm a one-shot without firing it."
|
|
5492
6490
|
```
|
|
5493
6491
|
|
|
5494
|
-
<sub>`api.ogt` line
|
|
6492
|
+
<sub>`api.ogt` line 3445</sub>
|
|
5495
6493
|
|
|
5496
6494
|
```ogt
|
|
5497
6495
|
const MAX_LIGHTS u32 256 "The most point and spot lights one frame draws, among those in view; past it the ones brightest at the camera are kept."
|
|
5498
6496
|
```
|
|
5499
6497
|
|
|
5500
|
-
<sub>`api.ogt` line
|
|
6498
|
+
<sub>`api.ogt` line 3989</sub>
|
|
5501
6499
|
|
|
5502
6500
|
```ogt
|
|
5503
6501
|
const MAX_CLUSTER_LIGHTS u32 64 "The most point and spot lights that shade one screen cluster (a 1/16 by 1/9 tile of the view and one of 24 depth slices); past it the ones brightest at the camera are kept there."
|
|
5504
6502
|
```
|
|
5505
6503
|
|
|
5506
|
-
<sub>`api.ogt` line
|
|
6504
|
+
<sub>`api.ogt` line 3990</sub>
|
|
5507
6505
|
|
|
5508
6506
|
```ogt
|
|
5509
6507
|
const UI_LAYER i32 1000 "The UI's layer among screen sprites and screen text (SpriteDesc and TextDesc with screen): those at or below it draw under every og.ui element, those above it over every one, modals, toasts and the screen transition included (a HUD element made of sprites sitting on a UI panel: draw it only while its screen shows), in their layers' order either way."
|
|
5510
6508
|
```
|
|
5511
6509
|
|
|
5512
|
-
<sub>`api.ogt` line
|
|
6510
|
+
<sub>`api.ogt` line 3991</sub>
|
|
5513
6511
|
|
|
5514
6512
|
```ogt
|
|
5515
6513
|
const MAX_REFLECTION_PROBES u32 8 "The most og.ReflectionProbe components one frame samples, nearest the camera first; the rest are skipped."
|
|
5516
6514
|
```
|
|
5517
6515
|
|
|
5518
|
-
<sub>`api.ogt` line
|
|
6516
|
+
<sub>`api.ogt` line 4017</sub>
|