Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3D is wonky and needs redone. #3

Open
JakeWharton opened this issue Jan 6, 2014 · 2 comments
Open

3D is wonky and needs redone. #3

JakeWharton opened this issue Jan 6, 2014 · 2 comments

Comments

@JakeWharton
Copy link
Owner

The 3D implementation is fairly wonky as a result from being iterated on rapidly rather than thought out initially. On the rotation extremes, you can clearly see that the layers are being translated along the rotated x/y axes to perceive z-axis movement. While this creates visual separation that looks like spacing, it makes the layer's appear smaller. We need true 3D manipulation where the layers are rotated with the model and moved along the true z-axis.

Note: It's important that the model be perfectly flat when viewed from straight on. Otherwise, the z-axis spacing would cause perceived sizes to be wrong. That is, a control that's a few levels up would appear much larger than if it were on the "ground" layer. This is honored now by scaling the x/y translation by the rotation percentage. For example, a 30 degree rotation is 50% of the max therefore we only separate the layers by 50% of their spacing.

@christopherperry
Copy link

Why don't you use an Orthographic Projection to get rid of the scaling effect and just put your layers on different points of the z-axis?

I don't see any OpenGl classes in your implementation. It would probably be much easier (and less code) if you went with OpenGl. This is actually something I would donate time to help you with.

@JakeWharton
Copy link
Owner Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants