Chcę renderować efekt ognia w OpenGL na podstawie symulacji cząstek. Mam setki cząstek, które mają pozycję i temperaturę (a więc i kolor), a także wszystkie ich inne właściwości. Po prostu rendering przy użyciu glut nie wygląda zbyt realistycznie, ponieważ cząsteczki są zbyt szerokie. Jak mogę narysować ogień na podstawie informacji o cząstkach?Renderowanie ognia w OpenGL
Odpowiedz
Jeśli jesteś po prostu stara się stworzyć realistyczny efekt ognia użyłbym jakiegoś ponownie istniejącej biblioteki zgodnie z zaleceniami w innych odpowiedziach. Ale wydaje mi się, że jesteś po wyświetleniu symulacji.
Bezpośrednim rozwiązaniem, które warto wypróbować, może być zastąpienie obecnych sfer billboardami (tj. Obrazem graficznym, który zawsze jest skierowany w stronę aparatu), które są w środku białe i blakną do przezroczystości w kierunku krawędzi - oczywiście pozycjonowanie i kolorowanie obrazów zgodnie do twoich cząstek.
Lepszym rozwiązaniem jest podejście do płomienia jako zestawu siatek 2D, na którym można kontrolować przezroczystość i kolor każdego wierzchołka na siatce. Można to zrobić w OpenGL poprzez skonstruowanie płaszczyzny z quadów i użycie systemu cząsteczek do obliczenia (poprzez interpolację z najbliższych cząstek) koloru i przezroczystości każdego wierzchołka. OpenGL będzie interpolować każdy piksel między wierzchołkami dla ciebie i daje gładki obraz "średnich cząstek w okolicy".
Miło! Ten drugi może być wdrożony jako tekstura proceduralna, prawda? Hmm ... Nie, to nie ma sensu - każda instancja shadera fragmentów prawdopodobnie miałaby zbyt wiele do zrobienia. Musielibyśmy stworzyć tę teksturę raz na klatkę przed renderowaniem ognia. – Kos
Dzięki. Czy mógłbyś dodać więcej informacji na temat tych sieci 2d? – Etan
Naprawdę pomogłoby, gdybyśmy dokładnie wiedzieli, co chcesz osiągnąć: Czy próbujesz narysować symulację w czasie rzeczywistym lub po prostu wyświetlając konkretne zdjęcia? Czy chcesz wiernie reprezentować symulację, czy powinna ona wyglądać dobrze na oko? – Elemental
Prawdopodobnie chcesz użyć systemu cząstek renderować efekt ognia, oto poradnik NeHe jak to zrobić tylko, że: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=19
Nie chcę używać istniejącego systemu cząsteczek, ponieważ chcę się dowiedzieć, jak działają ;-) – Etan
- 1. OpenGL - Renderowanie w teksturę
- 2. Renderowanie wielowątkowe na OpenGL
- 3. OpenGL ES Renderowanie do tekstury
- 4. Renderowanie wielowątkowe D3D/OpenGL/Cokolwiek
- 5. OpenGL: Szybkie renderowanie poza ekranem
- 6. OpenGL ES 2d renderowanie do obrazu
- 7. Renderowanie OpenGL ES 2.0 do obrazu
- 8. Renderowanie prostego prostokąta z OpenGL 3 w języku D
- 9. Czy renderowanie OpenGL może być używane w monitorach 3D?
- 10. Ręczna wymiana ognia
- 11. Jak wybrać sprzętowe renderowanie OpenGL dla MATLAB na Linuksie
- 12. Wykonaj renderowanie poza ekranem (openGL) za pomocą Qt5
- 13. Wypchane zwierzę w OpenGL
- 14. Renderowanie na część tekstury
- 15. Renderowanie obiektu CII w teksturę OpenGL ES 2.0 w systemie iOS
- 16. Renderowanie oparte na wektorze OSM w czasie rzeczywistym w systemie iOS (przy użyciu OpenGL ES)
- 17. Natychmiastowe uruchomienie ognia systemu .net System.Timers.Timer
- 18. Dlaczego jQuery ognia zdarzenia ready asynchronicznie
- 19. jQuery - Wystąpienie zdarzenia zmiany ognia onload
- 20. CLOD Teksturowanie planety w OpenGL
- 21. OpenGL lub OpenGL ES
- 22. Android: renderowanie OpenGL zatrzymuje się, gdy ciężkie zadanie działa w tle.
- 23. Renderowanie SharpDX w WPF
- 24. Renderowanie w mojej usłudze
- 25. Renderowanie Ext.application w div
- 26. Android OpenGL FBO poza ekranem
- 27. Renderowanie subpikselowe czcionek na iPadzie
- 28. Android OpenGL ES Support Everywhere?
- 29. Interpolacja kolorów OpenGL
- 30. Kłopoty z Native OpenGL Renderer
Wygląda na to, że musisz interpolować lub znaleźć jakąś metodę, która to zrobi za Ciebie? – ccook
Tak, szukam metody tej interpolacji w OpenGL, ponieważ jeszcze jej nie znam. Jakiś solidny model dynamiczny może ... Przejrzystość jest również ważna, aby realistyczny ogień na krawędziach – Etan