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 году Е. Адельсон и Дж. Ван разработали камеру, действующую на этом принципе. По конструкции аппарат шестерки изобретателей практически повторяет камеру Адельсона и Вана (но та была пленочной, использовала вдвое больше линз и предназначалась для фотографического измерения расстояний) и по сути является очередным эволюционным шагом на долгом пути фототехнологий от аналога к цифре, где не только пленка заменяется ячеистым сенсором, но и изображение строится путем вычислений, недостижимых или трудно достижимых традиционным аналогово-оптическим методом.

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-хостом и кучей других примочек. Он вам совсем не нравится внешне? Может, вам дать его в отпуск на тестирование — вдруг понравится?»
   Перед вами, читатель, образец Высшего Маркетингового Пилотажа! Анна внимательно прочла «Эмпио мио» и нанесла удар в самое слабое место — вот это: «Хотя по функциональности у „Эмпио“ и были аналоги (у iRiver, например), но ни по размерам, ни по дизайну никто рядом не ночевал». Не трудно догадаться, что наезд «ни по размерам, ни по дизайну» относился именно к iRiver H320 — внешне традиционному, тяжеловесному кирпичику темного цвета (фото слева).