Artifact Features
Assets:
Maximum Package Size: 10 megabytes.
This includes the gltf file and any video / audio files that should be played.
Scene setup
3D File:
.gltf and .glb files are supported. Textures should be optimized and packed into the gltf file. For optimal gpu performance, make sure that the image sizes are powers of two (128, 256, 512, 1024, 2048). Textures bigger than 2048x2048 pixels can usually be resized to 1024x1024 without losing visible quality. (re)baking the textures also usually makes them smaller because the bake algorithm tries to find the smallest image it can fit the texture parts into. It's allowed to use non-quadratic images too (example; 1024x512) For optimization of images tools like optipng and sharp offer command line interfaces to quickly convert multiple images.
Object position
The 3D object in the gltf should be positioned on X: 0 and Y: 0, the Z position determines how high the objects floats above the floor. The Blender units translate 1:1 to meters.
Scenes
Please delete all non-used scenes from the blend project before exporting the gltf file, empty scenes will cause an error.
Apply
Please apply the transform, scale, rotation and modifier data of the object (in blender the apply menu can be shown using ctrl+a)
Animations
All animations in the gltf file will play simultaneously.
Only a few properties are animatable:
- Keyframe (translation, rotation, scale)
- Shape keys
- Armatures / skinning
Example: Fake Mirror
Skybox image - required
360 degree image of the location the artifact is positioned at.
Should be edited to remove the photographer from the image.
Alternatively, the skybox image can also be related to the artifact and not to the location.
Video - optional
At least one object in the scene has to be named "videotarget" for this to work.
Depending on the object, there can theoretically also be multiple videotargets.
Any mesh can be a videotarget, just name it "videotarget" and the video will play on the object, using the same texture mapping as that object uses before the video gets applied.
Please note that the number of irregular vertices drops performance almost exponentially, cubes, planes, spheres and other very simple structures work well.
Max Resolution: 1280x720p
Optimal Resolution: 1024x512p, 512x1024p
Framerate: 25
Maximum Video Bitrate: ~2MBit/s
Audio sample rate: 44100, 48000
FFmpeg command:
ffmpeg -i video_in.mp4 -b:v 1024k -b:a 128k video_out.mp4
Example: De.Fragmentation
Audio - optional
Unfortunately, directional audio is broken in chromium on android, so this audio file will just play in stereo. The chrome bug that tracks progress on this is a few years old by now and unlikely to be fixed until the android audio drivers are rewritten from scratch.
Clipping
If you want to clip parts of the scene, you can add a clipping mesh to your artifact.
Just add any mesh(es) and make sure their name includes the word "clip".
Visitors can walk anywhere in the scene, including the INSIDE of the clipping object, breaking the clipping in weird ways.
To avoid this problem, clipping objects should only be placed where visitors are unlikely to go to (below the ground, very far from the artifact, or high in the sky (2+ meters)) alternatively, the clipping object should be as small as possible.
Example: The Wound
Photogrammetry
If your artifact is based on a 3d scan, instant meshes can be used to cleanup and minify the mesh before using it. Unfortunately the uv map of the texture is lost in the process, it usually is quite easy to reapply after instant meshes has been applied