Sun
16
Nov 2008
Odgrzebałem dzisiaj swój framework z wakacji, który służy do eksperymentowania i poeksperymentowałem z efektami wolumetrycznymi próbując otrzymać coś w rodzaju mgły. Rysuję bryłę wypukłą, a dla każdego piksela śledzę promień od kamery przez ten punkt wgłąb bryły. Wzdłuż tego promienia kilka razy próbkuję jakąś funkcję gęstości od (x,y,z). To tak jakbym liczył numerycznie całkę. Najlepiej to wygląda, kiedy gęstość jest po prostu odczytywana z przefiltrowanej tekstury wolumetrycznej zawierającej zwykły szum. Największym problemem było ustalić, jaką głębokość ma bryła w danym miejscu ekranu. Rozwiązałem to renderując głębokość tylnych ścianek obiektu (CullMode = CW) do osobnej tekstury R32F, którą potem odczytuję.