Вывод текстурированных прозрачных фигур

Подключение графической библиотеки OpenGL к интерфейсу Windows. Рисование примитивов, визуализация сцены. Закрашивание объектов. Видовые (матричные) преобразования. Простая схема создания и вывода текстуры. Эффекты наложения объектов друг на друга.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 23.12.2011
Размер файла 60,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Вывод текстурированных прозрачных фигур

графический библиотека текстура преобразование

Введение

Текстурирование используется для придания рисуемым объектам реалистичности. В первой главе данной работы даны общие сведения об OpenGL(открытая графическая библиотека) - это стандартная библиотека для всех 32-разрядных операционных систем, в том числе и для операционной системы Windows состоящий приблизительно из 250 отдельных команд (почти 200 команд в ядре OpenGL и еще 50 команд в библиотеке утилит OpenGL), которые используются для того, чтобы определить объекты и операции, необходимые для создания интерактивных трехмерных прикладных программ.

Во второй главе представлена простая схема создания и наложения текстуры на объект и программа выводящая полупрозрачную планету.

1. Общие сведения об Opengl

1.1 Подключение графической библиотеки OpenGL к интерфейсу Windows

Стандарт реализации OpenGL для Windows требует выполнения некоторых настроек, связанных с особенностями операционной системы. Для того чтобы оконная система могла работать с OpenGL, необходимо провести ее инициализацию и сконфигурировать буфер фрейма.

Система OpenGL, как и любое другое приложение Windows, нуждается в ссылке на окно, на котором будет осуществляться воспроизведение. Ссылка на контекст воспроизведения - величина типа HGLRC (Handle to OpenGL Rendering Context) - связывает OpenGL с оконными системами Windows.

Для получения этого контекста OpenGL нуждается в величине типа HDC (контекст устройства) окна, на который будет осуществляться вывод.

Таким образом, чтобы начать работать с командами OpenGL, приложение должно создать один или несколько контекстов воспроизведения для потока, и сделать текущим один из них. Каждый поток при этом может иметь один и только один текущий контекст воспроизведения, который ассоциирован с определённым контекстом устройства.

Прежде чем получить контекст воспроизведения, сервер OpenGL должен получить детальные характеристики используемого оборудования. Эти характеристики хранятся в специальной структуре, тип которой TPixelFormatDescriptor (описание формата пикселей). Формат пикселей определяет число бит на пиксел, конфигурацию буфера цвета и вспомогательных буферов используемых для вывода изображения.

Для установки формата пикселей необходимо написать соответствующую процедуру, типичный пример которой приведён в приложении 2.

Для работы с контекстом воспроизведения в Win32 API реализованы следующие функции:

wglCreateContext(dc);

Функция создаёт контекст воспроизведения OpenGL, который подходит для рисования на устройстве, определённом дескриптором dc. При успешном завершении функция возвращает дескриптор созданного контекста воспроизведения OpenGL, и NULL - в случае неудачи.

Текущий контекст воспроизведения потока должен быть единственным. Следующая функция позволяет определить контекст воспроизведения для контекста устройства.

wglMakeCurrent (dc, hrc);

При завершении работы, необходимо, чтобы контекст никем не использовался. Для этого достаточно выполнить вызов функции:

wglMakeCurrent (0,0);

Завершая работу с OpenGL необходимо удалить контекст воспроизведения. Для этой цели используется функция:

wglDeleteContext(hrc);

После того как удалён контекст воспроизведения, следует удалить и ассоциированный с ним контекст устройства.

1.2 Синтаксис команд OpenGL

Для того чтобы команды OpenGL были доступны в проекте, необходимо указать библиотеку в списке используемых модулей.

Все команды начинаются с префикса gl, затем идёт имя команды, цифра и суффикс. Цифра в окончании соответствует количеству аргументов, буква показывает требуемый тип аргумента.

Если имя команды заканчивается на v (векторная форма), то аргументом её служит указатель на массив значений.

Например: Если последние три символа в имени команды 3fv, то её аргумент - адрес массива трёх вещественных чисел.

В общем виде команду можно представить:

glCommandName {1,2,3,4} {b, s, i, f, d, ub, us, ui} {v} (arguments)

Таблица 1.1. Возможные типы аргументов

Символ

Обозначение типа в OpenGL

Расшифровка

b

GLbyte

Байтовый

s

GLshort

Короткий целый

i

GLint

Целый

d

GLdouble

Вещественный двойной точности

f

GLfloat

Вещественный

ub

GLubyte

Байтовый, беззнаковый

us

GLushort

Короткий целый, беззнаковый

ui

GLuint

Целый, беззнаковый

Почти всегда предпочтительно использовать команду в вещественной форме, поскольку хранит данные OpenGL именно в вещественном формате.

1.3 Рисование примитивов

Процедура рисования заключается в командные скобки glBegin(mode) // команды, указывающие вершины фигуры glEnd;

Главное назначение командных скобок - это задание режима, определяющего как соединять точки (вершины). Вершины задаются своими координатами (количество координат зависит от пространства изображения) с помощью команд glVertex {2,3,4} {s, i, f, d} (arg).

Режим (mode), задающий правило соединения точек, определяет примитив. К примитивам относятся точки, линии, связанные линии, замкнутые линии, треугольники, связанные треугольники, четырёхугольники, связанные четырёхугольники и многоугольники.

Примеры режима mode

GL_POINTS: каждый вызов glVertex задает отдельную точку;

GL_LINES: каждая пара вершин задает отрезок;

GL_LINE_STRIP: указанные вершины последовательно соединяются;

GL_TRIANGLES: каждая тройка вершин задает треугольник;

GL_QUADS: каждые 4 вершины задают четырехугольник.

И др..

1.4 Визуализация сцены

Для создания сцены необходимо задать область вывода объектов и задать способ проецирования.

Если область вывода не задана явно, то в OpenGL используется установленная по умолчанию зона в виде куба видимости 2x2x2 с началом координат в центре куба (рис. 2).

Размещено на http://www.allbest.ru/

Рис. 2. Вид системы координат Oxyz

Система координат в OpenGL Oxyz (рис. 2) расположена таким образом, что ось Oz направлена в сторону противоположную направления зрения. Окно видимости (Windows) масштабируется в пределах [-1; 1] по осям Ox, Oy. Изображение по умолчанию воспроизводится на плоскости z=0.

Существует два типа проецирования: параллельная проекция и перспективная. Ортогональная проекция - это частный случай параллельной проекции, при которой проецирующие лучи ортогональны картинной плоскости.

При ортогональном проецировании точка (x, y, z) на объекте проецируется в точку (x, y, 0) на плоскости проекции. В OpenGL ортогональная проекция, характеризуемая параллелепипедом видимости, задаётся функцией glOrtho(), объявленной следующим образом:

glOrtho (left, right, bottom, top, near, far)

Таким образом, видны все объекты, которые попали внутрь параллелепипеда видимости.

При проецировании, преобразование координат включает в себя этапы, изображённые на рис. 3. Сначала мировые координаты (система координат, в которой определяется положение объекта, положение точки наблюдения и экрана) преобразовываются в видовые координаты. При этом точки изображения остаются на своих местах, но система мировых координат переходит в систему видовых координат. Затем выполняется перспективное преобразование, добавляющее эффект перспективы в зависимости от расстояния от объекта до экрана и расстояние от точки наблюдения до экрана. Система трёхмерных видовых координат переходит в систему двухмерных экранных координат. При построении параллельной проекции перспективное преобразование не выполняется, и видовые координаты используются в качестве экранных координат (X, Y).

1.5 Видовые преобразования

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

Матрица модели - glMatrixMode (GL_MODELVIEW) связана с координатами объектов. Это матрица в базисе видовых координат, она используется для построения картинки в том виде как её видит наблюдатель.

Матрица проецирования - glMatrixMode (GL_PROJECTION). Матрица в системе координат устройства. Вычисляет нормализованные координаты, которые преобразуются в экранные после трансформаций, связанных с областью вывода.

Команда glLoadIdentity заменяет текущую матрицу единичной матрицей (матрицей с единицами по главной диагонали и равными нулю всеми остальными элементами).

1.6 Матрица преобразования

Преобразование масштабирования увеличивает или уменьшает размеры объекта.

Команда масштабирования glScale (arg1, arg2, arg3) с тремя аргументами - коэффициентами масштабирования по каждой из осей.

Если масштабные множители больше единицы объект растягивается в заданном направлении, если меньше объект сжимается. Масштабные множители могут иметь отрицательные значения, при этом изображение переворачивается по соответствующей оси. При двумерных построениях значение коэффициента по оси Z игнорируется.

После команд рисования следует восстановить нормальный масштаб, чтобы каждое следующее обращение к обработчику перерисовки экрана не приводило бы к последовательному уменьшению / увеличению изображения.

Для поворота изображения используется команда glRotate (arg1, arg2, arg3, arg4) с четырьмя аргументами:

arg1 - угол поворота (в градусах),

arg2, arg3, arg4 - вектор поворота.

Преобразование сдвига смещает точки в новые позиции в соответствии с заданным вектором смещения. Перенос системы координат осуществляется командой glTranslate (arg1, arg2, arg3) arg1, arg2, arg3 - величины переноса по каждой из осей.

Для поворота вокруг произвольной фиксированной точки сначала нужно выполнить преобразование сдвига, совмещающую заданную фиксированную точку с началом координат, потом выполнить преобразование поворота вокруг начала координат, а затем обратное преобразование сдвига. Порядок манипуляции с системой координат: вначале перенос, затем поворот, по окончании рисования - в обратном порядке: поворот, затем перенос.

1.7 Закрашивание объектов

В трёхмерном пространстве поверхность объектов характеризуется материалом. Материал может отражать, поглощать и пропускать свет различной длины волн. В зависимости от характеристик материала и от свойств источника света мы видим объекты различными. Свойства материала задаются с помощью команды glMaterialfv(). Характеристики свойств материала, определяют соответствующие им символьные константы, которые представлены в таблице 1.3.

Таблица 1.3. Характеристики свойств материала

GL_AMBIENT

рассеянный свет

GL_DIFFUSE

Параметр, указывающий насколько сильно этот цвет отражается поверхностью при её освещении

GL_EMISSION

излучаемый свет

GL_SHININESS

степень отраженного света

Зеркальный цвет задаёт цветовую гамму бликов материала, степень зеркального отражения определяет, насколько близка поверхность к идеальному зеркалу (определяется числом из интервала [0,128]).

Свойства материала задаются для внешней и внутренней стороны фигуры.

glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@MaterialFront); glMaterialfv (GL_BACK, GL_AMBIENT_AND_DIFFUSE,@MaterialBack);

Существует несколько режимов рисования многоугольников.

Чтобы изменить метод отображения многоугольника используется команда:

glPolygonMode (GLenum face, Glenum mode). Параметр mode определяет, как будут отображаться многоугольники, а параметр face устанавливает тип многоугольников, к которым будет применяться эта команда и могут принимать следующие значения:

Таблица 1.4. Значения параметров face и mode

GLenum face

GL_FRONT

для лицевых граней

GL_BACK

для обратных граней

GL_FRONT_AND_BACK

для всех граней

Glenum mode

GL_POINT

Отображаются вершины многоугольников

GL_LINE

представляется набором отрезков

GL_FILL

закрашиваются текущим цветом с учетом освещения и этот режим установлен по умолчанию.

Пример:

GlPolygonMode (GL_FRONT, GL_POINT);

GlPolygonMode (GL_ BACK, GL_LINE);

GlPolygonMode (GL_FRONT_AND_BACK, GL_FILL);

1.8 Источники света

Без источника света изображения не видно. По умолчанию освещение отключено. Что бы инициализировать источник, и включить обработчик расчёта воздействия источника на объекты достаточно выполнить команды:

glEnable (gl_lighting);glEnable (gl_light0);

Источник света по умолчанию располагается в пространстве с координатами (0,0,), можно создавать источник света в любой точке пространства изображений.

Параметры источника света задаются с помощью команды,

glLightfv (source, parameter, pointer_to_array).

Первый параметр команды - идентификатор источника

Второй аргумент - символическая константа, задающая атрибут

Третий - ссылка на структуру, содержащую задаваемые значения для данного атрибута.

Таблица 1.5. Константы, задающие свойства окружающей среды и позицию источника света

GL_Position

задаёт позицию источника света, источник света не перемещается за системой координат (x, y, z, cos )

GL_AMBIENT

рассеянный свет

GL_DIFFUSE

Параметр, указывающий насколько сильно этот цвет отражается поверхностью при её освещении

GL_SPECULAR

отраженный свет

GL_EMISSION

излучаемый свет

GL_SHININESS

степень отраженного света

GL_AMBIENT_AND_DIFFUSE

задаёт поглощение цвета поверхностью в рассеивающей составляющей

GL_SPOT_direction

направление света (x, y, z)

GL_SPOT_Cutoff

задаёт максимальный угол излучения источника света [0,90] и 180.

1.9 Использование дополнительных библиотек

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

Это независимая от платформы библиотека. Она реализует не только дополнительные функции OpenGL, но и предоставляет функции для работы с окнами, клавиатурой и мышкой. Для того чтобы работать с OpenGL в конкретной операционной системе, надо провести некоторую предварительную настройку и эта предварительная настройка зависит от конкретной операционной системы. С библиотекой GLUT всё намного упрощается, буквально несколькими командами можно определить окно, в котором будет работать OpenGL, определить прерывание от клавиатуры или мышки и всё это не будет зависеть от операционной системы. Библиотека предоставляет функции, с помощью которых можно определять сложные правильные многогранники: куб, сфера, тор, конус, тетраэдр и додекаэдр, и даже можно с помощью одной команды определить сложный объект, типа чайник. Например, для воспроизведения куба достаточно выполнить команду: glutSolidCube(N), где N_задаёт величину стороны грани куба.

2. Текстурированные прозрачные фигуры

2.1 Простая схема создания и вывода текстуры

Текстура подобна обоям, наклеиваемым на поверхность. Одномерная текстура может использоваться только для нанесения узора в виде полосок. Двумерная позволяет наносить прямоугольные образы. Для использования текстуры требуется создать и заполнить массив образа - для хранения текстурной картинки, затем выполнить ряд действий по его нанесению.

Из ситуаций заполнения трехмерного массива цветов пикселей (заранее известны размеры, заранее неизвестны размеры) выберем простой первый: если заранее известны размеры растра - файла, использовать объект класса TBitmap для загрузки текстуры, а размеры массива образа задавать равными размерам растра:

var t: array [ширина 0..127, высота 0..127, составляющие цветов 0..2] of gluByte;

Var B: TBitMap; I, j: integer;

Begin

B:=TBitMap.Create; b.LoadFromFile (`Gold.bmp'); for i:=0 to 63 do for j:=0 to 63 do begin

t[i,j,0]:=GetRValue (b.canvas.pixels[i,j];

t[i,j,1]:=GetGValue (b.canvas.pixels[i,j];

t[i,j,2]:=GetBValue (b.canvas.pixels[i,j];

end; end;

Здесь используются API-функции, вырезающие значение веса для цветовых составляющих пиксела, поскольку в формате OpenGL вначале идет красный цвет, а в растре первым идет синий цвет.

Команда GlTextImageID (9 параметров);

glTexImage2D ({1}GL_Texture_2D, {2}0, {3}GL_RGBA, {4}128, {5}128, {6}0, GL_RGB, GL_unsigned_Byte, @image);

{1}- указывает на размерность, {2} - число уровней детализации текстуры - рекомендуется всегда брать равным 0, {3} - задается GL_RGBA=4 или GL_RGB=3 для сохранения цвета, остальные приведут к потере цвета, {4-5}- ширина/высота текстуры, необязательно должны совпадать с размерами массива, {6}- 0, ширина границы, не рекомендуется трогать, {7} - формат цвета, {8} - тип данных, {9} - адрес массива.

Где сохраняется - в буфере текстур, где доступна последняя текстура.

Учет ситуаций, когда размеры текстуры и поверхности не совпадают:

glTexParameteri (GL_Texture_2D, GL_Texture_Min_Filter, GL_Nearest); {/GL_Linear}

glTexParameteri (GL_Texture_2D, GL_Texture_Mag_Filter, GL_Nearest);

Фильтры задают вид текстуры, когда площадь пиксела, на которую она накладывается, в одном случае больше, а в другом меньше элемента текстуры. Эти значения я задал равными GL_NEAREST, что соответствует неточному расчету текстуры. Другое возможное значение - GL_LINEAR, расчет будет точным, но за счет скорости.

Разрешение использовать двумерную текстуру:

glEnable (GL_TEXTURE_2D);

Определение характера взаимодействия цвета примитива и цвета текстуры задается командой glTexEnvi(3 параметра).

glTexEnvi (GL_Texture_env, GL_Texture_env_mode, GL_decal );

GL_decal - цвет примитива не влияет на цвет текстуры,

GL_Modulate - цветовое содержание текстуры будет зависеть от яркости и составляющих цвета примитива. Если, например, примитив будет иметь красный цвет, то в текстуре красный цвет уберется, если же примитив окрасить в 50%-й серый, то яркость пикселов текстуры уменьшится на 50%.

GL_Blend - противоположность GL_Modulate.

Вывод кадра с текстурой в glBegin (gl_quads или gl_polygon); склеивая точки текстуры и 4-угольника командами gltexCoord2f (x, y) - glvertex2f (x',y') по правилу

Рис.

GLColor3f (1,1,1);

glBegin (gl_polygon);

gltexCoord2f (0, 1); glvertex2f (1,1);

gltexCoord2f (0,0); glvertex2f(-1,1);

gltexCoord2f (1, 0); glvertex2f(-1,-1);

gltexCoord2f (1, 1); glvertex2f(1,-1);

glEnd;

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

2.2 Вращающаяся полупрозрачная планета

С помощью четвертого компонента цвета можно получать различные эффекты наложения объектов друг на друга, наложения цветов и т.п. Также с помощью него можно получить наиболее нужный и распространенный эффект - прозрачность. Для того, чтобы разрешить обрабатывать четвертый компонент цвета вы должны вызвать функцию glEnable с аргументом GL_ALPHA_TEST. Для получения требуемого эффекта прозрачности нужно разрешить наложение цветов - glEnable(GL_BLEND) и установить алгоритм, по которуму будут смешиваться два цвета - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA). Нужно учесть, что эти режимы затормаживают вывод изображения, поэтому рекомендуется не устанавливать эти режимы глобально, для воспроизведения всех объектов. Выделяйте из объектов те, которым требуется этот режим, и включайте и отключайте его своевременно.

В процедуре CreateTexture заполняется трехмерный массив image и подготавливается текстура.

Procedure Tform1.CreateTexture;

var

Color ,k,i:GLint; B:TBitmap;

image:array[0..127,0..255,0..2] of GLubyte;

begin

b:=TBitmap.Create;

b.LoadFromFile('earth.bmp');

for k:=0 to 255 do

for i:=0 to 127 do

begin

color:=b.Canvas.Pixels[i,k];

image[i,k,0]:=GetRValue(Color);

image[i,k,1]:=GetGValue(Color);

image[i,k,2]:=GetBValue(Color);

end;

glTexParameteri (GL_Texture_2D, GL_Texture_Mag_Filter, GL_Nearest);

glTexParameteri (GL_Texture_2D, GL_Texture_Min_Filter, GL_Nearest);

glTexImage2D (GL_Texture_2D, 0, GL_RGBA, 256, 128, 0,

GL_RGB, GL_unsigned_Byte, @image);

glTexEnvi (GL_Texture_env, GL_Texture_env_mode, GL_decal);

glEnable (GL_texture_2D);

end;

OnCreate

glEnable(GL_DEPTH_TEST) ;

glEnable(GL_LIGHTING);

glEnable(GL_LIGHT0);

glEnable(GL_COLOR_MATERIAL);

Q:=gluNewQuadric;

CreateTexture;

glEnable(GL_ALPHA_TEST);

glEnable(GL_BLEND);

glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

При создании формы включаем необходимые режимы.

OnPaint

glViewport(0,0,form1.ClientWidth,form1.ClientHeight);//Область вывода

glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

// очищение буфера цвета и глубины

gluQuadricTexture(q,true);

glColor4d(0,0,0,0.9); // 4-й параметр определяет степень прозрачности

glEnable(GL_CULL_FACE); // включаем отсечение сторон полигонов

glCullFace(GL_FRONT); // не воспроизводить лицевую поверхность сферы

glCullFace(GL_BACK); // не воспроизводить заднюю поверхность сферы

gluSphere(Q, 0.9, 80, 80); // вывести переднюю поверхность сферы

glDisable(GL_CULL_FACE); // отключить сортировку поверхностей

SwapBuffers(dc);

Для того чтобы не было ненужных узоров и прозрачность сохранялась, вначале воспроизводится внутренняя поверхность сферы, а затем внешняя.

Список использованной литературы

1.Краснов М. OpenGL. Графика в проектах Delphi.-СПб.:БХВ - Санкт-Петербург, 2000.-352 с.:ил.

2.Тихомиров Ю. Программирование трёхмерной графики - СПб.:BHV - Санкт-Петербург, 1998. - 256 с., ил.

3.http://opengl.org.ru

4.http://www.gamedev.ru Основы OpenGL

Размещено на Allbest.ru


Подобные документы

  • Назначение и стандарты реализации OpenGL для Windows, порядок подключения графической библиотеки. Основные функции и синтаксис команд. Рисование примитивов, видовые и аффинные преобразования. Моделирование двумерных графических объектов и анимации.

    лабораторная работа [35,0 K], добавлен 04.07.2009

  • Рисование линий. Выбор объектов. Создание фигур. Редактирование фигур. Вращение, искажение и другие преобразования объектов. Копирование и наложение объектов. Установка позиции и размеров объекта. Сохранение проекта.

    реферат [55,3 K], добавлен 21.12.2003

  • Инициализация графического драйвера и режима. Функции доступа к видеопамяти. Подключение графической библиотеки. Инициализация графического режима. Включение драйвера, шрифтов в исполняемый файл. Рисование геометрических фигур. Вывод числовой информации.

    лабораторная работа [77,2 K], добавлен 06.07.2009

  • Программный код OpenGL. Синтаксис команд OpenGL. OpenGL как конечный автомат. Конвейер визуализации OpenGL. Библиотеки, относящиеся к OpenGL. Библиотека OpenGL. Подключаемые файлы. GLUT, инструментарий утилит библиотеки OpenGL.

    курсовая работа [304,9 K], добавлен 01.06.2004

  • Программирование приложения с использованием библиотеки OpenGL и функции для рисования геометрических объектов. Разработка процедуры визуализации трехмерной сцены и интерфейса пользователя. Логическая структура и функциональная декомпозиция проекта.

    курсовая работа [1,1 M], добавлен 23.06.2011

  • Построение динамической трехмерной сцены, включающей заданные тело и поверхность определенного вида средствами графической библиотеки. Наложение текстур на тела, поверхности с помощью функции SetupTextures. Графическое представление тела с текстурой.

    курсовая работа [582,9 K], добавлен 24.12.2010

  • Основы работы с графиков средствами OpenGL в C#. Ее спецификации, принципы и возможности. Direct3D как самостоятельная часть библиотеки Microsoft DirectX, которая отвечает за графику и вывод графической информации. Независимость от языка программирования.

    курсовая работа [2,1 M], добавлен 17.02.2013

  • Изучение моделирования и визуализации трехмерных динамических сцен в пакете 3Ds Max на примере создания анимированной сцены, содержащей мышь, стул, чашку, чайную ложку и море. Создание материалов, камер и анимации, постановка света и визуализация сцены.

    курсовая работа [1,2 M], добавлен 26.02.2012

  • Определение понятия трехмерной компьютерной графики. Особенности создания 3D-объектов при помощи булевых операций, редактируемых поверхностей, на основе примитивов. Моделирование трехмерных объектов при помощи программного пакета Autodesk 3ds Max.

    дипломная работа [4,2 M], добавлен 13.04.2014

  • Функциональные возможности библиотеки OpenGL. Разработка процедуры визуализации трехмерной сцены, интерфейса пользователя и подсистемы управления событиями с целью создания приложения для построения динамического изображения 3D-модели объекта "Самолет".

    курсовая работа [1,7 M], добавлен 28.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.