Читаем Журнал «Компьютерра» №45 от 01 декабря 2005 года полностью

glVertex3d - это вершины нашего треугольника, Название функции интуитивно понятно, но 3d, как ни странно, не означает «трехмерный»; точнее, 3 - как раз означает, а вот d - это тип аргументов (double). GL_TRIANGLES указывает, что все последующие вершины будут последовательно образовывать треугольники (если бы у нас было не три, а шесть вершин - получилось бы два треугольника). glColor3d принимает на вход цветовые компоненты RGB, и все вершины, идущие после него и до следующего вызова glColor, будут иметь соответствующий цвет.

В D3D перед рисованием необходимо подготовить специальную структуру данных:

struct CUSTOMVERTEX { FLOAT x, y, z, rhw; DWORD color;};

CUSTOMVERTEX g_Vertices[] =

{1, 2, 3, 1, 0xffff0000},

{4, 5, 6, 1, 0xff00ff00},

{7, 8, 9, 1, 0xff0000ff},

LPDIRECT3DVERTEXBUFFER8 p_VertexBuffer = NULL;

Эта структура содержит и координаты вершин, и их цвета. p_VertexBuffer - указатель на нашу структуру, для хранения вершин.

Теперь напишем следующее:

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-матрицей.

Перейти на страницу:

Все книги серии Компьютерра

Похожие книги

«Если», 2003 № 09
«Если», 2003 № 09

Александр ЗОРИЧ. ТОПОРЫ И ЛОТОСЫВ каркас космической оперы плотно упакованы очень непростой вопрос, весьма неожиданное решение и совсем неоднозначные герои.Анджей ЗЕМЯНСКИЙ. АВТОБАН НАХ ПОЗНАНЬЕсли говорить о жанре, то это польский паропанк. Но очень польский…Дэвид НОРДЛИ, ЛЕД, ВОЙНА И ЯЙЦО ВСЕЛЕННОЙЧтобы понять тактику и стратегию инопланетян, необходимо учесть геофизику этого мира — кстати, вполне допустимую в рамках известных нам законов. Представьте себе планету, которая… Словом, кое-что в восприятии придется поменять местами.Жан-Пьер АНДРЕВОН. В АТАКУ!…или Бесконечная Война с точки зрения французского писателя.Дмитрий ВОЛОДИХИН. ТВЕРДЫНЯ РОЗБойцу на передовой положено самое лучшее. И фирма не мелочится!Карен ТРЕВИСС. КОЛОНИАЛЬНЫЙ ЛЕКАРЬХоть кому-то удалось остановить бойню… И знаете, что радует: самым обычным человеческим способом.Василий МИДЯНИН. NIGREDO и ALBEDOОна + Он = Зорич.ВИДЕОДРОМПризрак комикса бродит по Голливуду… Терминатор бежит от терминаторши, хотя надо бы наоборот… Знаменитый российский сценарист рассуждает о фантастике.Павел ЛАУДАНСКИЙ. ПОСЛЕ ЗАЙДЕЛЯJeszcze Polska ne zgingla!Глеб ЕЛИСЕЕВ. «ОБЛИК ОВЕЧИЙ, УМ ЧЕЛОВЕЧИЙ…»Влезть в «шкуру» инопланетянина непросто даже фантасту.ЭКСПЕРТИЗА ТЕМЫ…Фантасты же пытаются объяснить, почему.РЕЦЕНЗИИДаже во время летних отпусков рецензенты не расставались с книгами.КУРСОРЛетом в России конвентная жизнь замирает, а в странах братьев-славян бьет ключом.Сергей ПИТИРИМОВ. ФОРМА ЖИЗНИ? ФОРМА ОБЩЕНИЯ!«В связях, порочащих его, замечен не был», — готов заявить о себе каждый пятый участник опроса.АЛЬТЕРНАТИВНАЯ РЕАЛЬНОСТЬМал золотник, да дорог.Андрей СИНИЦЫН. ЧЕТВЕРОНОГИЕ СТРАДАНИЯВидно, давно критик не писал сочинений. Соскучился.Владислав ГОНЧАРОВ. НОВАЯ КАРТА РОССИИПетербург за пределами Российской Федерации?.. Опасная, между прочим, игра в нынешней политической реальности.ПЕРСОНАЛИИСплошной интернационал!

Юрий Николаевич Арабов , Павел Лауданский , Евгений Викторович Харитонов , Журнал «Если» , Глеб Анатольевич Елисеев

Проза / Прочее / Журналы, газеты / Фантастика / Газеты и журналы / Эссе
«Если», 2004 № 01
«Если», 2004 № 01

ФАНТАСТИКАЕжемесячный журналСодержание:Эликс Делламоника. СПОКОЙНЫЙ ДЕНЬ В ГАЛЕРЕЕ, рассказАлексей Калугин. СОВЕТНИК ПО КУЛЬТУРЕ, рассказЭми Бектел. ПРЕВРАЩЕНИЯ ЧУДОВИЩ, рассказВидеодром* Писатели о кино***** Марина и Сергей Дяченко. БЕЗЖАЛОСТНЫЙ, МИЛЫЙ, ЖЕЛЕЗНЫЙ (статья)* Сиквел***** Дмитрий Байкалов. КОНТРРЕВОЛЮЦИЯ (статья)* Рецензии* Премьера***** Дмитрий Байкалов. НУ А ЗАВТРА — В КИНО! (статья)Стивен Бакстер. ОХОТНИКИ ПАНГЕИ, рассказДон Д'Аммасса. ЦЕЛИТЕЛЬ, рассказБад Спархоук. МЕЖПЛАНЕТНЫЙ РЕСТЛИНГ, рассказВернисаж* Вл. Гаков. КСЕНОПОРТРЕТ (статья, иллюстрации У. Барлоу)Дэниел Хэтч. СЕМЯ СУДЬБЫ, повестьЭлеанор Арнасон. ДОРОЖНЫЕ ПОЭМЫ, рассказЛарри Нивен. РИСК — БЛАГОРОДНОЕ ДЕЛО, рассказМария Галина. НЕСУЩЕСТВУЮЩИЕ СУЩЕСТВА (статья)Экспертиза темыВладимир Михайлов. «ЕСЛИ ВСТРЕЧА ПРОИСХОДИТ НА ЕГО ТЕРРИТОРИИ…» (статья)«Фантариум» + конкурс* Олег Кулагин. ИНФРАКРАСНЫЙ (недостающая глава) (рассказ)Виталий Каплан. ПОЧЁМ КАТАСТРОФА? (статья)РецензииКурсорПерсоналии

Олег Кулагин , Эликс Делламоника , Виталий Каплан , СТИВЕН БАКСТЕР , Элеанор Арнасон

Журналы, газеты / Фантастика / Научная Фантастика / Фэнтези