Speeding up OpenGL (lisp rant) |
[Mar. 25th, 2009|12:05 pm] |
|
|
|
Comments: |
Cik saprotu, visos gadījumos procesoram ir jānolasa no atmiņas konkrētas koordinātas, kurās parādīt trīsstūri. Tikai pirmajā gadījumā ķēdīte ir garāka - vispirms nolasa adresi (pointeri), kurā atrodas koordināta, un tad tikai pašu koordinātu. Starpība starp lispu un c tad būtu tāda, ka lispā var rantaimā veikt optimizācijas, t.i., iebliezt datus kodā kā konstantes, bet c to var tikai ar rociņām hārdkodēt pirms kompilēšanas. By the way, dažos gadījumos c kompilators ir spējīgs noņemt "abstrakcijas radīto sarežģītību", t.i., atrullēt ciklus vai aizvākt datu atrašanu caur pointeriem, ja dati ir konstanti.
| From: | snauts |
Date: | March 25th, 2009 - 04:31 pm |
---|
| | | (Link) |
|
Tu pareizi saprati, bet kāpēc uzreiz "ar rociņām hārdkodēt", tu jau vari uzrakstīt progu, kas tavu 3D objekta failu pārtaisīs par C sourci, kuru tu pēc tam vari savai progai piekompilēt. BTW Gudri vīri man jau lika nokaunēties, jo šāda fīča ir jau iekš OpenGL 1.1, kur komandas netiek izpildītas, bet gan nokompilētas un sabāztas video kartē, kas ir vēl krutāk. | |