public TextureGenerator(IOpenGLObjectFactory openGLFactory, TType type, ITexture[] out_textures, ITexture[] in_textures = null) { _openGLFactory = openGLFactory; _type = type; _out_textures = new List <ITexture>(out_textures); if (in_textures != null) { _in_textures = new List <ITexture>(in_textures); } }
public AssimpModelBuilder(IOpenGLObjectFactory openGLFactory, Stream filestream) { _openGLFactory = openGLFactory; AssimpContext importer = new AssimpContext(); importer.SetConfig(new NormalSmoothingAngleConfig(66.0f)); _assimpmodel = importer.ImportFileFromStream(filestream, flags); Matrix4x4 identity = Matrix4x4.Identity; CreateBuffers(_assimpmodel.RootNode, null, ref identity); }
public TrefoilKnotBuilder(IOpenGLObjectFactory objectFactory, int slices, int stacks, float ra, float rb, float rc, float rd, float[] c) { (float[] attributes, uint[] indices) = new TrefoilKnot(slices, stacks, ra, rb, rc, rd, c).Create(); int tuple_size = 12; ModelNode node = new ModelNode(objectFactory); _model._root_node = node; node.ModelMatrix = Matrix4.Identity; AABB mesh_box = new AABB(); // extend bounding box by vertices for (int i = 0; i < attributes.Length; i += tuple_size) { Vector3 vertex = new Vector3(attributes[i], attributes[i + 1], attributes[i + 2]); mesh_box = mesh_box | vertex; _model._scene_box = _model._scene_box | vertex; } // create Mesh OpenTK_library.Scene.Mesh mesh = new OpenTK_library.Scene.Mesh(); mesh.TupleSize = (uint)tuple_size; mesh.Box = mesh_box; node.Add(mesh); mesh.VertexAttribute = (0, 3); mesh.NormalAttribute = (3, 3); mesh.AddTextureAttrib((6, 2)); mesh.AddColorAttrib((8, 4)); TVertexFormat[] format = { new TVertexFormat(0, vertex_index, 3, 0, false), new TVertexFormat(0, normal_index, 3, 3, false), new TVertexFormat(0, texture0_index, 2, 6, false), new TVertexFormat(0, 2, 4, 8, false), }; // setup vertex arrays and index array var vao = openGLFactory.NewVertexArrayObject(); vao.AppendVertexBuffer(0, (int)tuple_size, attributes); vao.Create(format, indices); mesh.FaceSize = 3; mesh.VertexArray = vao; }
public static AssimpModelBuilder Create(IOpenGLObjectFactory openGLFactory, Stream filestream) { return(new AssimpModelBuilder(openGLFactory, filestream)); }
public static AssimpModelBuilder Create(IOpenGLObjectFactory openGLFactory, string filename) { return(new AssimpModelBuilder(openGLFactory, filename)); }
public static TrefoilKnotBuilder Create(IOpenGLObjectFactory objectFactory, int slices = 256, int stacks = 32, float ra = 0.6f, float rb = 0.2f, float rc = 0.4f, float rd = 0.175f, float[] c = null) { return(new TrefoilKnotBuilder(objectFactory, slices, stacks, ra, rb, rc, rd, c)); }