niedziela, maja 02, 2010

Cieniowanie Gourauda w JavaScript part 2 - przyśpieszamy :-)

[Update podmieniłem demko, obecne działa na Chrome z prędkością od 90 do 100-110 klatek na sekundę :-)]Byłem zachwycony wynikiem z dzisiejszej nocy czyli 4-5 klatkami na sekundę, ale właśnie przed chwilą przyśpieszyłem do 30-40 klatek na sekundę :-) na co dowód na filmie :-) [tak naprawdę rzeczywista prędkość to około 50 klatek na sekundę, ale w trakcie nagrywania spadła do tych 30-40 klatek]
Wcześniej nie znając zbytnio obiektu Canvas z HTML5 używałem metody fillRect(int,int,int,int), która rysowała prostokąt o zadanych wymiarach w zadanej lokalizacji. Chwila profilowania tego kodu w Chrome pokazała, że to rysowanie oraz ustawianie koloru zabierają najwięcej czasu z całego procesu rysowania.Teraz zamiast rysować przy pomocy prymitywów tworzę obrazki jako pixele tak jak to logika nakazuje ;-)Udało mi się nawet obecną wersję uruchomić na moim G1 gdzie prędkość renderowania to około 0.5 klatki na sekundę :-)
Ze złych informacji, tym razem Opera 10.50 w ogóle zrezygnowała choć nie chciała powiedzieć co jej się nie podoba.Tutaj możecie zobaczyć jak szybko to działa u was :-) [u mnie na Chrome jest to zwykle około 50 klatek na sekundę, na Firefoksie 20-25 klatek na sekundę]
Dla tych co z RSSa/Buzza tutaj link bezpośredni do demka :-)Nadal jestem otwarty na głosy zachwytu ;-)


Podobne postybeta
Cieniowanie Gourauda w JavaScript :-)
Nie taka Java wolna jak ją opisują...
Chrome, Firefox, IE9 preview i cieniowanie Gouraud'em w JavaScript
HD
Lubię enumy