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?


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ą.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.