Closed raniabbrk closed 2 weeks ago
As discussed, OpenGL ES appears to be the most suitable option for implementing the 3D map of the sky. I have found multiple key resources to start my learning process:
I will begin with the Android tutorial and update the issue regularly as I make progress.
Tutorial Steps:
I’ve completed the first OpenGL ES tutorial, which helped me grasp the basics of OpenGL ES and provided a basic understanding of the general structure of OpenGL code.
I will try to read code of different repositories implementing the skymap using OpenGL such as Stellarium or Stardroid to understand how they coded their own skymap.
I reviewed the Stardroid repository, which is an OpenGL ES-based implementation written in Java. It closely aligns with our project's goals and has a similar structural approach to what we aim to implement. I recognized some elements from the initial OpenGL ES tutorial I completed. However, Stardroid includes numerous additional considerations and optimizations that weren’t covered in the basic tutorial.
To bridge this gap, I believe it would be most efficient to follow a more advanced tutorial, such as the 4th tutorial mentionned. This resource should help build the knowledge required to move closer to our goal and enable a more effective adaptation of Stardroid’s advanced techniques into our 3D sky map.
Progress Update:
Goal for End of Sprint: Basic Map Implementation
Next Steps & Considerations:
I’ve completed my research for this sprint, and I’m pleased with the progress made. Starting with no prior OpenGL ES experience, I’ve managed to create a rotating 3D pyramid—a significant step given the library's complexity. Although I aimed to have randomly positioned stars in 3D and a functional camera, I'm close to these goals even if they weren’t fully reached within this sprint.
After revisiting the Stardroid repository, I've concluded that directly using their code may be impractical. They use an earlier version of OpenGL ES, which differs from what we’re working with. Given the challenges of adapting their code, it seems more efficient to treat Stardroid as an inspiration rather than a direct source.
Since we need to decide whether to continue on this path, here’s what to expect:
Main Work Areas
3D Sky Map Development:
Code Structure and Data Integration:
Application Integration:
Challenges and Timeline
If we decide to continue, we’ll need to meet as a team to create a clear, comprehensive plan: determining exactly what features we want, what resources and steps are necessary to achieve them, and estimating the time required. Dividing the project scope in advance will be essential to fit these goals into our timeline.
Despite some uncertainties, I’m optimistic that we can develop a functional, interactive 3D map that offers a meaningful experience by the project’s end.
As discussed, I’ll aim to complete the initial goal by Saturday: implementing a camera with stars positioned around it. From there, I’ll outline a plan for the 3D map to have something meaningful ready for review by Sunday.
Afterward, we’ll have a final discussion to determine whether committing to the 3D map in OpenGL is realistically achievable within our timeline.
I spent the planned 2 hours today working on camera movement implementation. While the basic camera movements are functional, the implementation turned out to be more complex than anticipated. I initially underestimated the range of methods available to move a camera in a 3D space.
Here are some key challenges encountered:
With a better understanding of these complexities, I feel ready to draft a structured plan for developing the 3D map. The goal of this plan will be:
Next Steps: Tomorrow, I’ll work on defining this code structure and 3D map plan. Once complete, we can review it together to decide whether committing to a full 3D map in OpenGL is achievable within our timeline.
We are committing to the development of the 3D map as a core, meaningful feature, acknowledging that this task will be quite challenging. This comment will serve to close this issue as we prepare to refactor the existing code in #66, which was originally coded for the tutorial, to begin the implementation of our OpenGL project.
To enhance our team’s knowledge, @rihabbelmekki and @raniabbrk will start learning OpenGL ES by completing the first issue, which involves rendering a basic OpenGL application. With this effort, we will have three team members familiar with OpenGL, allowing us to collaborate more effectively as we move forward with the implementation.
Try to implement the map in 3D, where users can scroll and explore the sky: