{"id":25943642,"url":"https://github.com/pecas-dev/opengl-project-1","last_synced_at":"2026-04-22T03:32:05.057Z","repository":{"id":244293854,"uuid":"814803051","full_name":"Pecas-Dev/OpenGL-Project-1","owner":"Pecas-Dev","description":"Computer Graphics Project made with Modern OpenGL in C++ (#1).","archived":false,"fork":false,"pushed_at":"2025-03-02T16:55:55.000Z","size":4740,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T17:34:14.752Z","etag":null,"topics":["cpp","graphics-programming","opengl"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pecas-Dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-13T18:30:13.000Z","updated_at":"2025-03-02T16:55:58.000Z","dependencies_parsed_at":"2024-09-15T14:02:50.465Z","dependency_job_id":"066f6f57-35f7-43a4-879c-593a96f0921d","html_url":"https://github.com/Pecas-Dev/OpenGL-Project-1","commit_stats":null,"previous_names":["pecas-dev/opengl-project-1"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pecas-Dev/OpenGL-Project-1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pecas-Dev%2FOpenGL-Project-1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pecas-Dev%2FOpenGL-Project-1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pecas-Dev%2FOpenGL-Project-1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pecas-Dev%2FOpenGL-Project-1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pecas-Dev","download_url":"https://codeload.github.com/Pecas-Dev/OpenGL-Project-1/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pecas-Dev%2FOpenGL-Project-1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32119771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","graphics-programming","opengl"],"created_at":"2025-03-04T07:18:08.554Z","updated_at":"2026-04-22T03:32:05.041Z","avatar_url":"https://github.com/Pecas-Dev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenGL1 Texture Rendering Project with Dear ImGUI\n\n \u003cbr\u003e\n\n---\n\n## Project Description\n\nThis project showcases **texture rendering in OpenGL**, using **custom shaders** and **UI controls built with Dear ImGUI**. The program renders two textures of [**Yoshi**](https://play.nintendo.com/themes/friends/yoshi/), on two separate squares, allowing **real-time control** of their **positions** and **background color** through the UI. Developed entirely from scratch, this project explores OpenGL’s rendering pipeline, including vertex and fragment shaders, buffers, and texture handling. The use of Dear ImGUI demonstrates the integration of UI elements to control and modify object properties dynamically.\n\n---\n\n \u003cbr\u003e\n\n![OpenGL-1](https://github.com/user-attachments/assets/cbee46eb-4128-4784-a489-d52392538533)\n\n \u003cbr\u003e\n \n--------------------------------\n\n## Features\n\n- **Window Creation**: Set up from scratch to create a rendering window.\n- **Rendering Pipeline**: Custom implementation of the OpenGL rendering pipeline, including shaders and texture handling.\n- **Textures**: Two Yoshi textures are rendered on two squares, created from triangles.\n- **UI Controls**: Dear ImGUI integration to allow real-time modification of texture positions and background color.\n\n---\n\n \u003cbr\u003e\n\n## Shaders\n\n### Vertex Shader\n\nHandles the transformation of 3D coordinates into screen space and passes texture coordinates to the fragment shader.\n\n```glsl\nlayout (location = 0) in vec4 position;\nlayout (location = 1) in vec2 textureCoordinate;\n\nout vec2 vTextureCoordinates;\n\nuniform mat4 uModelViewProjectionMatrix;\n\nvoid main()\n{\n    gl_Position = uModelViewProjectionMatrix * position;\n    vTextureCoordinates = textureCoordinate;\n}\n```\n\n### Fragment Shader\n\nRenders the texture color on the object, blending it with the background color.\n\n```glsl\nlayout (location = 0) out vec4 color;\n\nin vec2 vTextureCoordinates;\n\nuniform vec4 uColor;\nuniform sampler2D uTexture;\n\nvoid main()\n{\n    vec4 textureColor = texture(uTexture, vTextureCoordinates);\n    color = textureColor;\n}\n```\n\n \u003cbr\u003e\n\n---\n\n## Directory Structure\n\n```\nProject Root\n├── OpenGL1.sln                      // Visual Studio solution file\n├── .gitattributes\n├── .gitignore\n├── bin                              // Binary files\n├── Dependencies                     // External dependencies\n│   ├── x86\n│   │   ├── GLEW\n│   │   └── GLFW\n│   └── x64\n│       ├── GLEW\n│       └── GLFW\n│\n├── Release                          // Pre-compiled executables\n│   ├── OpenGL1_x64.bat              // Run x64 OpenGL1\n│   ├── OpenGL1_x86.bat              // Run x86 OpenGL1\n│   └── Platforms\n│       ├── x64                      // 64-bit builds\n│       │   └── OGL-P1               // Contains the necessary files to run the executable.\n│       │       └── Assets\n│       │           ├── Shaders\n│       │           └── Textures\n│       └── Win32                    // 32-bit builds\n│           └── OGL-P1               // Contains the necessary files to run the executable.\n│               └── Assets\n│                   ├── Shaders\n│                   └── Textures\n│\n└── OpenGL1\n    ├── Assets                       // Stores shaders, and textures.\n    │   ├── Textures\n    │   └── Shaders\n    │\n    └── Project                      // Contains the source code for the OpenGL1 Project.\n        ├── include\n        └── source\n```\n\n---\n\n\u003cbr\u003e\n\n## Installation \u0026 Running\n\n\u003cbr\u003e\n\n**Clone the repository:**\n\n```bash\ngit clone https://github.com/Pecas-Dev/OpenGL-Project-1.git\n```\n\n### Pre-compiled Executables\n\nThe easiest way to run the simulation is using the pre-compiled executables:\n\n1. Navigate to the `Release` folder.\n2. Choose the appropriate version for your system (`x64` or `86`).\n3. Run the `OpenGL1_x64.bat` or `OpenGL1_x86.bat`or file.\n\n### Building from Source\n\nTo build the project from source:\n\n1. Open `OpenGL1.sln` in Visual Studio.\n2. Choose your configuration (**Debug/Release**) and platform (**x64/x86**).\n3. Build the solution.\n4. Run the program.\n\n\u003cbr\u003e\n\n---\n\n## Controls\n\n- Use Dear ImGUI UI controls to move textures and change the background color.\n\n\u003cbr\u003e\n\n## Credits\n\nThis project was created by _**Pecas Dev**_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpecas-dev%2Fopengl-project-1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpecas-dev%2Fopengl-project-1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpecas-dev%2Fopengl-project-1/lists"}