Компьютерная графика реального времени.

Содержание

Слайд 2

Структура взаимодействия приложения с аппаратурой

API
application program interface

Программа

Driver

Graphics Hardware

HAL
hardware abstraction layer

Структура взаимодействия приложения с аппаратурой API application program interface Программа Driver Graphics

Слайд 3

Библиотеки

Open GL – open graphics library (SGI, 90-е годы, версии 1.0-4.2)
GLUT - OpenGL

Библиотеки Open GL – open graphics library (SGI, 90-е годы, версии 1.0-4.2)
Utility Toolkit (http://www.opengl.org/resources/libraries/glut/)
GLEW - OpenGL Extension Wrangler Library (http://glew.sourceforge.net/)
GLM - OpenGL Mathematics (http://glm.g-truc.net/)
. . .
Microsoft Direct3D – часть MS DirectX (1992 RenderMorphics, версии 2.0-11.0)
D3DX – retained mode toolkit
XNA - Xbox New Architecture (http://msdn.microsoft.com/ru-ru/xna/)

Слайд 4

Инициализация OpenGL

Инициализация OpenGL

Слайд 5

Инициализация OpenGL: GLUT

Инициализация OpenGL: GLUT

Слайд 6

GLUT: Callbacks

GLUT: Callbacks

Слайд 7

Инициализация Direct3D

Инициализация Direct3D

Слайд 8

Примитивы OpenGL

Примитивы OpenGL

Слайд 9

Вывод OpenGL

Вывод OpenGL

Слайд 10

Примитивы Direct3D

Примитивы Direct3D

Слайд 11

Вывод Direct3D

Вывод Direct3D

Слайд 12

Общая архитектура

Общая архитектура

Слайд 13

Геометрическая фаза

Геометрическая фаза

Слайд 14

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

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

Слайд 15

Clip + Screen map

Clip + Screen map

Слайд 16

Графический конвейер на GPU
зеленый – полностью программируемый этап
желтый – конфигурируемый и непрограммируемый
синий

Графический конвейер на GPU зеленый – полностью программируемый этап желтый – конфигурируемый
– полностью фиксированный

Слайд 17

Шейдера

Шейдера

Слайд 18

Shaders

использование

инициализация

Shaders использование инициализация

Слайд 19

Shaders: vertex – закраска Гуро

// Gouraud
varying out vec4 c; uniform vec4 spec;
uniform

Shaders: vertex – закраска Гуро // Gouraud varying out vec4 c; uniform
vec3 eyepos; uniform vec4 diff;
uniform vec4 amb; uniform float spower;
uniform float time;
void main( void )
{
vec3 p = vec3(gl_ModelViewMatrix * gl_Vertex); // transformed point to world space
vec3 campos = vec3(eyepos); // camera position
vec3 l = vec3(sin(time), 0, cos(time)); // vector to light position
vec3 v = campos - p; // vector to the camera
vec3 n = gl_NormalMatrix * gl_Normal; // transformed normal
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
const vec4 diffcolor = vec4(diff); // diffuse
const vec4 speccolor = vec4(spec); // specular
const vec4 ambcolor = vec4(amb); // ambient
const vec4 specpower = vec4(spower); // specular power
vec3 n2 = normalize(n);
vec3 l2 = normalize(l);
vec3 v2 = normalize(v);
vec3 r = reflect(-v2, n2);
vec4 diff = diffcolor * max(dot(n2, l2), 0.0);
vec4 spec = speccolor * pow(max(dot(l2, r), 0.0), specpower);
c = diff + spec + ambcolor;
}

Слайд 20

Shaders: fragment (pixel) – закраска Гуро

// Gouraud
varying in vec4 c;
void main( void

Shaders: fragment (pixel) – закраска Гуро // Gouraud varying in vec4 c;
)
{
gl_FragColor = c;
}

Слайд 21

Shaders: vertex – закраска Фонга

// Phong
varying out vec3 l;
varying out vec3 v;
varying

Shaders: vertex – закраска Фонга // Phong varying out vec3 l; varying
out vec3 n;
uniform vec3 eyepos;
uniform float time;
void main( void )
{
vec3 p = vec3(gl_ModelViewMatrix * gl_Vertex); // transformed point to world space
vec3 campos = vec3(eyepos); // camera position
l = vec3(sin(time), 0, cos(time)); // vector to light position
v = campos - p; // vector to the camera
n = gl_NormalMatrix * gl_Normal; // transformed normal
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}

Слайд 22

Shaders: fragment (pixel) – закраска Фонга

// Phong
varying in vec4 c;
varying in vec3

Shaders: fragment (pixel) – закраска Фонга // Phong varying in vec4 c;
l;
varying in vec3 v;
varying in vec3 n;
uniform vec4 diff;
uniform vec4 spec;
uniform vec4 amb;
uniform float spower;
void main( void )
{
const vec4 diffcolor = vec4(diff); // diffuse
const vec4 speccolor = vec4(spec); // specular
const vec4 ambcolor = vec4(amb); // ambient
const vec4 specpower = vec4(spower); // specular power
vec3 n2 = normalize(n);
vec3 l2 = normalize(l);
vec3 v2 = normalize(v);
vec3 r = reflect(-v2, n2);
vec4 diff = diff * max(dot(n2, l2), 0.0);
vec4 spec = spec * pow(max(dot(l2, r), 0.0), spower);
gl_FragColor = amb + diff + spec;
}

Слайд 23

Stencil buffer, blending & alpha test

Stencil buffer, blending & alpha test

Слайд 24

Stencil buffer: Shadow volume

Stencil buffer: Shadow volume

Слайд 25

Stencil buffer: Shadow Volume

Stencil buffer: Shadow Volume

Слайд 26

Shadow Map

Shadow Map

Слайд 27

Анимация

Синхронизация
clock_t start; . . . dt = (clock() - start) / (double)CLOCKS_PER_SEC;
LARGE_INTEGER Start, Quant; QueryPerformanceFrequency(&Quant); QueryPerformanceCounter(&Start); .

Анимация Синхронизация clock_t start; . . . dt = (clock() - start)
. . QueryPerformanceCounter(&Time); dt = (Time.QuadPart - Start.QuadPart) / (double)Quanty.QuadPart;

Слайд 28

Ключевые кадры (key frame)

Ключевые кадры (key frame)

Слайд 29

Сеточная анимация

Сеточная анимация

Слайд 30

Инверсная и прямая кинематика

Cyclic Coordinate Descent (CCD)

Инверсная и прямая кинематика Cyclic Coordinate Descent (CCD)

Слайд 31

Tomas Akenine-Moller, Eric Haines, Naty Hoffman, “Real-Time Rendering”, Third Edition, AK Peters-2008
Andrew

Tomas Akenine-Moller, Eric Haines, Naty Hoffman, “Real-Time Rendering”, Third Edition, AK Peters-2008
S. Glassner (ed.), Eric Haines, Pat Hanrahan, Robert L. Cook, James Arvo, David Kirk, Paul S. Heckbert, "An Introduction to Ray Tracing (The Morgan Kaufmann Series in Computer Graphics)", Academic Press-1989.
Matt Pharr, Greg Humphreys, "Physically Based Rendering, Second Edition: From Theory To Implementation", Morgan Kaufmann-2010
David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steve Worley, "Texturing and Modeling, Third Edition: A Procedural Approach (The Morgan Kaufmann Series in Computer Graphics)”, Morgan Kaufmann-2002
Имя файла: Компьютерная-графика-реального-времени..pptx
Количество просмотров: 105
Количество скачиваний: 0