Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2008-06-16

А они написали LP систему рендеринга!

literateprogramming.com

Matt Pharr and Greg Humphries. "Physically Based Rendering: From Theory to Implementation", Morgan Kaufmann, 2004

.Написание LP требует гораздо больше работы чем написание обычной программы. Ну кто документирует свои программы в первую голову!? И более, кто документирует их в педагогическом стиле для легкого понимания? И наконец, кто предоставляет комментарии на теорию и дизайн лежащие в основе кода при написании документации? Все это здесь на страницах ниже.

Эта книга представляет подборку современных алгоритмов рендеринга через документированный исходный код законченной системы рендеринга. Система, pbrt, написана используя методологию программирования называемую LP которая соединяет прозаическое описание системы с исходным кодом реализующим систему. Мы верим что LP подход это ценный путь к представлению идей компьютерной графики и компьютерных наук в целом. Часто, некоторые тонкости алгоритма могут быть неясны или скрыты до их реализации, так что рассмотрение действительной реализации это хороший способ получить полное понимание деталей алгоритма. Действительно мы верим что глубокое понимание немногих алгоритмов таким макаром дает крепче фундамент для дальнейшего изучения комп.графики чем дает поверхностное понимание многих (алгоритмов).

Эта книга - длинная LP программа. Это значит что по мере чтения этой книги, вы прочтете полную реализацию pbrt системы рендеринга, не только ее высокоуровневое описание. LP метаязык дает две важные фичи. Первая это возможность смешать прозу с исходниками. Эта фича делает описание программы таким же важным как и исходник, поощряя осторожный дизайн и документирование. Вторая, язык дает механизм для представления программного кода читателю в порядке полностью отличном от выдаваемого компилятору. Так программа может быть описана в логичном виде.

В некотором смысле, LP система это просто усовершенствованный пакет макро подстановок настроенный на задачу переупорядочивания исходников. Это может выглядеть как тривиальное изменение, но фактически LP вполне отличается от других способов структурирования софтверных систем..


pbrt.org

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)