SEA3D File Specification

Messages
5th June 2015 - 02:29:55 AM
SEA3D File Format (.sea)
by SEA3D Team – https://github.com/sunag/sea3d

Introduction

This is the data structure of the file format SEA3D. Here we have a documentation not yet finalized more showing some of the main points of the file format.

This document is organized in the order of description and lastly his examples.

Top-level

Top level is the file format is seen in full.

Offset (bytes)Size (bytes)NameDescription
012HeaderHead of File
12VariableBlockBody of File
Variable3End FileMust be 0xEA3D


Header

Offset (bytes)Size (bytes)NameDescription
03ConstStringSign ( Default "S3D" )
33Uint24Version VVSSBB | V = Version | S = Subversion | B = Buildversion
61Uint8Protected Method ( None = 0 )
71Uint8Compression Method ( None = 0 )
84BlocksCount of Blocks


Block = SEAObject

The files chain of the SEA3D is similar to the ZIP file format. Each mesh, animation or texture represents a file here called Block as SEAObject. The basic value of a block is your name and type eg. Box001.m3d represents a mesh and Texture.jpg a texture.

Offset (bytes)Size (bytes)NameDescription
04Uint32Block Size
41Uint8Flag (2 bit is compression, 3 bit is streaming, > 6 custom config)
544[char]Extension of block (eg. jpg, png, m3d...)
9Bock SizeBytesData of file
VariableFlags ReaderVariableRead others flags data ( Only for special cases )


Flags

Compression decompress using the standard compression file configuration.
Streaming read the Block immediately on your file load.

End File

Offset (bytes)Size (bytes)NameDescription
04Uint24Must be 0x5EA3D1


Loader Minimal – JavaScript



----

DCC Comparison

SEA3D is not only a interchange file format, developed to get high performance for games in multiple platforms.

Summary

The list below contains the native features of the file formats listed below.
Comparison between the most popular file formats. FBX, Collada, OBJ with SEA3D.

Link is not implemented in the same file.
End Product release-quality.

DescriptionSEA3DFBXCOLLADAOBJ
Open-SourceYesSDKYesYes
AnimationYesYesYesNo
MeshYesYesYesYes
Sprite3DYesYesNoNo
SkeletonYesYesYesNo
Vertex AnimationYesYesYesNo
TextureYesLinkLinkLink
MaterialYesYesYesLink
LightMap | DetailMap | NormalMapYesLinkLinkNo
Layered TextureYesNoNoNo
Animation TakesYesYesYesNo
Native CompressionYesNoNoNo
Binary FormatYesYesNoNo
Streaming File FormatYesNoNoNo
Sound3DYesNoNoNo
InstancingYesYesYesNo
ScriptingYesNoNoNo
Scene HierarchyYesYesYesNo
Multiple Channels MappingYesYesYesYes
Interchange File FormatYes | End ProductYesYesYes


----

File Extensions

Scene Objects

.m3d = Mesh.
.m2d = Sprite3D.
.s3d = Scene3D.
.cam = Camera3D.
.sp = SoundPoint3D.
.jnt = Joint(Bone) Object.
.line = Line.
.dmy = Dummy.
.c3d = Container3D (Group3D).
.plht = Point light.
.dlht = Directional light.

Geometry

.geo = Geometry.

Animation

.anm = Generic animation, lights, meshes, helpers, textures and others.
.vtxa = Vertex animation.
.skla = Skeleton animation.
.mpha = Morph animation, animation of the weight.

Modifiers

.skl = Skeleton.
.vtc = Vertex color.
.mph = Geometry morphs.

Actions

.act = Actions, includes actions such like change environment, play sound, add fog and others.

Properties

.prop = Object properties (Custom Attributes).

Material

.mat = Material.

Textures

.tex = Texture layers.
.cmap = Cube Mapping. 6 bitmaps with relative extension.
.smap = Single Cube Mapping. 1 bitmap with relative extension.

RTT - Render to Texture

.rttp = Planar Render to Texture.
.rttc = CubeMap Render to Texture.

Script

.lua = Lua script.

Global

.wdp = JPEG-XR.
.jpg = Joint Photographic Experts Group.
.png = Portable Network Graphics.
.gif = Graphics Interchange Format.
.mp3 = Moving Picture Experts Group - MPEG-2 Audio Layer III.
.ogg = Ogg Vorbis.
.data = Custom binary data.

Flash Player

.atf = Adobe Texture Format.
.atfc = Adobe Texture Format (Cube Mapping).

Console | WebGL

.dds = DirectDraw Surface.
.ddsc = DirectDraw Surface (Cube Mapping).

Info

.inf = File info, name, date, copyright and others.

Help