Add examples for orthographic and perspective zoom#15092
Add examples for orthographic and perspective zoom#15092alice-i-cecile merged 12 commits intobevyengine:mainfrom
Conversation
alice-i-cecile
left a comment
There was a problem hiding this comment.
A few notes, but overall I really like these examples. Very actionable and relevant, with clear code.
|
BTW I've seen both, but do we have a standard for choosing "instructions on the screen as UI" vs "instructions in an |
|
Moderate preference for instructions on screen, especially if it's not going to interfere with the example otherwise. |
2bda09e to
d8f6caa
Compare
|
Fantastic, thank you :) |
janhohenheim
left a comment
There was a problem hiding this comment.
Reviewed only one example, but the comments apply to both.
I like that these examples exist, but there are some things in here that are a bit suboptimal when using the examples as a general learning resource, which a lot of beginners do. I'd like to showcase best practices a bit more if possible.
examples/3d/perspective_zoom.rs
Outdated
| @@ -0,0 +1,125 @@ | |||
| //! Shows how to zoom and orbit a perspective projection camera. | |||
There was a problem hiding this comment.
Could you cross-reference this and the first person view model example? Both feature perspective zoom.
janhohenheim
left a comment
There was a problem hiding this comment.
I'm not entirely convinced that this should be two separate examples instead of one. Would it complicate the logic a lot if you added a toggle between the two modes when pressing space?
TBH, I did think there was an awful lot of repetition. Let's see what it looks like as a combined effort. |
41f8cf7 to
2631c71
Compare
|
@janhohenheim How do we feel about this? I don't know if I've just muddied the waters, but at least everything is in one place... 🤔 Will clean up last bits and pieces tomorrow, otherwise I will be pitchin' and yawin' in my sleep. |
| --- | --- | ||
| [2D top-down camera](../examples/camera/2d_top_down_camera.rs) | A 2D top-down camera smoothly following player movements | ||
| [First person view model](../examples/camera/first_person_view_model.rs) | A first-person camera that uses a world model and a view model with different field of views (FOV) | ||
| [Projection Zoom](../examples/camera/projection_zoom.rs) | Shows how to zoom and orbit orthographic and perspective projection cameras. |
There was a problem hiding this comment.
I quite like the orbit showcase. I don't think we had that before :)
Maybe rename the file to orbit_and_projection_zoom, with the example name changing accordingly?
|
@richchurcher I'd also be happy if we split this into an example that showed the projection scaling on a static scene (e.g. our fox model) without any movement controls, and one example that only showed the orbit. That would probably be cleaner, but I'll leave the choice to you :) |
|
The merge train waits for no man 🚋 Seriously though, I think this is good enough to merge, but do feel free to tweak it in follow-ups. |
|
Ah, this needs revision following #15073 <3 |
|
The train stops for no-one! I'll revise in a sec. |
bba4dbe to
095da01
Compare
|
Does some kind person want to expand a tiny bit on |
|
|
|
Thanks! I'll split the example in a separate PR. |
# Objective As previously discussed, split camera zoom and orbiting examples to keep things less cluttered. See discussion on #15092 for context.
Objective
Add examples for zooming (and orbiting) orthographic and perspective cameras.
I'm pretty green with 3D, so please treat with suspicion! I note that if/when #15075 is merged,
.scalewill go away so this example uses.scaling_mode.Closes #2580