Skip to content

Implement a simple octree editor #234

@IAmNotHanni

Description

@IAmNotHanni

TODO

Issues which must be resolved before starting with octree editor:


It's time to implement a first generation of the octree editor. This will be a major new feature in our engine. Since it will probably be a challenging task, it's important to discuss the scope of the this first implementation. We should start simple and add more complex features later.

Here's the scope I have in mind:

Camera

  • Implement a freely moving camera which is controlled by WASD keys

Octree rendering

  • Implement wireframe rendering
  • Implement vertex outline rendering

Octree selections

  • Always render the selection grid on the octree surface where the camera is pointing at
  • Render the selected cube highlighted
  • Render the side of the selected cube which the camera is facing highlighted
  • Render the edge of the selected face which the camera is facing highlighted
  • Make only one cube selectable for now, no area or volume selection
  • Keep the grid size constant for now
  • Allow for movement of the selection along an axis (x,y,z) or in a plane (xy, xz, yz)
  • Implement a way to find collisions between the camera ray and the octree geometry

Octree editing

  • Delete the entire cube
  • Fill the entire cube
  • How to update vertices? We should not recreate the entire mesh buffer but only update necessary parts
  • Edit the octree edge indentation by pressing Q + mouse scroll

Textures

  • Implement texture rendering
  • How to update textures on a cube dynamically?
  • Render available textures using imgui
  • Set the texture of one face of the octree
  • Set the texture on all faces of the octree

Copy/Paste

  • Implement copy+paste of cubes

Related: #190

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions