Wavefront .obj loader in C# .Net
Switch branches/tags
Nothing to show
Clone or download
chrisjansson Update README.md
Update readme with nuget badge
Latest commit d8dc67a Jun 19, 2018
Failed to load latest commit information.
source Update packaging settings Jun 18, 2018
.gitignore Initial commit Mar 25, 2012
LICENSE.md Create LICENSE.md May 10, 2015
README.md Update README.md Jun 18, 2018
appveyor.yml Add appveyor configuration Jun 20, 2017


ObjLoader Build statusNuGet version

Objloader is a simple Wavefront .obj and .mtl loader


Build the project and reference the .dll or reference the project directly as usual.

Loading a model

Either create the loader with the standard material stream provider, this will open the file read-only from the working directory.

var objLoaderFactory = new ObjLoaderFactory();
var objLoader = objLoaderFactory.Create();

Or provide your own:

//With the signature Func<string, Stream>
var objLoaderFactory = new ObjLoaderFactory();
var objLoader = objLoaderFactory.Create(materialFileName => File.Open(materialFileName);

Then it is just a matter of invoking the loader with a stream containing the model.

var fileStream = new FileStream("model.obj");
var result = objLoader.Load(fileStream);

The result object contains the loaded model in this form:

public class LoadResult  
    public IList<Vertex> Vertices { get; set; }
    public IList<Texture> Textures { get; set; }
    public IList<Normal> Normals { get; set; }
    public IList<Group> Groups { get; set; }
    public IList<Material> Materials { get; set; }