• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

OpenGL - tworzenie trójkątów w pętli

Object Storage Arubacloud
0 głosów
269 wizyt
pytanie zadane 11 kwietnia 2022 w OpenGL, Unity przez letmestay Użytkownik (520 p.)
Mam na zadanie stworzenie takiej ala szachownicy, którą mam zbudować z trójkątów. Mogłabym je oczywiście wpisać na sztywno (udaje mi się przy użyciu glDrawElements i zadeklarowanych indices), ale prowadzący chciał, żeby to się robiło samo. Mam wrażenie, że przegrzebałam już za tym pół internetu i dalej nie wiem jak nawet do tego podejść właśnie wykorzystując te indices. Czy jest jakaś strona albo jakieś źródło, które pozwoli mi zrozumieć jak rysować takie trójkąty w pętli?

2 odpowiedzi

+1 głos
odpowiedź 11 kwietnia 2022 przez adrian17 Ekspert (344,860 p.)
edycja 11 kwietnia 2022 przez adrian17
Trudno powiedzieć, co autor (prowadzący) ma na myśli.

Wyobrażam sobie że albo mu chodzi o:

- cztery wierzchołki (na dwa trójkąty) i narysowanie ich przez glDrawElements() 81 razy z różnymi macierzami transformacji w shaderach

- raczej nie, ale... cztery wierzchołki i jeden glDrawElementsInstanced() rysujący na raz 81 instancji? (z 81 macierzami w jednej tablicy przekazanej do shadera)

- 9x9 wierzchołków i narysowanie ich jednym (dwoma, zależnie jak dwa kolory obsługujesz) glDrawElements()?

Albo coś innego... :/
+1 głos
odpowiedź 12 kwietnia 2022 przez Bondrusiek Maniak (61,370 p.)

Hej,

mozesz wykorzystac zwyczajna petle for/while. Zbindowac sie w glownej petli z VAO i zaczac rysowac. 

Cos w tym typie(tylko musisz zaprojektowac pozycje dla pol) dla GLFW:

  // render loop
    // -----------
while (!glfwWindowShouldClose(window))
{
       ....
        // render boxes
        glBindVertexArray(VAO);
        for (unsigned int i = 0; i < 10; i++)
        {
            // calculate the model matrix for each object and pass it to shader before drawing
            glm::mat4 model = glm::mat4(1.0f);
            model = glm::translate(model, cubePositions[i]);
            float angle = 20.0f * i;
            model = glm::rotate(model, glm::radians(angle), glm::vec3(1.0f, 0.3f, 0.5f));
            ourShader.setMat4("model", model);

            glDrawArrays(GL_TRIANGLES, 0, 36);
        }
...
}

Caly tutorial:

https://learnopengl.com/Getting-started/Coordinate-Systems

Podobne pytania

0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 22 kwietnia 2023 w Matematyka, fizyka, logika przez HUBSON2912 Obywatel (1,300 p.)
0 głosów
2 odpowiedzi 245 wizyt
0 głosów
0 odpowiedzi 148 wizyt
pytanie zadane 25 kwietnia 2023 w OpenGL, Unity przez RufinB Obywatel (1,830 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...