Jak zaimplementować LOD dynamicznej geometrii opartej na GPU w OpenGL? [Zamknięte]

9

Próbuję wdrożyć LOD, aby zwiększyć wydajność mojej gry. Znalazłem bardzo fajny samouczek .

Podstawową koncepcją, którą, jak sądzę, rozumiem, jest: Uzyskaj odległość od kamery do obiektu, sprawdź odpowiedni poziom LOD, a następnie renderuj obiekt z „odpowiednią liczbą instancji”.

Jak to zaimplementować? Podany przykładowy kod jest dla mnie tajemnicą ...

Parę pytań:

  1. Czy to dobra metoda na wdrożenie LOD?
  2. Czy ktoś może wyjaśnić mi szczegółowo, w jaki sposób muszę to wdrożyć, z zapytaniami i tak dalej ...
  3. Renderuję wszystkie moje obiekty za pomocą

    GL11.glDrawElements(GL11.GL_TRIANGLES, model.getRawModel().getVertexCount(),
                        GL11.GL_UNSIGNED_INT, 0);

    Przykładowy kod wykorzystuje GL_POINTS. Czy mogę to również zaimplementować GL_TRIANGLES?

Gykonik
źródło
Jest to dobry sposób na implementację LODS dla ogromnej liczby instancji (do tego świetnie nadają się również Computing). Czy masz już system LOD oparty na procesorze? Tutaj GL_POINTS służy tylko do wysłania pewnej liczby GS, a nie do rzeczywistego renderowania (ten artykuł ma 7 lat, nowoczesna implementacja prawdopodobnie użyłaby zamiast tego shaderów obliczeniowych).
gan_

Odpowiedzi:

0

Myślę, że to zależy od tego, jak już skonfigurowałeś rendering, zakładając, że używasz tablicy indicie do rysowania swoich wierzchołków w terenie, to możesz po prostu stworzyć więcej tablic indicie do rysowania, przechodząc wzdłuż kolejnych wierzchołków z każdą tablicą.

galaban
źródło