• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language
    C#
  • License
    MIT License
  • Created over 12 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Wavefront .obj loader in C# .Net

ObjLoader Build statusNuGet version

Objloader is a simple Wavefront .obj and .mtl loader

Installation

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; }
}