Commit Graph

12 Commits

Author SHA1 Message Date
Danny McGee 06751e54f6 Object picking (#8)
This PR implements basic object selection, with help from `bevy_mod_picking` and
`bevy_mod_outline`.

### Work Done
 * Click to select objects in the world
 * Selected objects become visually highlighted
 * The selected entity is available globally on the `Res<Selection>` resource
 * Selected entities can also be queried via the `Selected` marker component
 * Pressing `F` will "focus" the camera on the selected entity
 * Pressing `Esc` will clear the active selection

### Known Issues
 * We're currently using `bevy_mod_picking`'s "Selection" feature, which isn't 
   aware of our own input events. As a consequence, it will select the object
   under the cursor when releasing `LMB` after orbiting the camera, which is not
   what we want. This should be pretty easily fixable by dropping
   `bevy_mod_picking`'s selection feature and reading the object under the
   cursor in our own click listener that only runs if the LMB event is
   unhandled.
 * The skinned mesh is not currently selectable. This is likely fixable by
   adjusting the logic in `scene::mark_scene_objects`... somehow. The `Gltf`
   data structure is kind of a nightmare to work with, so this will take some
   investigation.

### Future Enhancements
 * For parity with other DCC apps, the "Focus" action should also adjust the
   camera zoom level to "frame" the selected object in the view. Punting on that
   for now because I'm not super confident about the math involved.
 * Group selection with Shift/Ctrl and/or marquee selection would be really nice
   to have, but probably not critical for now.
2023-11-02 13:32:58 -04:00
Danny McGee 4b9ea61495 New test scene, better render quality (#6)
* Updated test scene
* Adjusted lighting, tonemapping
* Replaced skybox
* Added bloom and FXAA
* [meta] Added assets folder to build dependencies
2023-10-25 17:45:24 -04:00
Danny McGee c84fd31387 UI infrastructure and simple "Help" dialog (#3)
Sets up some WIP infrastructure for building out the UI, and adds a simple popup
to show the navigation controls for the app.
2023-10-09 22:19:58 -04:00
Danny McGee 05644b55bd Update page title 2023-10-04 19:24:48 -04:00
Danny McGee 37b24d489c Adjust Netlify build pipeline 2023-10-04 17:57:37 -04:00
Danny McGee 90e504501d Load test model from glTF 2023-10-03 18:07:42 -04:00
Danny McGee 82157bd54a Document skybox generation process 2023-10-03 17:08:21 -04:00
Danny McGee ccf4d5945e Fix studio-frontend:preview configuration 2023-10-02 22:08:05 -04:00
Danny McGee 2273514fa6 Fix skybox for web 2023-10-02 21:51:45 -04:00
Danny McGee 2e3979b336 Sync Bevy canvas size with browser viewport size 2023-09-29 22:15:18 -04:00
Danny McGee c1f92cc2d6 Spawn Bevy canvas at full viewport size 2023-09-29 20:36:23 -04:00
Danny McGee bed97cff47 Rename projects 2023-09-29 18:33:00 -04:00