Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Шейдерныйкоктейль

Содержание

ПланПуть треугольникаОсновы GAPIПуть света и тениПостобработкаВопросыАрхитектураПриемы оптимизацииО кафедреЛекция №2Вопросы onlineВопросыDrink-Time
Шейдерный  коктейль Спикер:  Алексей Безгодов ПланПуть треугольникаОсновы GAPIПуть света и тениПостобработкаВопросыАрхитектураПриемы оптимизацииО кафедреЛекция №2Вопросы onlineВопросыDrink-Time Мир состоит из треугольников GAPI: Объекты и функцииShaders:VS, HS, DS, GS, PS, CSResources:Textures 1D, 2D, 3D, GAPI: Vertex & Index BuffersFloat4	PositionFloat3	NormalHalf2	TexCoordByte4	Color…v1v2v3v0i1i2i3i4i5i0vx0vx1vx2vx3idx0idx1idx2idx4idx3idx5 GAPI: Texture 1D, 2D, 3D, Cube GAPI: Color, Depth, StencilColorDepthStencil GAPI: ShadersVertex Shaderпреобразование вершинGeometry Shaderпорождение примитивовPixel Shaderрасчет цвета фрагмента (пиксела)Compute Shaderoбщие вычисления	Hull GAPI: Pipeline (Direct3D 11)Resources: Vertex, Index, Constant Buffers, SRVs, UAVs IAVSHSTessDSGSRSPSOMSOCS GAPI: Pipeline (~Driver)ApplicationSet Shader SH1Set State ST1 Set Texture ASet Render Target Вопросы Путь света и тениРассчитать освещенностьУчесть тениУчесть вторичную освещенностьУчесть отражениеВывести на экранDOFHDRBloomПостпроцессинг Путь света: свойства материаловМеталДиэлектрик Путь света: свойства материаловТекстурыРезультат Путь света и тениСветForwardSinglepassMultipassDeferred ClassicTiledClusteredForward+TiledClusteredТеньLight MapsLight GridsShadow Volumes Shadow MapsSpotCascadeCubeVariable Penumbra Forward: SinglepassBBA+BBA+BAA Forward: Multipass1x1x2xB2x1xAAdditive Blending Deferred: ClassicGGGBGAAdditive Blending Deferred RenderingГеометрический буферРезультатZ-values Deferred/Forward+: Tiled/ClusteredBAAAAAAA,BAAAAA,BBBBBB,DBBBZminZmaxBCEDCCDD,EB,D,EEE Сравнение Вопросы Drink-Time Свет и тени: Light Maps Тени: Shadow Volumes Тени: Shadow Maps Глобальная освещенностьМягкие полутениЗатекание светаОтражениеИстинная природа материаловOffline:RadiocityPhoton MappingЗапечь в Light MapЗапечь в Light Global Illumination: Sky OcclusionCube Map256x256x128Shadow map64 выборкиКаждый воксельКол-во светаУсредненное направление Global Illumination: SSAO Global Illumination: Cube Maps Системы частицГенератор частиц (группы):Начальные распределения параметровЧастица:Время жизниКинематика:ПозицияСкоростьУскорение (лок.+глоб.)ДампингЦвет, ТекстураАнимация:ВращениеЦветРазмерПараметры сложного взаимодействия:УпругостьЗаряд/МассаСимулятор частиц:Численныйx Übershadersvoid ShaderFunc () { 	#ifdef WET	  SetWetSurface ();	#endif	#ifdef SKYLIGHT ПостобработкаHDR ImageDOFBloomFlaresDepth BufferGame EffectsPainQuad DamageTime effectsColor correctionSaturationGammaMotion BlurFXAA, MLAATemporal AAOld FrameVelocityFieldFinaldu, dv Постобработка Вопросы Схема графической системыVisibility TestCullingShadowsContent LightingTransparencySkyParticlesPost-processingHDR, DOF, SSAOHUD, UIGame: AI, Physics, TriggersCacheBuildContent StreamingScene, Lights Оптимизация: Draw CallsЧем меньше Draw Calls – тем лучше1000-2000 батчей максимумShadowsZ-prepassFrustum cullingИерархическийOcclusion Оптимизация: Pixel shader Early Z-cullРендеринг в порядке возрастания глубиныТребует Z-prepassРендеринг в меньшее разрешениеПроблема «краев»ReprojectionGhostingTiled techniques Оптимизация: DXT/BC сжатиеУменьшение размеров текстур (в 2 раза)Лучше жать текстуры цвета чем Оптимизация: DXT/BC сжатие32 Kb192 KbDiff: x8 Оптимизация: Сжатие вершин Вопросы? Вопросы onlineПочему в OpenGl нет моделей освещения?Связана ли дисперсия с пинк флойдом?) Вопросы onlineНасколько целесообразно создавать собственный движок с нуля? И с чем может Проекты НИИ НКТ НИУ ИТМО КафедраДень открытых дверей: 8 июля в 18:00Биржевая линия, д. 4Двойной дипломУниверситет  г. Амстердам, Нидерланды Программы и преимуществаСуперкомпьютерные технологии в междисциплинарных исследованияхСуперкомпьютерные технологии в исследовании процессов большого
Слайды презентации

Слайд 2 План
Путь треугольника

Основы GAPI

Путь света и тени

Постобработка

Вопросы



Архитектура

Приемы оптимизации

О кафедре

Лекция

ПланПуть треугольникаОсновы GAPIПуть света и тениПостобработкаВопросыАрхитектураПриемы оптимизацииО кафедреЛекция №2Вопросы onlineВопросыDrink-Time

№2

Вопросы online

Вопросы
Drink-Time


Слайд 3 Мир состоит из треугольников

Мир состоит из треугольников

Слайд 4 GAPI: Объекты и функции
Shaders:
VS, HS, DS, GS, PS,

GAPI: Объекты и функцииShaders:VS, HS, DS, GS, PS, CSResources:Textures 1D, 2D,

CS
Resources:
Textures 1D, 2D, 3D, Cube, Array
Vertex Buffers
Index Buffers
Const Buffers
Render

Targets
Read/Write Buffers
Render States:
Blending
Rasterization
Output merging
Sampling
Queries
Counters, Occlusion, Predicates

Компиляция шейдеров
Создание ресурсов
Передача данных
CPU  GPU
GPU  GPU
Очистка буферов
Установка Render States
Установка шейдеров
Привязка ресурсов
Draw Calls
Indexed
Instanced
Indexed & Instanced
Установка Queries


Слайд 5 GAPI: Vertex & Index Buffers
Float4 Position
Float3 Normal
Half2 TexCoord
Byte4 Color

v1
v2
v3
v0
i1
i2
i3
i4
i5
i0
vx0
vx1
vx2
vx3
idx0
idx1
idx2
idx4
idx3
idx5

GAPI: Vertex & Index BuffersFloat4	PositionFloat3	NormalHalf2	TexCoordByte4	Color…v1v2v3v0i1i2i3i4i5i0vx0vx1vx2vx3idx0idx1idx2idx4idx3idx5

Слайд 6 GAPI: Texture 1D, 2D, 3D, Cube

GAPI: Texture 1D, 2D, 3D, Cube

Слайд 7 GAPI: Color, Depth, Stencil
Color
Depth
Stencil

GAPI: Color, Depth, StencilColorDepthStencil

Слайд 8 GAPI: Shaders
Vertex Shader
преобразование вершин
Geometry Shader
порождение примитивов
Pixel Shader
расчет цвета

GAPI: ShadersVertex Shaderпреобразование вершинGeometry Shaderпорождение примитивовPixel Shaderрасчет цвета фрагмента (пиксела)Compute Shaderoбщие

фрагмента (пиксела)
Compute Shader
oбщие вычисления
Hull Shader
генерация контрольных точек кривых Безье
Domain

Shader
генерация вершин по результатам тесселяции

HLSL – Direct3D
GLSL – OpenGL


float4 PSMain(PS_IN input) : SV_Target
{
float4 tex = Texture.Sample( Sampler,
input.tc );
float3 bw = dot( tex.rgb,
float3(0.3, 0.5, 0.2) );
tex.rgb = lerp( bw.rgb, tex.rgb,
Batch.Saturation );

return input.col * tex;
}





Слайд 9 GAPI: Pipeline (Direct3D 11)
Resources:
Vertex, Index, Constant Buffers,

GAPI: Pipeline (Direct3D 11)Resources: Vertex, Index, Constant Buffers, SRVs, UAVs IAVSHSTessDSGSRSPSOMSOCS

SRVs, UAVs
IA
VS
HS
Tess
DS
GS
RS
PS
OM
SO
CS


Слайд 10 GAPI: Pipeline (~Driver)
Application
Set Shader SH1
Set State ST1
Set

GAPI: Pipeline (~Driver)ApplicationSet Shader SH1Set State ST1 Set Texture ASet Render

Texture A
Set Render Target B
Draw Call
Set Shader SH2
Set State

ST2

Set Texture B

Set Render Target C

Draw Call

Compile new shaders
SH1, ST1

Draw primitive #1

Draw primitive #2

Driver

Set Shader

Set State

Set Texture

Set Render Target

Draw Call

Set Shader

Set State

Set Texture

Set Render Target

Draw Call

Copy data from
framebuffer B to texture B

Compile new shaders
SH2, ST2

Draw primitive #1

Draw primitive #2

Draw primitive #3


Слайд 11 Вопросы

Вопросы

Слайд 12 Путь света и тени
Рассчитать освещенность
Учесть тени
Учесть вторичную освещенность
Учесть

Путь света и тениРассчитать освещенностьУчесть тениУчесть вторичную освещенностьУчесть отражениеВывести на экранDOFHDRBloomПостпроцессинг

отражение
Вывести на экран
DOF
HDR
Bloom
Постпроцессинг



Слайд 13 Путь света: свойства материалов
Метал
Диэлектрик

Путь света: свойства материаловМеталДиэлектрик

Слайд 14 Путь света: свойства материалов
Текстуры
Результат

Путь света: свойства материаловТекстурыРезультат

Слайд 15 Путь света и тени
Свет
Forward
Singlepass
Multipass
Deferred
Classic
Tiled
Clustered
Forward+
Tiled
Clustered
Тень
Light Maps
Light Grids
Shadow Volumes

Путь света и тениСветForwardSinglepassMultipassDeferred ClassicTiledClusteredForward+TiledClusteredТеньLight MapsLight GridsShadow Volumes Shadow MapsSpotCascadeCubeVariable Penumbra


Shadow Maps
Spot
Cascade
Cube
Variable Penumbra


Слайд 16 Forward: Singlepass
B
B
A+B
B
A+B
A
A

Forward: SinglepassBBA+BBA+BAA

Слайд 17 Forward: Multipass
1x
1x
2x
B
2x
1x
A
Additive Blending

Forward: Multipass1x1x2xB2x1xAAdditive Blending

Слайд 18 Deferred: Classic
G
G
G
B
G
A
Additive Blending

Deferred: ClassicGGGBGAAdditive Blending

Слайд 19 Deferred Rendering
Геометрический буфер
Результат
Z-values

Deferred RenderingГеометрический буферРезультатZ-values

Слайд 20 Deferred/Forward+: Tiled/Clustered
B
A
A
A
A
A
A
A,B
A
A
A
A
A,B
B
B
B
B
B,D
B
B
B
Zmin
Zmax
B
C
E
D
C
C
D
D,E
B,D,E
E
E

Deferred/Forward+: Tiled/ClusteredBAAAAAAA,BAAAAA,BBBBBB,DBBBZminZmaxBCEDCCDD,EB,D,EEE

Слайд 21 Сравнение

Сравнение

Слайд 22 Вопросы

Вопросы

Слайд 23 Drink-Time

Drink-Time

Слайд 24 Свет и тени: Light Maps

Свет и тени: Light Maps

Слайд 25 Тени: Shadow Volumes

Тени: Shadow Volumes

Слайд 26 Тени: Shadow Maps

Тени: Shadow Maps

Слайд 27 Глобальная освещенность
Мягкие полутени
Затекание света
Отражение
Истинная природа материалов

Offline:
Radiocity
Photon Mapping

Запечь в

Глобальная освещенностьМягкие полутениЗатекание светаОтражениеИстинная природа материаловOffline:RadiocityPhoton MappingЗапечь в Light MapЗапечь в

Light Map
Запечь в Light Grid
Запечь в Cube Maps

SSAO
Instant Radiocity


ISM (Ghost Recon: FS)
LPV (CE 2,3)
VCT (UE 4?)

Слайд 28 Global Illumination: Sky Occlusion

Cube Map
256x256x128
Shadow map
64 выборки
Каждый воксель
Кол-во

Global Illumination: Sky OcclusionCube Map256x256x128Shadow map64 выборкиКаждый воксельКол-во светаУсредненное направление

света
Усредненное направление


Слайд 29 Global Illumination: SSAO

Global Illumination: SSAO

Слайд 30 Global Illumination: Cube Maps

Global Illumination: Cube Maps

Слайд 31 Системы частиц
Генератор частиц (группы):
Начальные распределения параметров

Частица:
Время жизни
Кинематика:
Позиция
Скорость
Ускорение (лок.+глоб.)
Дампинг
Цвет,

Системы частицГенератор частиц (группы):Начальные распределения параметровЧастица:Время жизниКинематика:ПозицияСкоростьУскорение (лок.+глоб.)ДампингЦвет, ТекстураАнимация:ВращениеЦветРазмерПараметры сложного взаимодействия:УпругостьЗаряд/МассаСимулятор

Текстура
Анимация:
Вращение
Цвет
Размер
Параметры сложного взаимодействия:
Упругость
Заряд/Масса
Симулятор частиц:
Численный
x = x + v•t; v

= v + a•t
Эйлер
Рунге-Кутта
Аналитический
x = x0 + v•t + a•t2/2

Использование GPU
GS Stream Output / CS Append Buffer
Моделирование
Время жизни
Сортировка/Approx. OIT
VS / PS
Ориентация спрайтов
Анимация



Слайд 32 Übershaders
void ShaderFunc () {
#ifdef WET
SetWetSurface

Übershadersvoid ShaderFunc () { 	#ifdef WET	 SetWetSurface ();	#endif	#ifdef SKYLIGHT  ApplySkyLight();

();
#endif
#ifdef SKYLIGHT ApplySkyLight();
#ifdef SHADOW

ApplyShadow();
#endif
#endif
#ifdef LIGHT0
ApplyLight ( 0 );
#endif
#ifdef LIGHT1
ApplyLight ( 1 );
#endif
#ifdef LIGHT2
ApplyLight ( 2 );
#endif
#if XBOX
// Do XBOX-specific stuff
#endif
}

// Render-specific
SKYLIGHT = 0x0001
SHADOW = 0x0002
LIGHT0 = 0x0004
LIGHT1 = 0x0008
LIGHT2 = 0x0010

// Game-specific
WET
FREEZED
CLOACKED
// Stage-specific
PIXEL_SHADER
VERTEX_SHADER

// Material-specific
USE_DETAIL_MAP
USE_NORMAL_MAP
USE_PARALLAX
USE_DETAIL_NORMALMAP
USE_ANISOTROPIC_SPEC

// Platform-specific
PC_OPENGL
PC_DIRECT3D
XBOX
PS3

SetUberShader( LIGHT0 | LIGHT1 |
WET |
USE_DETAIL_MAP |
PIXEL_SHADER | PC_DIRECT3D
);

2^N  4000 M
Cache


Слайд 33 Постобработка
HDR Image
DOF
Bloom
Flares
Depth Buffer
Game Effects
Pain
Quad Damage
Time effects
Color correction
Saturation
Gamma
Motion
Blur
FXAA,

ПостобработкаHDR ImageDOFBloomFlaresDepth BufferGame EffectsPainQuad DamageTime effectsColor correctionSaturationGammaMotion BlurFXAA, MLAATemporal AAOld FrameVelocityFieldFinaldu, dv

MLAA
Temporal AA
Old Frame
Velocity
Field
Final
du, dv


Слайд 34 Постобработка

Постобработка

Слайд 35 Вопросы

Вопросы

Слайд 36 Схема графической системы
Visibility Test
Culling
Shadows
Content
Lighting
Transparency
Sky
Particles
Post-processing
HDR, DOF, SSAO
HUD, UI
Game:

Схема графической системыVisibility TestCullingShadowsContent LightingTransparencySkyParticlesPost-processingHDR, DOF, SSAOHUD, UIGame: AI, Physics, TriggersCacheBuildContent StreamingScene, Lights

AI, Physics, Triggers
Cache
Build
Content Streaming
Scene, Lights


Слайд 37 Оптимизация: Draw Calls
Чем меньше Draw Calls – тем

Оптимизация: Draw CallsЧем меньше Draw Calls – тем лучше1000-2000 батчей максимумShadowsZ-prepassFrustum

лучше
1000-2000 батчей максимум
Shadows
Z-prepass
Frustum culling
Иерархический
Occlusion culling
Occlusion query/Conditional Rendering
Precomputed visiblity
Склеивание мешей
Instancing


Слайд 38 Оптимизация: Pixel shader
Early Z-cull
Рендеринг в порядке возрастания

Оптимизация: Pixel shader Early Z-cullРендеринг в порядке возрастания глубиныТребует Z-prepassРендеринг в меньшее разрешениеПроблема «краев»ReprojectionGhostingTiled techniques

глубины
Требует Z-prepass
Рендеринг в меньшее разрешение
Проблема «краев»
Reprojection
Ghosting
Tiled techniques


Слайд 39 Оптимизация: DXT/BC сжатие
Уменьшение размеров текстур (в 2 раза)
Лучше

Оптимизация: DXT/BC сжатиеУменьшение размеров текстур (в 2 раза)Лучше жать текстуры цвета

жать текстуры цвета чем карты нормалей
BC/DXT-сжатие
Экономия памяти
Ускорение рендеринга
Блоки 4х4:
2

цвета  5.6.5
2 бита – параметр интерполяции

DXT/BC
Текстуры поверхностей
Фотографии
Карты нормалей (нерегулярные)

Карты нормалей (регулярные)
Диаграммы, схемы
Шрифты


P.S. Нужен контроль!


Слайд 40 Оптимизация: DXT/BC сжатие
32 Kb
192 Kb
Diff: x8

Оптимизация: DXT/BC сжатие32 Kb192 KbDiff: x8

Слайд 41 Оптимизация: Сжатие вершин

Оптимизация: Сжатие вершин

Слайд 42 Вопросы?

Вопросы?

Слайд 43 Вопросы online
Почему в OpenGl нет моделей освещения?

Связана ли

Вопросы onlineПочему в OpenGl нет моделей освещения?Связана ли дисперсия с пинк

дисперсия с пинк флойдом?) [Y/N]

Можно ли варить современный графический

движок в кладовке или лоджии? Легально ли это?

Чем новые API (Mantle, DX12, Apple Metal и тд) отличаются от старых?

Используются ли модели глобального освещения в играх на данный момент?

Насколько можно быстро сварить простой движок для 3D визуализации дилетанту, который в последний раз графику программировал для режима 320х200х256 в ассемблере через сегмент A000 (это было в "лохматом" 1996 году ))))) ), а в этом году баловался Unity и SandBox?

Как расположить span по центру div (и вертикально и горизонтально) не используя абсолютного позиционирования?

Можно ли научиться варить движок, если в программировании почти ноль (0.1)?

Слайд 44 Вопросы online
Насколько целесообразно создавать собственный движок с нуля?

Вопросы onlineНасколько целесообразно создавать собственный движок с нуля? И с чем

И с чем может быть связана такая потребность?

Почему в

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

Что вы думаете о перспективах алгоритмов unbiased rendering в играх?

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

Скорость распространения света в первой среде 225 000 км/с, а во второй — 200 000 км/с. Луч света падает на поверхность раздела этих сред под углом 30° и переходит во вторую среду. Чему равен угол преломления луча?

Насколько сильно различаются API графики для PC и консолей? Различаются ли принципиально методики разработки и общий цикл?

Что вы думаете о будущем использования мегатекстур (как в игре Rage)?

Чем отличается тесселяция от триангуляции?

Слайд 45 Проекты НИИ НКТ НИУ ИТМО

Проекты НИИ НКТ НИУ ИТМО

Слайд 46 Кафедра
День открытых дверей:
8 июля в 18:00
Биржевая линия,

КафедраДень открытых дверей: 8 июля в 18:00Биржевая линия, д. 4Двойной дипломУниверситет г. Амстердам, Нидерланды

д. 4

Двойной диплом
Университет г. Амстердам, Нидерланды





  • Имя файла: sheydernyykokteyl.pptx
  • Количество просмотров: 93
  • Количество скачиваний: 0