SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
F4D Specification
F4D Reference Manual
F4D v0.0.1 Data Format Specification
10 JAN 2019
V 1 2019-1-10 F4D v0.0.1
© Copyright 2019 Gaia3D,Inc.
The information in this document is object to change without notice.
2
Contents
F4D Reference Manual........................................................................................................................1
1.Format structure................................................................................................................................3
1.1 HeaderAsimetric.hed ...........................................................................................................4
1.2 Bricks Folder........................................................................................................................5
1.3 Models Folder ......................................................................................................................7
1.4 Reference Folder..................................................................................................................8
1.5 Images_Resized folder.......................................................................................................10
1.6 lod[lod] (lod : 3, 4, 5).........................................................................................................10
1.7 MosaicTextureLOD[lod].png (lod : 2, 3, 4, 5) ..................................................................10
1.8 objectIndexFile.ihe.............................................................................................................10
3
1.Format structure
F4D is composed of 1 header file, 3 folders for indoor data structure, 3 binary files for outdoor data
structure and 4 image files for textures used in LOD 2~5. Different with LOD systems of other 3D
graphics fields, LOD system of F4D has reverse LOD order. The lower number LOD a model has,
the more detailed data it has. It is for, in future, supporting flexible LOD based on an idea that
bigger buildings can be seen from further distance. The name of the folder which contains one F4D
dataset is ‘F4D_[dataKey]’ where ‘dataKey’ is an unique key for an F4D dataset.
Figure 1. Overall Structure of F4D Format
objectIndexFile.ihe is necessary to publish F4D data through web services. This file is a temporary
metadata, which is going to nothing. (The role of this file is being implemented in other parts
mago3D and this file is being removed. not removed completely yet.) This file should be in F4D
data folder for web service at the same depth as each F4D data folders.
Figure 2. objectIndexFile.ihe
* “Length of Bytes” in all following table contents are described by C++ style.
4
1.1 HeaderAsimetric.hed
It contains the metadata for 3D GIS of datasets in an F4D folder and serves as a header file of
datasets. Overall structure of HeaderAsimetric.hed is explained in Table 1, 1-1, and 1-2.
Table 1 Structure of HeaderAsimetric.hed
Name of the Field Length of Bytes Remarks
version 5 × sizeof(char) bytes . Latest verison is 0.0.1nfoiersionvF4D
guidLength sizeof(int) bytes Length of guid
guid [guidLength] × sizeof(char) bytes Guid. Reserved. Not used now.
longitude
latitude
2 × sizeof(double) bytes Longitude, latitude(degree) of datasets. Not
used now.
altitude sizeof(float) bytes Altitude (unit: m) of datasets. Not used now.
bbox 6 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX,
maxY, maxZ in meter
octree dimension flexible Hierarchy info of octree structure
textureCount sizeof(unsigned int) bytes Count of textures used in the F4D
textureInfo
bytes
all texture information
lodCount sizeof(unsigned char) bytes Count of all supported LOD
lodInfo
bytes
all supported LOD info
Table 1-1 Detailed Structure of “octree dimension” Specified in Table 1
Name of the Field Length of Bytes Remarks
depth sizeof(unsigned int) bytes Depth of this octree
bbox 6 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX,
maxY, MaxZ. Only record when depth == 0
childCount sizeof(unsigned char) bytes No. of child octree
triangleCount sizeof(unsigned int) bytes No. of triangle in this octree
chidrenDimensions flexible Recursively record the child octree
dimensions
Table 1-2 Detailed Structure of “textureInfo” Specified in Table 1
Name of the Field Length of Bytes Remarks
textureTypeLength sizeof(unsigned int) bytes ength of string for texture typeL
textureType [textureTypeLength] × sizeof(char) bytes Texture type. Only “diffuse” is used now.
textureFileNameLength sizeof(unsigned int) bytes Length of string for texture file name
textureFileName [textureFileNameLength] × sizeof(char)
bytes
Texture file name
Table 1-3 Detailed Structure of “lodInfo” Specified in Table 1
Name of the Field Length of Bytes Remarks
lod sizeof(unsigned char) bytes LOD number
bDividedBySpatialOctree sizeof(bool) bytes whether this LOD is divided by octree
lodFileNameLength sizeof(unsigned char) bytes Length of string for LOD data file name
lodFileName [lodFileNameLength] × sizeof(char)
bytes
LOD data file name. Only available when
lod >= 3.(that is, only outdoor)
lodTextureFileNameLength sizeof(unsigned char) bytes Length of string for LOD texture file name
lodTextureFileName [lodTextureFileNameLength] ×
sizeof(char) bytes
LOD texture file name. Only available
when LOD >=2.(that is, only data made by
NSM method)
5
1.2 Bricks Folder
This folder contains binary files of LOD2 geometric data. F4D converter splits an original 3D
model data into smaller-sized models divided by octrees, and applies NSM(Net Surface Mesh)
method on each octree to reduce data size and creates rougher data. The name of each files is
“[octreeNumber]_brick”. The count of digit of octreeNumber represents the depth of octree system
and non-existing octreeNumber means that there is no intersection between original model and the
octree of that octreeNumber.
Figure 3 before/after NSM is applied.
Figure 4 Sample “Bricks” folder of depth 1 octree. Octree 4, 7, and 8 are removed.
6
Overall structure of LOD2 files in “Bricks” folder is explained in Table 2.
Table 2 Overall Structure of LOD2 file
Name of the Field Length of Bytes Remarks
bbox 6 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX,
maxY, MaxZ
vertexCount sizeof(unsigned int) bytes No. of vertex in a Brick
vertexPositions [vertexCount] × 3 × sizeof(float)
bytes
x, y, z coordinates of each vertex (unit: m)
bNormal sizeof(bool) bytes Whether normal vectors exist or not
normalCount sizeof(unsigned int) bytes No. of normal vectors (same as No. of vertex
count) Only record when bNormal == true
normalVectors [normalCount] × 3 × sizeof(char)
bytes
x, y, z components of normal vectors. Only
record when bNormal == true
bColor sizeof(bool) bytes Record whether colour array is existing or not
colorCount sizeof(unsigned int) bytes No. of colours (same as No. of vertex count)
Only record when bColour == true
vertexColors [colorCount]×4×sizeof(unsigned
char) bytes
Colour values (red, green, blue and alpha) of
each vertex. Only record when bColour ==
true
bTextureCoord sizeof(bool) bytes Record whether texture coordinate array is
existing or not
texgtureCoordType sizeof(unsigned short) bytes GL enumeration value for type of texture
coordinate description. Now only 5126(float)
type available. Only record when
bTextureCoord == true
vertexCount sizeof(unsigned int) bytes No. of vertex count. Only record when
bTextureCoord == true
textureCoordinates [vertexCount] × 2 × sizeof(float) u, v coordinate of each vertex. Only record
when bTextureCoord == true
7
1.3 Models Folder
This folder contains original 3D objects information called Models that constitutes F4D itself.
Models will be made to be an instance physically in the 3D space by pairing Reference information
in Reference folder. Structure of F4D’s Model information is shown in Table 3, 3-1, 3-2.
Table 3 Overall Structure of Models File
Name of the Field Length of Bytes Remarks
version 5 × sizeof(char) bytes Version of F4D. latest version is 0.0.1
modelCount sizeof(unsigned int) bytes No. of Models that References in octree
refers
modelData
bytes
Data of each Model
Table 3-1 Detailed Structure of “modelData” in Table 3
Name of the Field Length of Bytes Remarks
modelIndex sizeof(unsigned int) bytes Unique ID of Model. This ID is unique
number throughout the datasets
bbox 3 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX,
maxY, MaxZ
vboCount sizeof(unsigned int) bytes No. of VBO(Vertex Buffer Object) that
constitutes Model
vboData
bytes
Data of each VBO
dummy boolean sizeof(bool) bytes just false.
Table 3-2 Detailed Structure of “vboData” in Table 3-1
Name of the Field Length of Bytes Remarks
vertexCount sizeof(unsigned int) bytes No. of vertex that constitutes VBO
vertexPositions [vertexCount] × 3 × sizeof(float)
bytes
x, y, z coordinates of each vertex(unit: m)
normalCount sizeof(unsigned int) bytes No. of normal vectors(same as vertexCount)
normalVectors [normalCount] × 3 × sizeof(char)
bytes
Normal vectors of x, y, z
indexCount sizeof(unsigned int) bytes No. of index of vertex that constitutes triangle
sizeLevels sizeof(unsigned char) bytes No. of levels to be used when storing index of
triangles in order of size
sizeThresholds [sizeLevels] × sizeof(float) bytes Delimiter of each segment
indexMarkers [sizeLevels] × sizeof(unsigned int)
bytes
The positions of the indexes whose size is
first changed in the sorted triangle index
array.
indexArray [indexCount] × sizeof(unsigned
short) bytes
Array that records indexes of vertex of each
triangle
8
1.4 Reference Folder
This folder contains binary files of reference information such as position, ID, indexes of 3D
objects that is constituting F4D. By combining Reference information and Models information, real
3D objects will be physically rendered on the described place with attributes (- called as “3D
objects are instantiated.”). Reference files are created along spatial octrees so that the name of a
reference file is “[octreeNumber]_ref”.
Figure 5 Sample “Reference” folder of depth 1 octree. Octree 4, 7, and 8 are removed.
Structure of F4D’s Reference information is shown in Table 4, 4-1, 4-2, 4-3.
Table 4 Overall Structure of Reference File
Name of the Field Length of Bytes Remarks
version 5 × sizeof(char) bytes Version of F4D. latest version is 0.0.1
referenceCount sizeof(unsigned int) bytes No. of reference in the octree
referenceData
bytes
Data of each reference
triangleCount sizeof(unsigned int) bytes Total triangle count in this reference
exteriorVisibilityIndices flexible Visibility indices for exterior occlusion
culling. Written recursively for all vision
octrees
interiorVisibilityIndices flexible Visibility indices for interior occlusion
culling. Written recursively for all vision
octrees
Table 4-1 Detailed Structure of “referenceData” in Table 4
Name of the Field Length of Bytes Remarks
referenceIndex sizeof(unsigned int) bytes Unique ID of reference. This ID is unique
number throughout the datasets
objectIdLength sizeof(unsigned char) bytes Length of object ID
objectId [objectIdLength] ×sizeof(char) bytes Object ID
modelIndex sizeof(unsigned int) bytes Unique ID of original model referred by
reference information
transformMatrixType sizeof(unsigned char) bytes Transform matrix type. 0 is for identity, 1 is
for translation so that only 3 floating numbers
are written for transform matrix, and 2 is for
translation & rotation so that full 16 floating
numbers are written for transform matrix.
transformMatrix - transformMatrixType == 0 - transformMatrixType == 0
9
Not write anything
- transformMatrixType == 1
3 × sizeof(float) bytes
- transformMatrixType == 2
16 × sizeof(float) bytes
Identity matrix
- transformMatrixType == 1
3 elements of transform matrix
- transformMatrixType == 2
16 elements of transform matrix
bSingleColor sizeof(bool) bytes whether a representative color is available
singleColorValueType sizeof(unsigned short) bytes Default colour value type in GL enumeration
for color value. Now only 5121(unsigned
byte) supported. Only record when
bSingleColor == true
singleColorDimension sizeof(unsigned char) bytes Channel count of default color. Now fixed as
4(RGBA). Only record when bSingleColor
== true
singleColor [colorDimension1] × sizeof(unsigned
char) bytes
default colour value of this reference
bVertexColor sizeof(bool) bytes Record whether vertex colours are available
bTextureCoord sizeof(bool) bytes Record whether texture coordinates are
available
vboCount sizeof(unsigned int) bytes Count of VBO(vertex buffer object).
vertexColorAndTextureC
oordinateInfo
∑ sizeOfvertexColor&textureCoord vertex colours and texture coordinates of this
reference on each vbo
textureIndex sizeof(int) bytes index to a texture file name used by this
reference in the list written in
HeaderAsimetric.hed. -1 means not using any
texture file.
Table 4-2 Detailed Structure of “vertexColorAndTextureCoordinateInfo” in Table 4-1
Name of the Field Length of Bytes Remarks
vertexColorType sizeof(unsigned short) bytes GL enumeration value for color. Now only
5121 supported. Only record when
bVertexColor in Table 4-1 == true
vertexColorDimension sizeof(unsigned char) bytes Channel count of vertex colour. Now fixed as
3. Only record when bVertexColor in Table
4-1 == true
vertexCount sizeof(unsigned int) bytes Vertex count in this vbo. Only record when
bVertexColor in Table 4-1 == true
vertexColors [vertexCount] ×
vertexColorDimension ×
sizeof(unsigned char) bytes
Vertex color of each vertex. Only record
when bVertexColor in Table 4-1 == true
textureCoordinateValueTy
pe
sizeof(unsigned short) bytes GL enumeration value for texture coordinate.
Now firxed as 5126. Only record when
bTextureCoord in Table 4-1 == true
vertexCount sizeof(unsigned int) bytes Vertex count in this vbo. Only record when
bTextureCoord in Table 4-1 == true
textureCoordinates [vertexCount] × 2 × sizeof(float)
bytes
u, v coordinate of each vertex. Only record
when bTextureCoord in Table 4-1 == true
Table 4-3 Detailed Structure of “exteriorVisibilityIndices” and “interiorVisibilityIndices” in Table 4
Name of the Field Length of Bytes Remarks
bRoot sizeof(bool) bytes Whether this vision octree is root
bbox sizeof(float) × 6 bytes minX, maxX, minY, maxY, minZ, maxZ of
this vision octree. Only record when bRoot
== true
(Be cautious of the order of saving. Different
with that of bounding box in the file
“HeaderAsimetric.hed”)
childCount sizeof(unsigned int) bytes Count of available children of this vision
10
octree
referenceCount sizeof(unsigned int) bytes No. of references which can be seen from this
vision octree. Only record when childCount
== 0(that is, this octree is a leaf octree)
referenceIndices [referenceCount] × sizeof(unsigned
int) bytes
Indices of references which can be seen from
this vision octree. Only record when
childCount == 0(that is, this octree is a leaf
octree)
childVisionOctreeInfo flexible Record contents of this table recursively.
Only record when childCount > 0
1.5 Images_Resized folder
This folder is for image files for texture mapping. Files in this folder are created only when raw
data has images for texture. Because WebGL accepts texture images only with width and height of
power of 2 pixels, resized texture images are created if necessary.
1.6 lod[lod] (lod : 3, 4, 5)
These files are geometric data for LOD 3~5. Data structure of these files are exactly same as files in
“Bricks” folder, that is, LOD2 data file.
1.7 MosaicTextureLOD[lod].png (lod : 2, 3, 4, 5)
This files are for texture mapping of LOD 2~5.
1.8 objectIndexFile.ihe
As described in “1. Format structure”, this file is metadata of full set of all F4D data on web service.
Structure of objectIndexFile.ihe is shown in Table 10 and 11.
Table 5 Overall Structure of Reference File
Name of the Field Length of Bytes Remarks
dataFolderCount sizeof(unsigned int) bytes Count of F4D folders on service
eachDataFolderInfo ∑ dataFolderInfoSize Simple information of each F4D data folder.
Table 5-1 Detailed Structure of “eachDataFolderInfo” in Table 5
Name of the Field Length of Bytes Remarks
dataFolderNameLength sizeof(unsigned int) bytes Length of this F4D data folder name
dataFolderName [dataFolderNameLength] ×
sizeof(char) bytes
Name of this F4D data folder.
lonLatAlt sizeof(double) + sizeof(double) +
sizeof(float) bytes
Representative longitude, latitude, and
altitude of this F4D(Deprecated)
boundingBox sizeof(float) × 6 bytes minX, minY, minZ, maxX, maxY, maxZ of
bounding box of this F4D data

Más contenido relacionado

La actualidad más candente

공간데이터베이스(Spatial db)
공간데이터베이스(Spatial db)공간데이터베이스(Spatial db)
공간데이터베이스(Spatial db)H.J. SIM
 
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진PgDay.Seoul
 
Introduction To PostGIS
Introduction To PostGISIntroduction To PostGIS
Introduction To PostGISmleslie
 
MongoDB GeoSpatial Feature
MongoDB GeoSpatial FeatureMongoDB GeoSpatial Feature
MongoDB GeoSpatial FeatureHüseyin BABAL
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for UnrealKyu-sung Choi
 
Geo server 성능향상을 위한 튜닝 기법 20111028
Geo server 성능향상을 위한 튜닝 기법 20111028Geo server 성능향상을 위한 튜닝 기법 20111028
Geo server 성능향상을 위한 튜닝 기법 20111028BJ Jang
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례BJ Jang
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료JungHwan Yun
 
Qgis 기초 2019
Qgis 기초 2019Qgis 기초 2019
Qgis 기초 2019Joonho Lee
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...Amazon Web Services Korea
 
SIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGLSIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGLMark Kilgard
 
지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기Byeong-Hyeok Yu
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초 slhead1
 
Screen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space MarineScreen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space MarinePope Kim
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정BJ Jang
 
Technical Deep Dive into the New Prefab System
Technical Deep Dive into the New Prefab SystemTechnical Deep Dive into the New Prefab System
Technical Deep Dive into the New Prefab SystemUnity Technologies
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServerMinPa Lee
 
QGISを用いた紙地図からデジタルデータへの変換
QGISを用いた紙地図からデジタルデータへの変換QGISを用いた紙地図からデジタルデータへの変換
QGISを用いた紙地図からデジタルデータへの変換Inoshachu, NPO
 

La actualidad más candente (20)

공간데이터베이스(Spatial db)
공간데이터베이스(Spatial db)공간데이터베이스(Spatial db)
공간데이터베이스(Spatial db)
 
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
 
Introduction To PostGIS
Introduction To PostGISIntroduction To PostGIS
Introduction To PostGIS
 
MongoDB GeoSpatial Feature
MongoDB GeoSpatial FeatureMongoDB GeoSpatial Feature
MongoDB GeoSpatial Feature
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
 
Geo server 성능향상을 위한 튜닝 기법 20111028
Geo server 성능향상을 위한 튜닝 기법 20111028Geo server 성능향상을 위한 튜닝 기법 20111028
Geo server 성능향상을 위한 튜닝 기법 20111028
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료
 
Qgis 기초 2019
Qgis 기초 2019Qgis 기초 2019
Qgis 기초 2019
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
 
SIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGLSIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGL
 
지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초
 
Screen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space MarineScreen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space Marine
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정
 
Technical Deep Dive into the New Prefab System
Technical Deep Dive into the New Prefab SystemTechnical Deep Dive into the New Prefab System
Technical Deep Dive into the New Prefab System
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
 
QGISを用いた紙地図からデジタルデータへの変換
QGISを用いた紙地図からデジタルデータへの変換QGISを用いた紙地図からデジタルデータへの変換
QGISを用いた紙地図からデジタルデータへの変換
 

Similar a F4D Specification Document V1

(140625) #fitalk sq lite 소개와 구조 분석
(140625) #fitalk   sq lite 소개와 구조 분석(140625) #fitalk   sq lite 소개와 구조 분석
(140625) #fitalk sq lite 소개와 구조 분석INSIGHT FORENSIC
 
Buffersdirectx
BuffersdirectxBuffersdirectx
BuffersdirectxVisCircle
 
Xz file-format-1.0.4
Xz file-format-1.0.4Xz file-format-1.0.4
Xz file-format-1.0.4Ben Pope
 
10 -bits_and_bytes
10  -bits_and_bytes10  -bits_and_bytes
10 -bits_and_bytesHector Garzo
 
Tugas basis data 2012110028
Tugas basis data 2012110028Tugas basis data 2012110028
Tugas basis data 2012110028UIGM
 
structenumtypedefunion.pptx
structenumtypedefunion.pptxstructenumtypedefunion.pptx
structenumtypedefunion.pptxKUPPALAPADMINI
 
Opengl4 quick reference card
Opengl4 quick reference cardOpengl4 quick reference card
Opengl4 quick reference cardAdrien Wattez
 
SQL (Basic to Intermediate Customized 8 Hours)
SQL (Basic to Intermediate Customized 8 Hours)SQL (Basic to Intermediate Customized 8 Hours)
SQL (Basic to Intermediate Customized 8 Hours)Edu4Sure
 
Bt0068 computer organization and architecture 2
Bt0068 computer organization and architecture 2Bt0068 computer organization and architecture 2
Bt0068 computer organization and architecture 2Techglyphs
 
C cheat sheet for varsity (extreme edition)
C cheat sheet for varsity (extreme edition)C cheat sheet for varsity (extreme edition)
C cheat sheet for varsity (extreme edition)Saifur Rahman
 

Similar a F4D Specification Document V1 (20)

(140625) #fitalk sq lite 소개와 구조 분석
(140625) #fitalk   sq lite 소개와 구조 분석(140625) #fitalk   sq lite 소개와 구조 분석
(140625) #fitalk sq lite 소개와 구조 분석
 
Database Sizing
Database SizingDatabase Sizing
Database Sizing
 
Buffersdirectx
BuffersdirectxBuffersdirectx
Buffersdirectx
 
Xz file-format-1.0.4
Xz file-format-1.0.4Xz file-format-1.0.4
Xz file-format-1.0.4
 
10 -bits_and_bytes
10  -bits_and_bytes10  -bits_and_bytes
10 -bits_and_bytes
 
Tugas basis data 2012110028
Tugas basis data 2012110028Tugas basis data 2012110028
Tugas basis data 2012110028
 
OpenGL 4.5 Reference Card
OpenGL 4.5 Reference CardOpenGL 4.5 Reference Card
OpenGL 4.5 Reference Card
 
structenumtypedefunion.pptx
structenumtypedefunion.pptxstructenumtypedefunion.pptx
structenumtypedefunion.pptx
 
OpenGL 4.4 Reference Card
OpenGL 4.4 Reference CardOpenGL 4.4 Reference Card
OpenGL 4.4 Reference Card
 
Opengl4 quick reference card
Opengl4 quick reference cardOpengl4 quick reference card
Opengl4 quick reference card
 
Data type2 c
Data type2 cData type2 c
Data type2 c
 
Numpy ndarrays.pdf
Numpy ndarrays.pdfNumpy ndarrays.pdf
Numpy ndarrays.pdf
 
OpenGL 4.6 Reference Guide
OpenGL 4.6 Reference GuideOpenGL 4.6 Reference Guide
OpenGL 4.6 Reference Guide
 
Numpy Talk at SIAM
Numpy Talk at SIAMNumpy Talk at SIAM
Numpy Talk at SIAM
 
SQL (Basic to Intermediate Customized 8 Hours)
SQL (Basic to Intermediate Customized 8 Hours)SQL (Basic to Intermediate Customized 8 Hours)
SQL (Basic to Intermediate Customized 8 Hours)
 
2.0 sql data types for my sql, sql server
2.0 sql data types for my sql, sql server2.0 sql data types for my sql, sql server
2.0 sql data types for my sql, sql server
 
Data types
Data typesData types
Data types
 
Bt0068 computer organization and architecture 2
Bt0068 computer organization and architecture 2Bt0068 computer organization and architecture 2
Bt0068 computer organization and architecture 2
 
1st lecture.ppt
1st lecture.ppt1st lecture.ppt
1st lecture.ppt
 
C cheat sheet for varsity (extreme edition)
C cheat sheet for varsity (extreme edition)C cheat sheet for varsity (extreme edition)
C cheat sheet for varsity (extreme edition)
 

Último

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 

Último (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 

F4D Specification Document V1

  • 1. F4D Specification F4D Reference Manual F4D v0.0.1 Data Format Specification 10 JAN 2019 V 1 2019-1-10 F4D v0.0.1 © Copyright 2019 Gaia3D,Inc. The information in this document is object to change without notice.
  • 2. 2 Contents F4D Reference Manual........................................................................................................................1 1.Format structure................................................................................................................................3 1.1 HeaderAsimetric.hed ...........................................................................................................4 1.2 Bricks Folder........................................................................................................................5 1.3 Models Folder ......................................................................................................................7 1.4 Reference Folder..................................................................................................................8 1.5 Images_Resized folder.......................................................................................................10 1.6 lod[lod] (lod : 3, 4, 5).........................................................................................................10 1.7 MosaicTextureLOD[lod].png (lod : 2, 3, 4, 5) ..................................................................10 1.8 objectIndexFile.ihe.............................................................................................................10
  • 3. 3 1.Format structure F4D is composed of 1 header file, 3 folders for indoor data structure, 3 binary files for outdoor data structure and 4 image files for textures used in LOD 2~5. Different with LOD systems of other 3D graphics fields, LOD system of F4D has reverse LOD order. The lower number LOD a model has, the more detailed data it has. It is for, in future, supporting flexible LOD based on an idea that bigger buildings can be seen from further distance. The name of the folder which contains one F4D dataset is ‘F4D_[dataKey]’ where ‘dataKey’ is an unique key for an F4D dataset. Figure 1. Overall Structure of F4D Format objectIndexFile.ihe is necessary to publish F4D data through web services. This file is a temporary metadata, which is going to nothing. (The role of this file is being implemented in other parts mago3D and this file is being removed. not removed completely yet.) This file should be in F4D data folder for web service at the same depth as each F4D data folders. Figure 2. objectIndexFile.ihe * “Length of Bytes” in all following table contents are described by C++ style.
  • 4. 4 1.1 HeaderAsimetric.hed It contains the metadata for 3D GIS of datasets in an F4D folder and serves as a header file of datasets. Overall structure of HeaderAsimetric.hed is explained in Table 1, 1-1, and 1-2. Table 1 Structure of HeaderAsimetric.hed Name of the Field Length of Bytes Remarks version 5 × sizeof(char) bytes . Latest verison is 0.0.1nfoiersionvF4D guidLength sizeof(int) bytes Length of guid guid [guidLength] × sizeof(char) bytes Guid. Reserved. Not used now. longitude latitude 2 × sizeof(double) bytes Longitude, latitude(degree) of datasets. Not used now. altitude sizeof(float) bytes Altitude (unit: m) of datasets. Not used now. bbox 6 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX, maxY, maxZ in meter octree dimension flexible Hierarchy info of octree structure textureCount sizeof(unsigned int) bytes Count of textures used in the F4D textureInfo bytes all texture information lodCount sizeof(unsigned char) bytes Count of all supported LOD lodInfo bytes all supported LOD info Table 1-1 Detailed Structure of “octree dimension” Specified in Table 1 Name of the Field Length of Bytes Remarks depth sizeof(unsigned int) bytes Depth of this octree bbox 6 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX, maxY, MaxZ. Only record when depth == 0 childCount sizeof(unsigned char) bytes No. of child octree triangleCount sizeof(unsigned int) bytes No. of triangle in this octree chidrenDimensions flexible Recursively record the child octree dimensions Table 1-2 Detailed Structure of “textureInfo” Specified in Table 1 Name of the Field Length of Bytes Remarks textureTypeLength sizeof(unsigned int) bytes ength of string for texture typeL textureType [textureTypeLength] × sizeof(char) bytes Texture type. Only “diffuse” is used now. textureFileNameLength sizeof(unsigned int) bytes Length of string for texture file name textureFileName [textureFileNameLength] × sizeof(char) bytes Texture file name Table 1-3 Detailed Structure of “lodInfo” Specified in Table 1 Name of the Field Length of Bytes Remarks lod sizeof(unsigned char) bytes LOD number bDividedBySpatialOctree sizeof(bool) bytes whether this LOD is divided by octree lodFileNameLength sizeof(unsigned char) bytes Length of string for LOD data file name lodFileName [lodFileNameLength] × sizeof(char) bytes LOD data file name. Only available when lod >= 3.(that is, only outdoor) lodTextureFileNameLength sizeof(unsigned char) bytes Length of string for LOD texture file name lodTextureFileName [lodTextureFileNameLength] × sizeof(char) bytes LOD texture file name. Only available when LOD >=2.(that is, only data made by NSM method)
  • 5. 5 1.2 Bricks Folder This folder contains binary files of LOD2 geometric data. F4D converter splits an original 3D model data into smaller-sized models divided by octrees, and applies NSM(Net Surface Mesh) method on each octree to reduce data size and creates rougher data. The name of each files is “[octreeNumber]_brick”. The count of digit of octreeNumber represents the depth of octree system and non-existing octreeNumber means that there is no intersection between original model and the octree of that octreeNumber. Figure 3 before/after NSM is applied. Figure 4 Sample “Bricks” folder of depth 1 octree. Octree 4, 7, and 8 are removed.
  • 6. 6 Overall structure of LOD2 files in “Bricks” folder is explained in Table 2. Table 2 Overall Structure of LOD2 file Name of the Field Length of Bytes Remarks bbox 6 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX, maxY, MaxZ vertexCount sizeof(unsigned int) bytes No. of vertex in a Brick vertexPositions [vertexCount] × 3 × sizeof(float) bytes x, y, z coordinates of each vertex (unit: m) bNormal sizeof(bool) bytes Whether normal vectors exist or not normalCount sizeof(unsigned int) bytes No. of normal vectors (same as No. of vertex count) Only record when bNormal == true normalVectors [normalCount] × 3 × sizeof(char) bytes x, y, z components of normal vectors. Only record when bNormal == true bColor sizeof(bool) bytes Record whether colour array is existing or not colorCount sizeof(unsigned int) bytes No. of colours (same as No. of vertex count) Only record when bColour == true vertexColors [colorCount]×4×sizeof(unsigned char) bytes Colour values (red, green, blue and alpha) of each vertex. Only record when bColour == true bTextureCoord sizeof(bool) bytes Record whether texture coordinate array is existing or not texgtureCoordType sizeof(unsigned short) bytes GL enumeration value for type of texture coordinate description. Now only 5126(float) type available. Only record when bTextureCoord == true vertexCount sizeof(unsigned int) bytes No. of vertex count. Only record when bTextureCoord == true textureCoordinates [vertexCount] × 2 × sizeof(float) u, v coordinate of each vertex. Only record when bTextureCoord == true
  • 7. 7 1.3 Models Folder This folder contains original 3D objects information called Models that constitutes F4D itself. Models will be made to be an instance physically in the 3D space by pairing Reference information in Reference folder. Structure of F4D’s Model information is shown in Table 3, 3-1, 3-2. Table 3 Overall Structure of Models File Name of the Field Length of Bytes Remarks version 5 × sizeof(char) bytes Version of F4D. latest version is 0.0.1 modelCount sizeof(unsigned int) bytes No. of Models that References in octree refers modelData bytes Data of each Model Table 3-1 Detailed Structure of “modelData” in Table 3 Name of the Field Length of Bytes Remarks modelIndex sizeof(unsigned int) bytes Unique ID of Model. This ID is unique number throughout the datasets bbox 3 × sizeof(float) bytes Bounding box of minX, minY, minZ, maxX, maxY, MaxZ vboCount sizeof(unsigned int) bytes No. of VBO(Vertex Buffer Object) that constitutes Model vboData bytes Data of each VBO dummy boolean sizeof(bool) bytes just false. Table 3-2 Detailed Structure of “vboData” in Table 3-1 Name of the Field Length of Bytes Remarks vertexCount sizeof(unsigned int) bytes No. of vertex that constitutes VBO vertexPositions [vertexCount] × 3 × sizeof(float) bytes x, y, z coordinates of each vertex(unit: m) normalCount sizeof(unsigned int) bytes No. of normal vectors(same as vertexCount) normalVectors [normalCount] × 3 × sizeof(char) bytes Normal vectors of x, y, z indexCount sizeof(unsigned int) bytes No. of index of vertex that constitutes triangle sizeLevels sizeof(unsigned char) bytes No. of levels to be used when storing index of triangles in order of size sizeThresholds [sizeLevels] × sizeof(float) bytes Delimiter of each segment indexMarkers [sizeLevels] × sizeof(unsigned int) bytes The positions of the indexes whose size is first changed in the sorted triangle index array. indexArray [indexCount] × sizeof(unsigned short) bytes Array that records indexes of vertex of each triangle
  • 8. 8 1.4 Reference Folder This folder contains binary files of reference information such as position, ID, indexes of 3D objects that is constituting F4D. By combining Reference information and Models information, real 3D objects will be physically rendered on the described place with attributes (- called as “3D objects are instantiated.”). Reference files are created along spatial octrees so that the name of a reference file is “[octreeNumber]_ref”. Figure 5 Sample “Reference” folder of depth 1 octree. Octree 4, 7, and 8 are removed. Structure of F4D’s Reference information is shown in Table 4, 4-1, 4-2, 4-3. Table 4 Overall Structure of Reference File Name of the Field Length of Bytes Remarks version 5 × sizeof(char) bytes Version of F4D. latest version is 0.0.1 referenceCount sizeof(unsigned int) bytes No. of reference in the octree referenceData bytes Data of each reference triangleCount sizeof(unsigned int) bytes Total triangle count in this reference exteriorVisibilityIndices flexible Visibility indices for exterior occlusion culling. Written recursively for all vision octrees interiorVisibilityIndices flexible Visibility indices for interior occlusion culling. Written recursively for all vision octrees Table 4-1 Detailed Structure of “referenceData” in Table 4 Name of the Field Length of Bytes Remarks referenceIndex sizeof(unsigned int) bytes Unique ID of reference. This ID is unique number throughout the datasets objectIdLength sizeof(unsigned char) bytes Length of object ID objectId [objectIdLength] ×sizeof(char) bytes Object ID modelIndex sizeof(unsigned int) bytes Unique ID of original model referred by reference information transformMatrixType sizeof(unsigned char) bytes Transform matrix type. 0 is for identity, 1 is for translation so that only 3 floating numbers are written for transform matrix, and 2 is for translation & rotation so that full 16 floating numbers are written for transform matrix. transformMatrix - transformMatrixType == 0 - transformMatrixType == 0
  • 9. 9 Not write anything - transformMatrixType == 1 3 × sizeof(float) bytes - transformMatrixType == 2 16 × sizeof(float) bytes Identity matrix - transformMatrixType == 1 3 elements of transform matrix - transformMatrixType == 2 16 elements of transform matrix bSingleColor sizeof(bool) bytes whether a representative color is available singleColorValueType sizeof(unsigned short) bytes Default colour value type in GL enumeration for color value. Now only 5121(unsigned byte) supported. Only record when bSingleColor == true singleColorDimension sizeof(unsigned char) bytes Channel count of default color. Now fixed as 4(RGBA). Only record when bSingleColor == true singleColor [colorDimension1] × sizeof(unsigned char) bytes default colour value of this reference bVertexColor sizeof(bool) bytes Record whether vertex colours are available bTextureCoord sizeof(bool) bytes Record whether texture coordinates are available vboCount sizeof(unsigned int) bytes Count of VBO(vertex buffer object). vertexColorAndTextureC oordinateInfo ∑ sizeOfvertexColor&textureCoord vertex colours and texture coordinates of this reference on each vbo textureIndex sizeof(int) bytes index to a texture file name used by this reference in the list written in HeaderAsimetric.hed. -1 means not using any texture file. Table 4-2 Detailed Structure of “vertexColorAndTextureCoordinateInfo” in Table 4-1 Name of the Field Length of Bytes Remarks vertexColorType sizeof(unsigned short) bytes GL enumeration value for color. Now only 5121 supported. Only record when bVertexColor in Table 4-1 == true vertexColorDimension sizeof(unsigned char) bytes Channel count of vertex colour. Now fixed as 3. Only record when bVertexColor in Table 4-1 == true vertexCount sizeof(unsigned int) bytes Vertex count in this vbo. Only record when bVertexColor in Table 4-1 == true vertexColors [vertexCount] × vertexColorDimension × sizeof(unsigned char) bytes Vertex color of each vertex. Only record when bVertexColor in Table 4-1 == true textureCoordinateValueTy pe sizeof(unsigned short) bytes GL enumeration value for texture coordinate. Now firxed as 5126. Only record when bTextureCoord in Table 4-1 == true vertexCount sizeof(unsigned int) bytes Vertex count in this vbo. Only record when bTextureCoord in Table 4-1 == true textureCoordinates [vertexCount] × 2 × sizeof(float) bytes u, v coordinate of each vertex. Only record when bTextureCoord in Table 4-1 == true Table 4-3 Detailed Structure of “exteriorVisibilityIndices” and “interiorVisibilityIndices” in Table 4 Name of the Field Length of Bytes Remarks bRoot sizeof(bool) bytes Whether this vision octree is root bbox sizeof(float) × 6 bytes minX, maxX, minY, maxY, minZ, maxZ of this vision octree. Only record when bRoot == true (Be cautious of the order of saving. Different with that of bounding box in the file “HeaderAsimetric.hed”) childCount sizeof(unsigned int) bytes Count of available children of this vision
  • 10. 10 octree referenceCount sizeof(unsigned int) bytes No. of references which can be seen from this vision octree. Only record when childCount == 0(that is, this octree is a leaf octree) referenceIndices [referenceCount] × sizeof(unsigned int) bytes Indices of references which can be seen from this vision octree. Only record when childCount == 0(that is, this octree is a leaf octree) childVisionOctreeInfo flexible Record contents of this table recursively. Only record when childCount > 0 1.5 Images_Resized folder This folder is for image files for texture mapping. Files in this folder are created only when raw data has images for texture. Because WebGL accepts texture images only with width and height of power of 2 pixels, resized texture images are created if necessary. 1.6 lod[lod] (lod : 3, 4, 5) These files are geometric data for LOD 3~5. Data structure of these files are exactly same as files in “Bricks” folder, that is, LOD2 data file. 1.7 MosaicTextureLOD[lod].png (lod : 2, 3, 4, 5) This files are for texture mapping of LOD 2~5. 1.8 objectIndexFile.ihe As described in “1. Format structure”, this file is metadata of full set of all F4D data on web service. Structure of objectIndexFile.ihe is shown in Table 10 and 11. Table 5 Overall Structure of Reference File Name of the Field Length of Bytes Remarks dataFolderCount sizeof(unsigned int) bytes Count of F4D folders on service eachDataFolderInfo ∑ dataFolderInfoSize Simple information of each F4D data folder. Table 5-1 Detailed Structure of “eachDataFolderInfo” in Table 5 Name of the Field Length of Bytes Remarks dataFolderNameLength sizeof(unsigned int) bytes Length of this F4D data folder name dataFolderName [dataFolderNameLength] × sizeof(char) bytes Name of this F4D data folder. lonLatAlt sizeof(double) + sizeof(double) + sizeof(float) bytes Representative longitude, latitude, and altitude of this F4D(Deprecated) boundingBox sizeof(float) × 6 bytes minX, minY, minZ, maxX, maxY, maxZ of bounding box of this F4D data