Hi,
I've come on quite far with the .B3D exporter, but I've come across a bit of a problem that one of you guys might be able to fix. For some reason this code block below won't export more then one triangle per node entity. What it should be displaying is 2 triangles, each with a different texture. It's only displaying one. Any ideas anyone?
;*****************
;* .B3D Exporter *
;*****************
Include "b3dfile.bb"
;**** Open file for writting *****
Global filename$="c:\test\temp.b3d"
Global file=WriteFile( filename$ )
b3dSetFile( file )
;**********Title *****************
b3dBeginChunk( "BB3D" )
b3dWriteInt( 1 ) ; Version
;********* Get textures *********
b3dBeginChunk( "TEXS" )
;-- Texture 1 START ---
b3dWriteString( "c:\test\texturea.bmp") ; Texture file name
b3dWriteInt( 1 ) ; Texture flag
b3dWriteInt( 1 ) ; Blend type
b3dWritefloat( 0 ) ; X position
b3dWritefloat( 0 ) ; Y position
b3dWritefloat( 1 ) ; X Scale
b3dWritefloat( 1 ) ; Y Scale
b3dWritefloat( 1 ) ; Rotation
;-- Texture 1 END ---
;-- Texture 2 START ---
b3dWriteString( "c:\test\textureb.BMP") ; Texture file name
b3dWriteInt( 1 ) ; Texture flag
b3dWriteInt( 1 ) ; Blend type
b3dWritefloat( 0 ) ; X position
b3dWritefloat( 0 ) ; Y position
b3dWritefloat( 1 ) ; X Scale
b3dWritefloat( 1 ) ; Y Scale
b3dWritefloat( 1 ) ; Rotation
;-- Texture 2 END ---
;etc.
b3dEndChunk() ;end of Textures chunk
;********* Create brushes *********
b3dBeginChunk( "BRUS" )
;-- Brush defaults ---
b3dWriteInt( 1 ) ; Default textures per chunk
b3dWriteString( "default") ; Default brush name
b3dWritefloat( 1 ) ; Default R
b3dWritefloat( 0 ) ; Default G
b3dWritefloat( 1 ) ; Default B
b3dWritefloat( 1 ) ; Default Alpha
b3dWritefloat( 1 ) ; Default Shininess
b3dWriteInt( 1 ) ; Default Blend type
b3dWriteInt( 1 ) ; Default FX type
b3dWriteInt( 0 ) ; Default texture number
;---Brush 1 START ---
b3dWriteString( "brusha") ; brush 1 name
b3dWritefloat( 1 ) ; Default R
b3dWritefloat( 1 ) ; Default G
b3dWritefloat( 1 ) ; Default B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; Shininess
b3dWriteInt( 1 ) ; Blend type
b3dWriteInt( 1 ) ; FX type
b3dWriteInt( 0 ) ; texture number
;---Brush 1 END ---
;---Brush 2 START ---
b3dWriteString( "brushb") ; brush 2 name
b3dWritefloat( 1 ) ; Default R
b3dWritefloat( 1 ) ; Default G
b3dWritefloat( 1 ) ; Default B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; Shininess
b3dWriteInt( 1 ) ; Blend type
b3dWriteInt( 1 ) ; FX type
b3dWriteInt( 1 ) ; texture number
;---Brush 2 END ---
b3dEndChunk() ;end of brushes chunk
;********** NODES ***********
b3dBeginChunk( "NODE" )
b3dWriteString( "MAIN_NODE") ; Node name
b3dWritefloat( 1 ) ; X pos
b3dWritefloat( 1 ) ; Y pos
b3dWritefloat( 1 ) ; Z pos
b3dWritefloat( 1 ) ; X scale
b3dWritefloat( 1 ) ; Y scale
b3dWritefloat( 1 ) ; Z scale
b3dWritefloat( 1 ) ; W rotation
b3dWritefloat( 1 ) ; X rotation
b3dWritefloat( 1 ) ; Y rotation
b3dWritefloat( 1 ) ; Z rotation
;********** Meshes ***********
;-------------------------------------------------------------
b3dBeginChunk( "MESH" )
b3dWriteInt( 1 ) ; Brush number
;--- VERTS ---
b3dBeginChunk( "VRTS" )
b3dWriteInt( 2 ) ; Flags (0=no, 1=with normals, 2=with colour)
b3dWriteInt( 1 ) ; texture coords set
b3dWriteInt( 2 ) ; coords per set
;-- vert 1 data --
b3dWritefloat( -5 ) ; X pos
b3dWritefloat( 5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 0 ) ; U
b3dWritefloat( 0 ) ; V
;-- vert 2 data --
b3dWritefloat( 5 ) ; X pos
b3dWritefloat( 5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; U
b3dWritefloat( 0 ) ; V
;-- vert 3 data --
b3dWritefloat( -5 ) ; X pos
b3dWritefloat( -5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 0 ) ; U
b3dWritefloat( 1 ) ; V
b3dEndChunk() ;end of verts chunk
;--- TRIS ----
b3dBeginChunk( "TRIS" )
b3dWriteInt( 1 ) ; Brush used for tris
;-- Tris 1 data --
b3dWriteInt( 0 ) ; Tri point A
b3dWriteInt( 1 ) ; Tri point B
b3dWriteInt( 2 ) ; Tri point C
b3dEndChunk() ;end of verts chunk
b3dEndChunk() ;end of MESH chunk
;----------------------------------------------------------
b3dBeginChunk( "MESH" )
b3dWriteInt( 2 ) ; Brush number
;--- VERTS ---
b3dBeginChunk( "VRTS" )
b3dWriteInt( 2 ) ; Flags (0=no, 1=with normals, 2=with colour)
b3dWriteInt( 1 ) ; texture coords set
b3dWriteInt( 2 ) ; coords per set
;-- vert 1 data --
b3dWritefloat( 5 ) ; X pos
b3dWritefloat( 5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; U
b3dWritefloat( 0 ) ; V
;-- vert 2 data --
b3dWritefloat( 5 ) ; X pos
b3dWritefloat( -5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; U
b3dWritefloat( 1 ) ; V
;-- vert 3 data --
b3dWritefloat( -5 ) ; X pos
b3dWritefloat( -5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 0 ) ; U
b3dWritefloat( 1 ) ; V
b3dEndChunk() ;end of verts chunk
;--- TRIS ----
b3dBeginChunk( "TRIS" )
b3dWriteInt( 2 ) ; Brush used for tris
;-- Tris 1 data --
b3dWriteInt( 0 ) ; Tri point A
b3dWriteInt( 1 ) ; Tri point B
b3dWriteInt( 2 ) ; Tri point C
b3dEndChunk() ;end of verts chunk
b3dEndChunk() ;end of MESH chunk
;--------------------------------------------------------------------
b3dEndChunk() ;end of NODE chunk
b3dEndChunk() ;end of BB3D chunk
CloseFile file
While Not KeyHit(1)
Wend
I've come on quite far with the .B3D exporter, but I've come across a bit of a problem that one of you guys might be able to fix. For some reason this code block below won't export more then one triangle per node entity. What it should be displaying is 2 triangles, each with a different texture. It's only displaying one. Any ideas anyone?
;*****************
;* .B3D Exporter *
;*****************
Include "b3dfile.bb"
;**** Open file for writting *****
Global filename$="c:\test\temp.b3d"
Global file=WriteFile( filename$ )
b3dSetFile( file )
;**********Title *****************
b3dBeginChunk( "BB3D" )
b3dWriteInt( 1 ) ; Version
;********* Get textures *********
b3dBeginChunk( "TEXS" )
;-- Texture 1 START ---
b3dWriteString( "c:\test\texturea.bmp") ; Texture file name
b3dWriteInt( 1 ) ; Texture flag
b3dWriteInt( 1 ) ; Blend type
b3dWritefloat( 0 ) ; X position
b3dWritefloat( 0 ) ; Y position
b3dWritefloat( 1 ) ; X Scale
b3dWritefloat( 1 ) ; Y Scale
b3dWritefloat( 1 ) ; Rotation
;-- Texture 1 END ---
;-- Texture 2 START ---
b3dWriteString( "c:\test\textureb.BMP") ; Texture file name
b3dWriteInt( 1 ) ; Texture flag
b3dWriteInt( 1 ) ; Blend type
b3dWritefloat( 0 ) ; X position
b3dWritefloat( 0 ) ; Y position
b3dWritefloat( 1 ) ; X Scale
b3dWritefloat( 1 ) ; Y Scale
b3dWritefloat( 1 ) ; Rotation
;-- Texture 2 END ---
;etc.
b3dEndChunk() ;end of Textures chunk
;********* Create brushes *********
b3dBeginChunk( "BRUS" )
;-- Brush defaults ---
b3dWriteInt( 1 ) ; Default textures per chunk
b3dWriteString( "default") ; Default brush name
b3dWritefloat( 1 ) ; Default R
b3dWritefloat( 0 ) ; Default G
b3dWritefloat( 1 ) ; Default B
b3dWritefloat( 1 ) ; Default Alpha
b3dWritefloat( 1 ) ; Default Shininess
b3dWriteInt( 1 ) ; Default Blend type
b3dWriteInt( 1 ) ; Default FX type
b3dWriteInt( 0 ) ; Default texture number
;---Brush 1 START ---
b3dWriteString( "brusha") ; brush 1 name
b3dWritefloat( 1 ) ; Default R
b3dWritefloat( 1 ) ; Default G
b3dWritefloat( 1 ) ; Default B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; Shininess
b3dWriteInt( 1 ) ; Blend type
b3dWriteInt( 1 ) ; FX type
b3dWriteInt( 0 ) ; texture number
;---Brush 1 END ---
;---Brush 2 START ---
b3dWriteString( "brushb") ; brush 2 name
b3dWritefloat( 1 ) ; Default R
b3dWritefloat( 1 ) ; Default G
b3dWritefloat( 1 ) ; Default B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; Shininess
b3dWriteInt( 1 ) ; Blend type
b3dWriteInt( 1 ) ; FX type
b3dWriteInt( 1 ) ; texture number
;---Brush 2 END ---
b3dEndChunk() ;end of brushes chunk
;********** NODES ***********
b3dBeginChunk( "NODE" )
b3dWriteString( "MAIN_NODE") ; Node name
b3dWritefloat( 1 ) ; X pos
b3dWritefloat( 1 ) ; Y pos
b3dWritefloat( 1 ) ; Z pos
b3dWritefloat( 1 ) ; X scale
b3dWritefloat( 1 ) ; Y scale
b3dWritefloat( 1 ) ; Z scale
b3dWritefloat( 1 ) ; W rotation
b3dWritefloat( 1 ) ; X rotation
b3dWritefloat( 1 ) ; Y rotation
b3dWritefloat( 1 ) ; Z rotation
;********** Meshes ***********
;-------------------------------------------------------------
b3dBeginChunk( "MESH" )
b3dWriteInt( 1 ) ; Brush number
;--- VERTS ---
b3dBeginChunk( "VRTS" )
b3dWriteInt( 2 ) ; Flags (0=no, 1=with normals, 2=with colour)
b3dWriteInt( 1 ) ; texture coords set
b3dWriteInt( 2 ) ; coords per set
;-- vert 1 data --
b3dWritefloat( -5 ) ; X pos
b3dWritefloat( 5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 0 ) ; U
b3dWritefloat( 0 ) ; V
;-- vert 2 data --
b3dWritefloat( 5 ) ; X pos
b3dWritefloat( 5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; U
b3dWritefloat( 0 ) ; V
;-- vert 3 data --
b3dWritefloat( -5 ) ; X pos
b3dWritefloat( -5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 0 ) ; U
b3dWritefloat( 1 ) ; V
b3dEndChunk() ;end of verts chunk
;--- TRIS ----
b3dBeginChunk( "TRIS" )
b3dWriteInt( 1 ) ; Brush used for tris
;-- Tris 1 data --
b3dWriteInt( 0 ) ; Tri point A
b3dWriteInt( 1 ) ; Tri point B
b3dWriteInt( 2 ) ; Tri point C
b3dEndChunk() ;end of verts chunk
b3dEndChunk() ;end of MESH chunk
;----------------------------------------------------------
b3dBeginChunk( "MESH" )
b3dWriteInt( 2 ) ; Brush number
;--- VERTS ---
b3dBeginChunk( "VRTS" )
b3dWriteInt( 2 ) ; Flags (0=no, 1=with normals, 2=with colour)
b3dWriteInt( 1 ) ; texture coords set
b3dWriteInt( 2 ) ; coords per set
;-- vert 1 data --
b3dWritefloat( 5 ) ; X pos
b3dWritefloat( 5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; U
b3dWritefloat( 0 ) ; V
;-- vert 2 data --
b3dWritefloat( 5 ) ; X pos
b3dWritefloat( -5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 1 ) ; U
b3dWritefloat( 1 ) ; V
;-- vert 3 data --
b3dWritefloat( -5 ) ; X pos
b3dWritefloat( -5 ) ; Y pos
b3dWritefloat( 0 ) ; Z pos
b3dWritefloat( 1 ) ; R
b3dWritefloat( 1 ) ; G
b3dWritefloat( 1 ) ; B
b3dWritefloat( 1 ) ; Alpha
b3dWritefloat( 0 ) ; U
b3dWritefloat( 1 ) ; V
b3dEndChunk() ;end of verts chunk
;--- TRIS ----
b3dBeginChunk( "TRIS" )
b3dWriteInt( 2 ) ; Brush used for tris
;-- Tris 1 data --
b3dWriteInt( 0 ) ; Tri point A
b3dWriteInt( 1 ) ; Tri point B
b3dWriteInt( 2 ) ; Tri point C
b3dEndChunk() ;end of verts chunk
b3dEndChunk() ;end of MESH chunk
;--------------------------------------------------------------------
b3dEndChunk() ;end of NODE chunk
b3dEndChunk() ;end of BB3D chunk
CloseFile file
While Not KeyHit(1)
Wend