Теперь напишем следующее:
   d3d_Device-›CreateVertexBuffer (3*sizeof(CUSTOMVERTEX),
   0, D3DFVF_XYZRHW | D3DFVF_DIFFUSE, D3DPOOL_DEFAULT, amp;p_VertexBuffer);
   VOID* pVertices;
   p_VertexBuffer-›Lock (0, sizeof(g_Vertices), (BYTE**) amp;pVertices, 0);
   memcpy (pVertices, g_Vertices, sizeof(g_Vertices));
   p_VertexBuffer-›Unlock();
   CreateVertexBuffer - выделяет место на устройстве под три вершины (3*sizeof(CUSTOMVERTEX),) и присваивает его нашему указателю (p_VertexBuffer). Далее «запираем» (Lock()) буфер вершин, чтобы случайно его не повредить. Копируем весь наш буфер (memcpy()) в буфер видеокарты. И снова разрешаем доступ (Unlock();).
   И наконец, мы готовы к рисованию:
   d3d_Device-›BeginScene ();
   d3d_Device-›SetVertexShader (D3DFVF_CUSTOMVERTEX);
   d3d_Device-›SetStreamSource (0, p_VertexBuffer, sizeof(CUSTOMVERTEX));
   d3d_Device-›DrawPrimitive (D3DFVF_XYZRHW | D3DFVF_DIFFUSE, 0, 1);
   d3d_Device-›EndScene ();
   SetVertexShader() определяет тип вершин. SetStreamSource() задает поток для дальнейшей работы. Здесь 0 - номер потока, второй параметр - данные, которые присваиваются к этому потоку, и третий параметр - размер, занимаемый в памяти одной вершиной. DrawPrimitive - рисует примитивы на экране, принимает на вход (в порядке следования) тип примитивов для отрисовки, индекс первой вершины, с которой нужно начать рисование, и количество примитивов в последовательности.
 

ТЕХНОЛОГИИ: Весь фокус в фокусе

 
    Несмотря на многочисленные недостатки и дороговизну, цифровая фотография имеет и несомненные достоинства. Удобство хранения, просмотра и размножения цифровых снимков заставляет все больше и больше людей отказываться от традиционных аппаратов. Для любителей новых технологий ученые Стэнфордского университета приготовили еще один сильный довод.
   В этом году группа из шести исследователей - Рена Н’ (да-да, именно такая фамилия, он держит фотокамеру на снимке справа), Марка Левоя, Мэтью Брэди, Марка Хоровитца, Пата Генрегана и основателя студии «Дюваль Дизайн» Рене Дюваля - предложила работающий прототип «фотокамеры будущего». Новый фотоаппарат, утверждают разработчики, позволяет делать специальные «четырехмерные» фотоснимки, из которых путем вычислений можно получать самые обычные цифровые отпечатки, но точку фокусировки можно менять уже после съемки.
   Звучит невероятно? Однако это истинная правда. Более того, с такими снимками можно ознакомиться на сайте разработчиков. Снаружи чудо-камера выглядит точно так же, как и обычная цифровая, и все отличие заключено в оптической системе и алгоритме работы встроенного программного обеспечения. Группа экспериментировала со специально переделанной среднеформатной камерой Kodak DCS 645M, используя 16,6-мегапиксельную цифровую матрицу Kodak KaF-16802CE. Выбор столь дорогого образца разработчики объясняют просто: чтобы получить доступ к матрице, нужна была модель со съемной задней панелью. Такая конструкция бывает только у профессиональных фотокамер, в которых предусмотрена возможность замены не только объектива, но и «задника» с пленкой или CCD-матрицей.
   Переделка оптической системы состоит в том, что между объективом и полупроводниковым сенсором в фокальной плоскости помещен массив микролинз (в опытном образце он имеет размер 292х292 микролинзы), каждая из которых формирует свой кусочек изображения на полупроводниковой матрице. Суммируя данные по определенному закону, можно получать фотоснимки, сфокусированные на разных точках в пространстве. Кроме выбора точки фокусировки, эта технология позволяет получить снимки с большой глубиной резкости и, более того, произвольно менять ее. Управлять размером диафрагмы нет необходимости, она всегда должна оставаться полностью открытой, что не только уменьшает время выдержки (а значит, позволяет избавиться от смазанности снимка из-за дрожания рук), но и улучшает отношение сигнал/шум, так как на матрицу приходит достаточно света.
   Как было сказано, на снимке получается массив кусочков изображения, каждый из которых формируется отдельной микролинзой. Для этого разработчикам пришлось решить немало технологических проблем. Одна из них состояла в том, что при изменении точки фокусировки объектива (а он, разумеется, остался прежним) изображения, формируемые микролинзами на полупроводниковой матрице, могут либо уменьшаться, либо, наоборот, наползать друг на друга. Чтобы этого не случилось, матрицу с линзами расположили в фокальной плоскости объектива, сдвинув CCD-сенсор назад, для чего пришлось перестроить весь «регистрирующий» узел фотокамеры («задник»), а объектив зафиксировать в положении «бесконечность».
   После съемки очередного кадра в дело вступает процессор фотокамеры, который из массы микроизображений формирует единственное, суммируя по определенному правилу информацию, полученную сенсором от каждой микролинзы. То есть контроль над изображением фактически забирается у оптической системы и отдается программе. В результате картинка на матрице уже не является конечной, это как бы массив информации об исходном изображении, в котором координаты конкретной точки указывают, откуда и под каким углом пришел луч, а яркость точки - соответственно яркость луча. О цвете точки мы не говорим, так как CCD-матрица представляет собой массив триад, где каждый полупроводниковый детектор имеет фильтр своего цвета. То есть каждая линза - это одна точка будущей фотографии, а координаты реальных точек детектора под микролинзой означают угол, под которым луч падает на микролинзу. Таким образом, разработчики говорят о четырехмерности имеющегося массива информации, поскольку каждая точка имеет четыре параметра: координаты X и Y на матрице, яркость и координаты линзы. Притом надо понимать, что никакая точка снимка уже не хранит информацию о конкретной точке исходного изображения.
   Можно сказать, что «внутри» одного такого изображения хранится как бы «стопка» фотографий с разрешением хоть и ниже исходного разрешения матрицы (теперь оно равно размеру матрицы микролинз[Разработчики замечают, что, жертвуя высокой резкостью итогового изображения, можно получать снимки и более высокого разрешения, как это делается в современных сканерах]), но каждое из которых сфокусировано по-своему. Пространство сцены как бы нарезано на вертикальные слои - подобно множеству изображений, полученных одновременно при разной настройке фокуса объектива и закодированных внутри снимка. Размер «стопки» пропорционален количеству засвеченных точек под каждой микролинзой. Однако это не значит, что каждая такая точка что-то значит сама по себе. Чтобы увидеть любую фотографию из «стопки», необходимо смотреть на записанное изображение через такую же оптическую систему с микролинзами, какая использовалась при начальной экспозиции. Настраивая фокус объектива «просмотрщика», мы сможем выбирать любую фотографию из «стопки». То есть каждая микролинза формирует только одну точку результирующего изображения на основе всех находящихся под ней точек (рис. 2).
 
***
 
   «Фокус» же технологии в том, что цифровая камера может просто вычислить исходную фотографию, не прибегая ни к каким дополнительным объективам для просмотра. Для этого достаточно использовать математическую модель «просмотрщика», коей в нашем случае является обратное (нормированное по конкретной частоте) преобразование Фурье для пространственных частот[Появление тех или иных форм и фигур в изображении; чем меньше фигуры, тем выше их пространственная частота. Можно представить эту сущность в виде решетки, размер ячеек которой обратно пропорционален ее (решетки) пространственной частоте]. В использовании этого приема для выбора зоны фокусировки и состоит описываемое изобретение.
   Задавая начальный параметр в виде нормирующей частоты (по сути дающей нам фокусное расстояние) и суммируя информацию со всех точек, можно получить фотографию, настроенную на резкость именно там, где нужно. Однако она будет иметь очень маленькую глубину резкости (ведь это только одна фотография из «стопки»). Поэтому, чтобы получить еще и заданную глубину резкости, необходимо просуммировать несколько вычисленных таким образом фотографий, имеющих близкие, но все же разные настройки резкости (рис. 3).
   Особенно впечатляет, когда это делается для динамичных фотографий, вроде разбивающейся чашки или всплесков воды. Эта технология приносит и другие бонусы, один из которых давно используется в спектроскопии. Например, даже если с должной резкостью сфотографировать плохо освещенное изображение (положим, текст), то из-за шумовых помех разобрать его на снимке будет нельзя. Суммируя данные со всей матрицы, удается сильно поднять уровень полезного сигнала, пусть даже и ценой некоторой «расфокусировки».
   Итак, цифровой становится не только пленка, но и оптика. Наверное, это можно даже назвать следующим этапом развития фотографии. Впрочем, теория «четырехмерных» снимков появилась давно. Еще в 1983 году японские ученые Ишихара и Танигаки предложили располагать микролинзу над каждым, как у них сказано, «фоточувствительным регионом». Тогда это делалось не ради повышения резкости фотографии, а для увеличения чувствительности при астросъемках. В 1992 году Е. Адельсон и Дж. Ван разработали камеру, действующую на этом принципе. По конструкции аппарат шестерки изобретателей практически повторяет камеру Адельсона и Вана (но та была пленочной, использовала вдвое больше линз и предназначалась для фотографического измерения расстояний) и по сути является очередным эволюционным шагом на долгом пути фототехнологий от аналога к цифре, где не только пленка заменяется ячеистым сенсором, но и изображение строится путем вычислений, недостижимых или трудно достижимых традиционным аналогово-оптическим методом.
 

Софтерра: По секрету всему свету

 
    Перелистывание альбома с фотокарточками в кругу семьи постепенно отходит в область преданий. Богатые возможности цифрового фото позволяют запечатлеть любой момент нашей жизни. Цифровые снимки не желтеют со временем, для их размножения не нужны сверхусилия - достаточно лишь скопировать файл, а Интернет дарит нам удивительную возможность обмениваться фотографиями, не вставая с уютного офисного кресла.
 
Я к вам пишу…
 
   Нет ничего проще, чем переслать снимок по электронной почте. Достаточно написать письмо и приложить к нему фотографию в виде прикрепленного файла. Впрочем, и здесь есть свои тонкости.
   Положа руку на сердце, ответьте, неужели вы ни разу мысленно не проклинали адресата, получая письмо размером в несколько мегабайт, содержащее лишь не слишком качественную фотографию? Вдобавок ко всему вам, вероятно, приходилось под микроскопом рассматривать лицо друга, окруженное мегабайтами ненужной графической информации.
   Нетрудно догадаться, что защита от неизбежных проклятий лежит в области кадрирования и масштабирования снимков. Подобные инструменты сейчас присутствуют не только в сложных графических редакторах, но и практически в каждом уважающем себя менеджере изображений. Для просмотра фотографии на экране обычно достаточно разрешения 1024x768. Будучи записанной в формате JPEG, такая картинка займет разумные 50-100 килобайт и не заставит ваших друзей ни долго ждать загрузки почты, ни платить за непрошеный трафик. Тем не менее увлекаться степенью сжатия JPEG не стоит - «перебор» приводит к появлению множества артефактов, лишь незначительно уменьшая размер файла.
   На случай, если вы рискнете отправлять оригинальную «тяжелую» версию снимка, упомянем, что максимальный размер письма, передаваемого с помощью протокола POP3 (наиболее распространенный способ работы с электронной почтой), равняется 10 Мбайт, а приаттаченные файлы имеют свойство увеличиваться в размерах на четверть, а то и больше.
 
Фотоальбомы XXI века
 
   Электронная почта - самый простой, но в то же время и самый неэффективный способ демонстрации своих шедевров. В угоду запросам фотолюбителей было придумано множество веб-сервисов, большинство из которых имеет схожую базовую функциональность - загрузка фотографий через веб-форму, группировка по альбомам, система комментариев и демонстрация EXIF-данных. Впрочем, помимо этого «джентльменского набора» у многих подобных ресурсов есть и свои, уникальные возможности, а зачастую и не менее уникальные недостатки и ограничения. Мы попытались свести всю важную информацию о популярных российских (точнее, русскоязычных) и зарубежных (англоязычных) сервисах в таблицу.
   При выборе фотохостинга следует помнить о том, что ничего бесплатного в современном мире не бывает, и держатели подобных сервисов - отнюдь не альтруисты. Даже если в графе «цена» стоит заветное слово «халява», платить за пользование все равно придется - так или иначе. Распространены следующие методы прямого и косвенного отъема денег у фотолюбителей:
   Медийная модель - получение дохода от размещения рекламы. На этом принципе держится большинство информационных сайтов, и в мире фотографических веб-сервисов он тоже работает. Его преимущества и недостатки хорошо известны: с одной стороны, пользователю и правда платить не надо, с другой - в созерцании огромных баннеров или загрузке рекламных flash-роликов приятного мало.
   Прямая оплата фотохостинга. Как правило, в этом случае можно бесплатно пользоваться либо сильно урезанной версией сервиса, либо полной - но ограниченное время. Если все-таки немного заплатить, можно получить и почти неограниченное место на диске, и отсутствие рекламы на страницах вашего альбома. Правда, тоже временно - когда деньги на лицевом счете кончатся, «вливание» придется повторить.
   Продажа дополнительных услуг. Здесь фотографии могут размещаться бесплатно (и зачастую без ограничений - по крайней мере, в пределах разумного), но вместе с этим ненавязчиво предлагается либо распечатать несколько снимков одним кликом, либо изготовить уникальный подарок на основе вашего фотоматериала, либо закачать фотографию на телефон (последнее особенно распространено на русскоязычных сервисах). Некоторые сервисы даже требуют, чтобы вы время от времени заказывали подобные платные услуги - в противном случае грозятся аккаунт удалить; впрочем, так поступают не все, и мы постарались отобрать более лояльные к «неплательщикам» фотохостинги.
   Конечно, перечисленные способы можно комбинировать (что и делают многие ресурсы) и даже придумывать новые, но в основном все крутится вокруг этих трех базовых бизнес-моделей.
 
Путь блоггера
 
   Пожалуй, отдельного упоминания заслуживает Flickr - инновационный фотохостинг в стиле «Веба 2.0», наглядно демонстрирующий, как несколько новых идей могут создать культовый сервис:
   Теги и «фолксономия». Вместо использования привычной концепции фотоальбома Flickr позволяет назначать каждому снимку несколько ключевых слов (тегов), по которым в дальнейшем происходит поиск и отбор (впрочем, аналог альбомов здесь тоже есть: он называется photoset). Например, вы загрузили семейные фотографии - логичнее всего присвоить им тег «family», чтобы средства систематизации сервиса позволяли просматривать ваши семейные фото наравне с другими участниками Flickr. Если к тому же один из снимков сделан на фоне египетских пирамид, можно добавить к нему еще и ключевые слова «Egypt» и «pyramid». Более того: теги могут назначать не только автор снимка, но и зрители (конечно, с разрешения автора), что позволяет подключить к непростой задаче категоризации больших фотоархивов мощь «коллективного разума».
   «Интересность». Тот же самый «коллективный разум» участвует (хотя и не вполне осознанно) в выборе наиболее интересных снимков для раздела «Explore». С помощью закрытых от посторонних глаз алгоритмов система анализирует действия пользователей по отношению к каждой фотографии (просмотры, комментирование, добавление тегов, упоминания в блогах и т. д.) и на основе этих данных отбирает «лучшие из лучших» - действительно необычные фотоработы, которые можно рассматривать часами.
   Быстрый AJAX-интерфейс и полноценные приложения, запускаемые из браузера. На этом принципе построен Organizr - веб-утилита каталогизации и просмотра ваших фотографий с очень приятными функциями: например, можно легко просмотреть снимки, сделанные в определенный период и относящиеся к определенной теме, и сгруппировать их по «альбомам».
   Впрочем, рассказывать про Flickr можно долго - но, наверное, лучше все-таки взглянуть на него своими глазами, благо базовый аккаунт можно зарегистрировать бесплатно. Не факт, что этот ресурс подходит всем, но у него есть свое «лицо», делающее его не похожим на другие сервисы.
 
Путь фотолюбителя
 
   В русскоязычном сегменте Сети к культовым местам сбора фотолюбителей можно отнести Фото.Сайт (photosight.ru). Человек, попавший сюда случайно, может перепутать этот проект с очередным фотохостингом и лишь подивиться весьма жестким ограничениям: новичкам здесь предлагают закачивать по одному снимку размером не более 150 килобайт раз в пять дней. Однако, если почитать правила, можно заметить, что ресурс создан не для хранения альбомов из сотен фотографий, интересных лишь изображенным на них людям, а для общения между фотолюбителями и создания творческой атмосферы. Технические ограничения в этом случае становятся стимулом к размещению наиболее содержательных с художественной точки зрения снимков, а система обсуждений и рекомендаций позволяет получить оценку своих работ от многих талантливых фотографов. Творческому росту также способствуют различные конкурсы, периодически проводимые администрацией, да и просто созерцание прекрасных снимков других участников.
   В общем, если вы хотите не только щелкать фотки, а использовать фотоаппарат как творческий инструмент - вам стоит сюда заглянуть.
 
Путь пользователя
 
   Какие бы ни были удобные и красивые веб-сервисы, их использование напоминает жизнь на съемной квартире. Иметь свой уютный уголок - мечта каждого человека. Если задаться целью, то можно сделать свою собственную галерею, лишенную посторонней рекламы и прочих ненужных элементов. Для этого есть множество программ, которые превратят ваши снимки в готовые веб-альбомы - вам останется только найти для них хостинг и закачать получившийся набор HTML-страниц вместе с картинками на сервер.
   Генерировать такие фотосайты умеют многие популярные программы, предназначенные для просмотра изображений: ACDSee 8, Picasa 2 и XnView. Первые две из них позволяют создавать очень красивые альбомы, однако с точки зрения демонстрации тонкостей процесса съемки они бесполезны, так как не имеют средств для отображения информации EXIF. Галереи, создаваемые в XnView, напротив, выглядят по-спартански, зато под фотографиями может быть показана любая информация, раскрывающая настройки камеры и условия съемки.
   Есть и более специализированный софт для наших целей - в качестве примера можно привести бесплатную программу JAlbum (jalbum.net), которая при всей простоте освоения является мощным многофункциональным инструментом.
   Как можно догадаться по первой букве названия, эта софтина написана на Java и для своей работы требует наличия Java-машины (версии 1.4 и выше). JAlbum позволит вам не только создавать свои галереи, но и, благодаря встроенному ftp-клиенту, сразу же выкладывать их в Сеть. Оформление получающихся веб-страниц меняется с помощью системы стилей: вы можете сводить с ума новичков красотой своих альбомов, а информационным наполнением заставлять чесать затылок профессиональных фотографов. В JAlbum также встроены базовые инструменты для манипулирования изображениями: кадрирование, поворот, изменение размера, степени сжатия и т. д. При всем разнообразии функций программа имеет очень простой интерфейс и рассчитана даже на неискушенного пользователя.
 
Путь вебмастера
 
   Веб-галереи, которые можно создать с помощью программ, аналогичных JAlbum, имеют те же недостатки, что и статические сайты (состоящие из набора html-страничек): отсутствие интерактивности и сложность в обновлении. Оставить комментарий к понравившемуся снимку посетитель сможет разве что по e-mail, а для добавления новой фотографии в альбом может понадобиться перезакачать его на сервер целиком.
   В этом смысле публичные веб-сервисы являются более предпочтительным решением. Есть, однако, и альтернативный путь: раздобыть где-нибудь хостинг с поддержкой PHP-скриптов и разместить на нем какую-нибудь серверную систему организации фотоальбомов - например, довольно популярное open source-решение Gallery.
   Для работы Gallery помимо веб-сервера и PHP требуется какая-нибудь графическая библиотека (например, распространенная ImageMagick), а также база данных (для второй, более прогрессивной версией системы). Установка не потребует знания особых вебмастерских премудростей: система поставляется вместе с удобным веб-интерфейсом, с помощью которого можно провести как первичную настройку, так и администрировать ваши галереи в дальнейшем. Конечно, имеются все основные функции, свойственные программам такого класса: управление правами доступа, группировка снимков в альбомы (их можно вкладывать друг в друга), комментарии пользователей, поиск по ключевым словам, отображение данных EXIF и многие другие. Для пущего удобства закачивать снимки можно не только через веб-интерфейс, но и по FTP, а также с помощью специального клиента Gallery Remote и еще несколькими способами. Помимо всего прочего, Gallery умеет встраиваться в популярные сайтовые и форумные движки и взаимодействовать с другими сервисами через RSS.
   В общем, сказочная программа для тех, кто привык чувствовать себя «как дома» на собственном сервере.
 

ГОЛУБЯТНЯ: Люминиевая рапсодия. Часть первая

 
    Давненько мы про железяки не гутарили! А тут их столько навалило, что грех утаивать. Короче говоря, нет у меня теперь ни mp3-плейера Mpio («Эмпио Мио»), ни ноутбука Toshiba M30x-118! О том, как докатился до жизни такой, - сегодняшний рассказ.
   Начну с тоста на посошок Mpio. Замечательный плейер, хромающий, однако, на ту же ногу, что и все остальные железяки: программное обеспечение. Еще накануне великого летнего анабасиса Mpio - чудо дизайна и эстетических переживаний корейского народа - перекочевал в руки моего друга и в них сломался на второй же день! Нет, с руками друга все в порядке, да и с самой железякой - тоже: накрылась прошивка! Если бы она накрывалась только у Mpio, мне бы пришлось глотать собственный галстук от стыда за авансы, которые раздавал в мае: ведь по самым скромным подсчетам после прочтения колонки «Эмпио мио» такой же гаджет приобрели пятнадцать человек (по крайней мере, написали об этом в письмах). Однако близкое знакомство с mp3-плейерами прочих производителей, дополненное кулуарным общением со специалистами-ремонтниками, утвердили меня в давно известной истине: прошивки у конкурентов ничуть не лучше. Вернее, они у всех препоганейшие! И удивляться тут не приходится: точно такая же ситуация наблюдается практически со всеми бытовыми приборами: мобильными телефонами, игровыми приставками, фото и видеокамерами. Мир давно разделился на два лагеря: computer-savvy и computer-goofy[Терминология собственного закваса, поэтому и перевод даю вольный: «врубающийся в писюк» и «в писюке как в танке»], «саввики» и «гуфики» (патентую клички на все будущее культур-повидло).
   Трагичнее всего диссонанс проявляется в смартфонах - поле боя, на котором схлестнулись оба противоборствующих лагеря: гаджеты, изготовленные «саввиками» (Palm Treo 650, HP 6500), на три головы выше конкурентов именно как наладонные компьютеры, а гаджеты «гуфиков» (Nokia 9500, Sony Ericsson P910i) преодолевают свое КПК-убожество блестящей «телефонной» составляющей.
   От «Эмпио мио» я отказался в пользу iRiver Multi-codec Jukebox H340, и вот как это случилось. Начну рассказ с любимой цитаты любимого драматурга: «Небесные тела никогда не отклоняются от своего пути» (Михаил Себастиан, «Безымянная звезда»). Сколько раз пытался преодолеть внутренние стереотипы и полюбить что-то чужое, столько раз и терпел фиаско. Применительно к компьютерным железякам: моим органичным приоритетом всегда была предельная функциональность («Самый-пресамый!»), все остальное - постольку поскольку. Как вы понимаете, в плане функциональности Mpio далек от запредельности, поскольку основная ставка в этом mp3-плейере сделана на эстетику и дизайн.
   Зачем же я его покупал? Без малейшего смущения признаюсь: попал под влияние Антонелло. Именно этот огородный человек молится на все масюсенькое и красивенькое, энергично эманируя во все стороны свои вкусы. Вот я и подпал, чего ж теперь руками разводить. Поймите меня правильно: Mpio замечательный плейер, очень красивый, очень элегантный, очень масюсенький, но… не мой! Не хватает в нем функциональной запредельности, что ли, экстрима, коего безоговорочно требует душа.
   Дальнейшие события развивались таким образом: на презентации аудиоверсии книги «Как зовут вашего бога?», организованной издательством «Ардис» и компанией iRiver, ко мне подошла фея айриверского пиара Анна Баканович и аки Змий Искуситель вкрадчивым голосом загнала червячка под кожу: «Сергей, вы так замечательно описали Mpio, что мне самой захотелось его купить! („Ага, так я и поверил“! - С.Г.). У iRiver есть похожий mp3-плейер под названием Н10, однако в нем всего 6 гигабайт памяти, и наверняка вам это покажется недостаточным („Ну разумеется - после 20 Гбайт Mpio!“ - С.Г.). Я бы вам рекомендовала H320 или Н340. Самый лучший и функциональный плейер с USB-хостом и кучей других примочек. Он вам совсем не нравится внешне? Может, вам дать его в отпуск на тестирование - вдруг понравится?»