Documentation ¶
Overview ¶
Package obj is used to parse the Wavefront OBJ file format (*.obj), including associated materials (*.mtl). Not all features of the OBJ format are supported. Basic format info: https://en.wikipedia.org/wiki/Wavefront_.obj_file
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Decoder ¶
type Decoder struct { Objects []Object // decoded objects Matlib string // name of the material lib Materials map[string]*Material // maps material name to object Vertices math32.ArrayF32 // vertices positions array Normals math32.ArrayF32 // vertices normals Uvs math32.ArrayF32 // vertices texture coordinates Warnings []string // warning messages // contains filtered or unexported fields }
Decoder contains all decoded data from the obj and mtl files
func Decode ¶
Decode decodes the specified obj and mtl files returning a decoder object and an error. Passing an empty string (or otherwise invalid path) to mtlpath will cause the decoder to check the 'mtllib' file in the OBJ if present, and fall back to a default material as a last resort.
func DecodeReader ¶
DecodeReader decodes the specified obj and mtl readers returning a decoder object and an error if a problem was encoutered while parsing the OBJ.
Pass a valid io.Reader to override the materials defined in the OBJ file, or `nil` to use the materials listed in the OBJ's "mtllib" line (if present), a ".mtl" file with the same name as the OBJ file if presemt, or a default material as a last resort. No error will be returned for problems with materials--a gray default material will be used if nothing else works.
func (*Decoder) NewGeometry ¶
NewGeometry generates and returns a geometry from the specified object
type Face ¶
type Face struct { Vertices []int // Indices to the face vertices Uvs []int // Indices to the face UV coordinates Normals []int // Indices to the face normals Material string // Material name Smooth bool // Smooth face }
Face contains all information about an object face
type Material ¶
type Material struct { Name string // Material name Illum int // Illumination model Opacity float32 // Opacity factor Refraction float32 // Refraction factor Shininess float32 // Shininess (specular exponent) Ambient math32.Color // Ambient color reflectivity Diffuse math32.Color // Diffuse color reflectivity Specular math32.Color // Specular color reflectivity Emissive math32.Color // Emissive color MapKd string // Texture file linked to diffuse color }
Material contains all information about an object material