sobota, czerwca 26, 2010

Chrome, Firefox, IE9 preview i cieniowanie Gouraud'em w JavaScript

Wczoraj chciałem sprawdzić jak działa moje cieniowanie Gouraud'em w IE9 Preview. Microsoft pochwalił się, że dodali wsparcie dla elementu Canvas to chciałem zobaczyć.
Na początku nie chciało działać, ale krótkie śledztwo wykazało, że wina była po mojej stronie. W chwili obecnej IE9 nie pozwala na używanie elementu Canvas w momencie gdy przechodzi do Quirks mode [myślę, że docelowo to poprawią], a ponieważ mój testowy plik HTML nie miał poprawnych nagłówków to IE9 zakładał, że powinien właśnie przejść do trybu Quirks.
Efekty działania można zobaczyć na poniższym filmie.
Wyniki nie zachwycają ;-) po pierwsze denerwujący jest widoczny pasek, który jak zgaduję jest wynikiem jakichś zawirowań z synchronizacją.
Jak widać na filmiku, jedna klatka zajmuje około 80-90 ms, dla porównania w Chrome na tym samym komputerze potrzeba od 8 do 12 ms, a na Firefoksie od 32-52 ms [tutaj widać, że Firefoks dość niestabilny jest w wydajności "dawanej" JavaScript'owi]. Te czasy są dla "pełnych" klatek, nie tych gdy twarz się obraca tyłem :-)Ciekawe jest to, że jak się przyjrzeć tym klatką gdy twarz jest niewidoczna [bo wektory normalne trójkątów są skierowane "do monitora"] to w IE9 zajmuje taka klatka koło 20-30 ms, czyli 2-3 razy więcej niż "pełna" klatka w Chrome ;-)Tak w ramach informacji, większość czasu jest spędzana w samym rysowaniu, nie w obliczeniach.
Tutaj ramka z animacją by można było po raz wtóry pobawić się swoją przeglądarką :-) [Opera się obraziła i nadal nie działa]
Tutaj zaś link do demka ;-)


Podobne postybeta
Cieniowanie Gourauda w JavaScript part 2 - przyśpieszamy :-)
Strategiczny wybór miejsca w tramwaju - poradnik ;-)
Cieniowanie Gourauda w JavaScript :-)
Gouraud = Pseudo Phong :-)
Nie tylko IE6 powinno pójść do piachu, każdy Internet Explorer powinien!!!!