summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-21 14:33:37 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-21 14:33:37 +0100
commit2dd08d042aae468b23e5943ac2e9d807e5b5f6ba (patch)
treed18d73173d7c1b3da895bc68d11cf488b160b54d
parent771cda23f0e716c2107cedf1ab5b20aab8daf524 (diff)
downloadweareserver-2dd08d042aae468b23e5943ac2e9d807e5b5f6ba.tar
weareserver-2dd08d042aae468b23e5943ac2e9d807e5b5f6ba.tar.bz2
weareserver-2dd08d042aae468b23e5943ac2e9d807e5b5f6ba.tar.zst
update doc
-rw-r--r--doc/other.md57
-rw-r--r--doc/resources.md20
2 files changed, 48 insertions, 29 deletions
diff --git a/doc/other.md b/doc/other.md
index 3108e78..76ab9e8 100644
--- a/doc/other.md
+++ b/doc/other.md
@@ -10,35 +10,42 @@
## glTF extension status
-| Extension | Status |
-| ------------------------------- | ---------------- |
-| KHR_animation_pointer | Not wanted (4) |
-| KHR_draco_mesh_compression | Maybe todo |
-| KHR_lights_punctual | Supported |
-| KHR_materials_anisotropy | Todo |
-| KHR_materials_clearcoat | Todo |
-| KHR_materials_dispersion | Supported |
-| KHR_materials_emissive_strength | Supported |
-| KHR_materials_ior | Supported |
-| KHR_materials_iridescence | Todo |
-| KHR_materials_sheen | Todo |
-| KHR_materials_specular | Maybe todo |
-| KHR_materials_transmission | Supported |
-| KHR_materials_unlit | Supported |
-| KHR_materials_variants | Not required (1) |
-| KHR_materials_volume | Supported |
-| KHR_mesh_quantization | Maybe todo |
-| KHR_texture_basisu | Not required (3) |
-| KHR_texture_transform | Not required (4) |
-| KHR_xmp_json_ld | Todo |
-| EXT_mesh_gpu_instancing | Not required (2) |
-| EXT_meshopt_compression | Todo, maybe |
-| EXT_texture_webp | Supported |
+| Extension | Status |
+| ------------------------------------- | ---------------- |
+| KHR_animation_pointer | Not required (5) |
+| KHR_draco_mesh_compression | Maybe todo |
+| KHR_lights_punctual | Supported |
+| KHR_materials_anisotropy | Todo |
+| KHR_materials_clearcoat | Todo |
+| KHR_materials_dispersion | Supported |
+| KHR_materials_emissive_strength | Supported |
+| KHR_materials_ior | Supported |
+| KHR_materials_iridescence | Todo |
+| KHR_materials_sheen | Todo |
+| KHR_materials_specular | Maybe todo |
+| KHR_materials_transmission | Supported |
+| KHR_materials_unlit | Supported |
+| KHR_materials_variants | Not required (1) |
+| KHR_materials_volume | Supported |
+| KHR_mesh_quantization | Maybe todo |
+| KHR_texture_basisu | Not required (3) |
+| KHR_texture_transform | Not required (4) |
+| KHR_xmp_json_ld | Todo |
+| EXT_mesh_gpu_instancing | Not required (2) |
+| EXT_meshopt_compression | Todo, maybe |
+| EXT_texture_webp | Supported |
+| VRMC_vrm | Todo |
+| VRMC_vrm_animation | Todo, maybe |
+| VRMC_springBone | Todo |
+| VRMC_springBone_extended_collider | Todo |
+| VRMC_node_constraint | Todo, maybe |
+| VRMC_materials_mtoon | Todo |
+| VRMC_materials_hdr_emissiveMultiplier | Todo, maybe |
1. We can do the same by sharing subresources.
2. Shared parts can be optimized to instanced drawing by the client. This would
also only be a bandwidth optimization, avoiding gigantic prefabs.
-3. KTX is worse then WebP in terms of size. Transcoding on the client is
+3. KTX is worse than WebP in terms of size. Transcoding on the client is
possible.
4. Automatic atlas packing is also possible on the client.
5. Introduces too much complexity and interfers with our animation system.
diff --git a/doc/resources.md b/doc/resources.md
index 05b4cfc..c015ab7 100644
--- a/doc/resources.md
+++ b/doc/resources.md
@@ -99,12 +99,19 @@ white except normals are zero.
## Armature
+Armature is used for humanoid avatar rigging and generally follows VRM
+specification. Joints are arranged in a hierarchy where transforms are
+inherited. Attribute values are zipped similar to vertex attributes.
+
| Key | Value Type | |
| ----------- | ----------- | -------------------------------------- |
| `parent` | `[u16]` | Parent indecies, Root points to itself |
| `transform` | `[Affine3]` | |
| `name` | `[String]` | Each string prefixed with u16 length |
+- **Names**: Indirectly controlled joints have an empty name. All other bones
+ are named like in [VRMC_vrm].
+
## LightPart
| Key | Value Type |
@@ -124,10 +131,13 @@ white except normals are zero.
## EnvironmentPart
-| Key | Value Type | |
-| -------- | -------------- | ---------------- |
-| `skybox` | `Res` | |
-| `sun` | `Vec3`, `Vec3` | Direction, Color |
+| Key | Value Type | |
+| -------- | -------------- | ------------------------ |
+| `skybox` | `Res<Texture>` | OpenEXR support required |
+| `sun` | `Vec3`, `Vec3` | Direction, Color |
+
+- **Skybox**: Equirectangular projection is used. TODO: Unit for Luminous
+ intensity? lm/sr?
## Texture
@@ -155,3 +165,5 @@ Only one key for shape should be set.
[KHR_materials_dispersion]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_dispersion
[KHR_lights_punctual]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_lights_punctual
[KHR_lights_unlit]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_lights_unlit
+[VRMC_vrm]: https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_vrm-1.0
+[VRMC_springBone]: https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_springBone-1.0