Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using UnityEngine;
- public class MeshConvert : MonoBehaviour
- {
- // Start is called before the first frame update
- void Start()
- {
- CreateOBJFile();
- }
- public void CreateOBJFile() {
- Debug.Log("Creating OBJFile.");
- System.IO.BinaryReader reader = new BinaryReader(File.Open("D:/Games/WorldofWarcraft3.3.5a/wowmapper/bin/29_48.mesh", FileMode.Open)); // stormwind
- System.IO.TextWriter tw = new System.IO.StreamWriter("D:/Games/WorldofWarcraft3.3.5a/wowmapper/bin/stormwind.obj");
- reader.ReadBytes(32); //jump over BBX
- reader.ReadBytes(16); //jump over ADT
- // INDICES
- reader.ReadChars(3);
- reader.ReadByte();
- UInt32 indexSize = reader.ReadUInt32();
- int[] indexes = new int[indexSize];
- for (int i = 0; i < indexSize; i++) {
- indexes[i] = (int)(reader.ReadInt32() + 1);
- }
- Console.WriteLine("Done with saving indices.");
- // write VERTICES
- reader.ReadChars(3);
- reader.ReadByte();
- UInt32 vertexSize = reader.ReadUInt32();
- for (int i = 0; i < vertexSize; i++) {
- tw.WriteLine("v " + reader.ReadSingle() + " " + reader.ReadSingle() + " " + reader.ReadSingle());
- }
- Console.WriteLine("Done with writing vertices.");
- // write INDICES
- for (int i = 0; i < indexSize;) {
- tw.WriteLine("f " + indexes[i++] + " " + indexes[i++] + " " + indexes[i++]);
- }
- Console.WriteLine("Done with writing indices.");
- tw.Close();
- Console.WriteLine("Done.");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement