Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::fs::File;
- use std::io::{BufWriter, BufReader};
- use byteorder::{LittleEndian, WriteBytesExt};
- use obj::{load_obj, Obj};
- fn main() {
- let input = BufReader::new(File::open("../dragon.obj").unwrap());
- let mesh: Obj<obj::Vertex, u32> = load_obj(input).unwrap();
- let mut output = BufWriter::new(File::create("../dragon.mesh").unwrap());
- output.write_u24::<LittleEndian>(0x55DABA).unwrap();
- output.write_u32::<LittleEndian>(mesh.vertices.len() as _).unwrap();
- for v in &mesh.vertices {
- output.write_f32::<LittleEndian>(v.position[0]).unwrap();
- output.write_f32::<LittleEndian>(v.position[1]).unwrap();
- output.write_f32::<LittleEndian>(v.position[2]).unwrap();
- output.write_f32::<LittleEndian>(v.normal[0]).unwrap();
- output.write_f32::<LittleEndian>(v.normal[1]).unwrap();
- output.write_f32::<LittleEndian>(v.normal[2]).unwrap();
- }
- output.write_u32::<LittleEndian>(mesh.indices.len() as _).unwrap();
- for i in &mesh.indices {
- output.write_u32::<LittleEndian>(*i).unwrap();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement