OpenKh icon indicating copy to clipboard operation
OpenKh copied to clipboard

WIP Fix MapGen

Open kenjiuno opened this issue 3 years ago • 0 comments

Changes WIP

Fix clip material won't generate clip plane.

  • The mesh has material option using nodraw: true was ignored by COCT generator.

Separate doct builder from coct builder. vifPacketRenderingGroup is now built by doct.

Fix #220

  • COCT generator and DOCT generator won't share artifacts.

Set OctalTreeCount which was uninitialized.

  • DOCT count was set to zero in map file, and it was inactive.

Tweak log message.

add multi nodes support to doct

  • Currently BSP will only have 2 child nodes. This is change to supports up to 8 child nodes in the future.

fix collision builder bug, display collision stat

  • Fix bbox computer bug.

Adding nococt and nodoct options.

  • https://github.com/kenjiuno/OpenKh/blob/fix-mapgen/docs/tool/CLI.MapGen/index.md
  • Useful to generate SK model

Adding OpenKh.Command.MapGenUtils

{
    "yaml.schemas": {
      "mapdef.schema.json": [
        "mapdef.yml"
      ]
    }
}

nodoct: true will generate doct having single node with (-32767, -32767, -32767) to (32767, 32767, 32767) bounding box.

BigMesh class has been decomposed and disposed, because BigMesh has problem. BigMesh is not suitable design to get splitted models based on 3D coord. This makes COCT / DOCT generator very ineffective.

  • SingleFace will be minimum unit of loaded user model.
  • MaterialContainer contains list of MaterialDefs for texture generation.
  • MapVifPacketBuilder will have its own domain model, without using external model.
  • private MicroMesh, MicroVert, and MicroMeshMaker classes are added in MapBuilder. It is a splittable mesh representation suitable for VIF packet generation.

ISpatialNodeCutter is exchangable interface for BSPNodeSplitter.

BSPNodeSplitter will work better on split. Supporting to cut up to 8 nodes.

OpenKh.Command.DoctChanger supports expose-map-doct command.

OpenKh.Command.AnbMaker is added.

OpenKh.Command.MapGen generates map which fits to PC version.

kenjiuno avatar Aug 25 '22 11:08 kenjiuno