Index

Numerics

3D cube, rendering, 306-313

3D models

asset loading

loading meshes, 325-328

loading model materials, 328-331

loading models, 323-325

content pipeline, 317

Open Asset Import Library, 317-318

meshes, 318-321

model file formats, 316-317

model materials, 321-323

A

AABBs (axis-aligned bounding boxes), 531

Add Effect dialog box (FX Composer), 60

adding vectors, 25

additive blending, 159-161

addressing modes, 86-88

border address mode, 88

clamp address mode, 87-88

mirror address mode, 87

wrap address mode, 86

AdjustWindowRect() function, 202

alpha blending, 159-161

ambient lighting, 92-96

AmbientColor shader constant, 94-95

incrementing/decrementing intensity of, 381-382

pixel shader, 95

AmbientColor shader constant, 94-95

AmbientLighting.fx, 92-94

animated models

bind pose, retrieving, 491

importing, 476-489

skeletal animation, rendering, 489-495

AnimationPlayer class, 489-491

anisotropic filtering, 83

annotations, HLSL, 77-78

APIs

Direct3D, 9

DirectX, 7

Open Asset Import Library, 317-318

OpenGL, 9

applications

FX Composer

Assets panel, 49

effects, 49

materials, 49

Render panel, 51-52

Textures panel, 52

“Hello, Rendering”, 284-306

Effects 11 library, 288-293

input layout, creating, 293-297

rendering a triangle, 297-304

rotating the triangle, 305-306

TriangleDemo class, 286-287

NVIDIA FX Composer, 47-52

Visual Studio, 44-46

Visual Studio Graphics Debugger, 53-55

ApplyRotation() method, 276

asset loading

loading meshes, 325-328

loading model materials, 328-331

loading models, 323-325

Assets panel (FX Composer), 49

audience for this book, 2

authoring file formats, 316

AutoDesk Maya, 52

automatic binding, 105

B

backface culling, 15

basic effect materials, 357-364

basic material demo, 361-364

BasicEffect shader, 342

material, creating, 357-361

bias, calculating, 465-466

billboarding, 499-502

bind pose, 491

bitmaps, 18

blend factor options, 160-159

blend operation options, 159

BlendState objects, 159

Blinn-Phong, 111-114

BlinnPhongIntrinsics.fx, 113-114

BlinnPhongIntrinsics.fx, 113-114

bloom, 419-424

glow maps, creating, 420-424

Bloom.fx file, 421-422

blurring, Gaussian blurring, 410-418

bones, skinning, 472-476

border address mode, 88

brightness, Lambert’s cosine law, 97

BVHs (bounding volume hierarchies), 530

C

calculating

bias, 465-466

linear interpolation, 489

vector length, 26

Camera class, 270-276

CenterWindow() method, 203

changing coordinate systems, 34-35

checking for multisampling support, 208-210

clamp address mode, 87-88

classes

AnimationPlayer class, 489-491

DepthMap class, 451-452

DiffuseLightingDemo class, 377-378

DiffuseLightingMaterial class, 375-377

Effect class, 342-346

FullScreenQuad class, 396-401

FullScreenRenderTarget class, 392-395

Game class, header file, 200-201

GameClock, 197

GameComponent class, 235-237

GaussianBlur class, 413-418

Material class, 352-357

Mesh class, 320-321

Model class, 319-320

ModelMaterial, 322-323

Pass class, 348-349

ProxyModel class, 378

ServiceContainer class, 266-267

Skybox class, 366-368

SpriteBatch class, 243-247

SpriteFont class, 243-247

Technique class, 347-348

TextureModelDemo, 335-339

TriangleDemo class, 286-287

Variable class, 350-352

color blending, 159-167

additive blending, 159-161

alpha blending, 159-161

blend factor options, 160-159

blend operation options, 159

BlendState objects, 159

common settings, 159

multiplicative blending, 159-161

TransparencyMapping.fx, 161-165

color filtering

color inverse filter, 405-406

demo, 403-405

generic color filter, 408-410

grayscale shader, 401-403

sepia filter, 407

color inverse filters, 405-406

ColorFilteringGame::Draw() method, 404

ColorFilteringGame::UpdateColorFilterMaterial() method, 404

column-major order, 30

comments, HLSL, 77

common color blending settings, 159

Common.fxh, 130-138

companion website for this book, 4

comparing Blinn-Phong and Phong models, 114

compute shaders, 545-549

threads, 545

concatenating matrices, 33-34

constant buffers, 62

constant hull shaders, 511-512

constants, AmbientColor shader constant, 94-95

content pipeline, 317

Open Asset Import Library, 317-318

control point patch lists, 16

control points, 510

coordinate systems, changing, 34-35

CPU (central processing unit), 9

creating

depth maps, 446-452

game components, 234

glow maps, 420-424

HelloShaders effect, 60-67

constant buffers, 62

effect files, 62

output, 67

render states, 63-64

techniques, 66-67

vertex shader, 64-65

material for BasicEffect shader, 357-361

rendering engine project, 187

skybox material, 364-366

specialized Game class, 228-230

texture cubes, 142-144

texture mapping effect, 75-81

output, 81

cross product, 27

cube maps. See texture cubes

culling, disabling, 63

customizing RTTI, 237-239

cylindrical billboarding, 499-502

D

D3DX (Direct3D Extension) library, 46

data-driven engine architecture, 550-552

data structures, rewriting HelloShaders effect for C-style structs, 68-70

data types, light data types, 372-373

DDS (DirectDraw Surface), 46

debugging

graphics, 55

shaders, 54-55

decrementing ambient light intensity, 381-382

deferred shading, 543-544

demos

3D cube, rendering, 306-313

color filtering, 403-405

diffuse lighting, 377-383

Gaussian blurring, 416-418

geometry shader demo, 504-506

material demo, 361-364

model rendering demo, 331-333

point lights, 383-386

spotlights, 386

tessellation, 518-520

texture mapping, 334-339

depth maps, 435, 436-437

creating, 446-452

occlusion testing, 453-456

depth testing, 20

DepthMap class, 451-452

deserialization, 317

device input

keyboard input, 249-258

mouse input, 258-264

diffuse lighting, 97-105

demo, 377-383

directional lights, 97-101

Lambert’s cosine law, 97

material, 373-377

pixel shader, 102-103

vertex shader, 102

DiffuseLightingDemo class, 377-378

DiffuseLighting.fx, 98-101

DiffuseLightingMaterial class, 375-377

Direct3D, 7, 9

2D texture, 216-217

initializing

associating views to output-merger stage, 218

checking for multisampling support, 208-210

creating a depth-stencil view, 215-218

creating a render target view, 214-215

creating the device context, 206-208

creating the swap chain, 210-214

setting the viewport, 219

magnification, 82-83

Direct3D Graphics Pipeline

domain-shader stage, 514-518

geometry shader stage, 18

hull-shader stage, 510-512

input-assembler stage, 10-16

index buffers, 11

primitives, 13-14

vertex buffers, 10-11

output-merger stage, 19-20

pixel shader stage, 19

rasterizer stage, 18-19

tessellation stage, 512

tessellation stages, 16-18

vertex shader stage, 16

DirectInput library

keyboard input, 249-258

mouse input, 258-264

directional lights, 97-101

intensity, 105

rotating, 382-383

directory structure, rendering engine project, 186

DirectX, 7

history, 8-9

DirectX 11, 8

DirectX 8, 8

DirectX 9, 8

OpenGL, 9

texture coordinates, 74

DirectX Texture Tool, 143

DirectXMath, 35-40

matrices, 39-40

vectors

calling conventions, 37

initialization functions, 37

loading and storing, 36

operators, 38

DirectXTK (DirectX Tool Kit), 46

disabling culling, 63

displacement mapping, 178-181

displacing tessellated vertices, 520-523

distortion mapping, 425-431

full-screen distortion shader, 425-426

masking distortion shader, 427-431

DLLs, Open Asset Import Library, 317-318

domain-shader stage (Direct3D Graphics Pipeline), 514-518

dot product, 26-27

Draw() method, 379-380

draw order, effect on alpha-blended objects, 166-167

drawable game components, 239-240

dynamic environment mapping, 153-154

dynamic tessellation effect, 524-527

E

Effect class, 342-346

effects, 49

ambient lighting effect, 92-94

output, 95-96

Blinn-Phong, 111-114

pixel shaders, 112

bloom effect, 420-424

diffuse lighting

material, 373-377

diffuse lighting effect

output, 103-105

pixel shader, 102-103

preamble, 101-102

vertex shader, 102

displacement mapping effect, 179-181

dynamic tessellation effect, 524-527

environment mapping

preamble, 151-152

vertex shader, 152

environment mapping effect

output, 153

fog effect, 154-157

output, 157

pixel shader, 157

preamble, 157

vertex shader, 157

multiple point lights effect, 132-138

output, 138

pixel shader, 136-137

vertex shader, 136-137

normal mapping effect, 173-177

preamble, 176

Phong effect, 106-111

preamble, 109

PointLight.fx

output, 121-123

preamble, 120

skybox effect

output, 147-148

pixel shader, 147

preamble, 147

vertex shader, 147

Spotlight.fx, 125-129

texture mapping effect, creating, 75-81

transparency mapping effect, 165-166

Effects 11 library, 46, 288-293

environment mapping, 149-154

dynamic environment mapping, 153-154

EnvironmentMapping.fx, 149-151

F

feature levels (Direct3D), 207-208

file formats

3D models, 316-317

texture file formats, 46

final project settings, rendering engine project, 192-193

first-person camera, implementing, 277-281

fog effect, 154-157

output, 157

pixel shader, 157

preamble, 157

forward rendering, 543

frame rate component, 242-243

full-screen distortion shaders, 425-426

FullScreenQuad class, 396-401

FullScreenRenderTarget class, 392-395

functions

AdjustWindowRect(), 202

lit(), 113

reflect(), 152

WinMain(), 194

WinMain(), updating for RenderingGame class, 230-232

FX Composer, 47-52

Add Effect dialog box, 60

Assets panel, 49

effects, 49

materials, 49

Render panel, 51-52

Select HLSL FX Template dialog box, 60

Textures panel, 52

G

Game class

header file, 200-201

ServiceContainer member, adding, 267-268

specialized Game class, creating, 228-230

updating for Direct3D initialization, 220-228

game components

creating, 234

drawable game components, 239-240

frame rate component, 242-243

Game class support for, 240-248

RTTI, customizing, 237-239

SpriteBatch class, 243-247

SpriteFont class, 243-247

game engine file formats, 316

game loop, 195-199

initialization, 199

time-related information, 196-199

GameClock.cpp file, 198-199

Game project

final project settings, 192-193

linking libraries, 190-191

Program.cpp file, adding, 193-194

Game.cpp file, 222-227

GameClock class, 197

GameClock.cpp file, 198-199

GameComponent class, 235-237

Game::Initialization() method, 196

Game::InitializeWindow() method, 201-202

Game::Run() method, 203-204

gaming consoles

XBox, 8

XBox 360, 8

Gaussian blurring, 410-418

demo, 416-418

sample offsets and weights, initializing, 415-416

GaussianBlur class, 413-418

general-purpose Game class, updating for Direct3D initialization, 220-228

generic color filters, 408-410

geometry shader stage (Direct3D Graphics Pipeline), 18

geometry shaders, 498

demo, 504-506

graphics pipeline, hull-shader stage, 510-512

point sprite shaders, 499-506

primitive IDs, 507

processing primitives, 498-499

global illumination, 544-545

glow maps, creating, 420-424

GPU (graphics processing unit), 1, 9

GPU PerfStudio 2, 55

GPU skinning, 472

graphics, debugging, 55

graphics cards, 8

grayscale filter, 401-403

H

hardware instancing, 535-542

header file, Game class, 200-201

“Hello, Rendering” application, 284-306

Effects 11 library, 288-293

input layout, creating, 293-297

rendering a triangle, 297-304

rotating the triangle, 305-306

TriangleDemo class, 286-287

HelloShaders effect

constant buffers, 62

creating, 60-67

effect files, 62

output, 67

pixel shader, 65

render states, 63-64

rewriting for C-style structs, 68-70

techniques, 66-67

vertex shader, 64-65

Hello, structs, 68-70

hierarchical transformations, 470

history of DirectX, 8-9

DirectX 11, 8

DirectX 8, 8

DirectX 9, 8

HLSL, 8

OpenGL, 9

programmable shaders, 8

HLSL (High-Level Shading Language), 8

annotations, 77-78

comments, 77

HLSL, texture objects, 78-79

preprocessor commands, 77

texture mapping

samplers, 78-79

texture coordinates, 79-81

homogeneous coordinates, 31

hull-shader stage (graphics pipeline), 510-512

I

IDE (integrated development environment), 44

identity matrix, 31

implementing a first-person camera, 277-281

importing animated models, 476-489

include directories, rendering engine project, 189-190

incrementing ambient light intensity, 381-382

index buffers, 11

3D cube, rendering, 306-313

indirect lighting, 544

initializing

Direct3D

associating views to output-merger stage, 218

checking for multisampling support, 208-210

creating a render target view, 214-215

creating the device context, 206-208

creating the swap chain, 210-214

setting the viewport, 219

game loop, 199

Gaussian blurring sample offsets and weights, 415-416

windows, 199-201

input layout, creating for “Hello Rendering” application, 293-297

input-assembler stage (Direct3D Graphics Pipeline), 10-16

index buffers, 11

primitives, 13-14

vertex buffers, 10-11

prerequisites, 4

intensity

of ambient lights, incrementing/decrementing, 381-382

of directional lights, changing, 105

interchange file formats, 316

interpolation, linear interpolation, 82-83

J-K

keyboard input, 249-258

keyframes, 483-486

L

Lambert’s cosine law, 97

left-handed coordinate systems, 24-25

Library project, final project settings, 192-193

light data types, 372-373

lighting, SH lighting, 544

lighting models

ambient lighting, 92-96

diffuse lighting, 97-105

demo, 377-383

material, 373-377

directional lights, 97-101

global illumination, 544-545

multiple lights, 130-138

point lights, 116-123

demo, 383-386

manipulating, 385-386

specular highlights, 105-114

Blinn-Phong, 111-114

Phong reflection model, 105-111

spotlights, 124-129

linear interpolation, calculating, 489

linking libraries, rendering engine project, 190-191

lit() function, 113

loading

model materials, 328-331

models, 323-325

vectors, 36

LODs (levels of detail), 17-18, 524

M

magnification, 82-83

anisotropic filtering, 83

linear interpolation, 82-83

point filtering, 82

manipulating point lights, 385-386

manual binding, 105

masking distortion shaders, 427-431

Material class, 352-357

materials, 49, 342

basic effect materials, 357-364

diffuse lighting material, 373-377

demo, 377-383

Effect class, 342-346

Material class, 352-357

Pass class, 348-349

skybox material, creating, 364-366

Technique class, 347-348

Variable class, 350-352

matrices, 27-31

column-major order, 30

concatenation, 33-34

DirectXMath, 39-40

identity matrix, 31

multiplication, 28

row-major order, 30

subtracting, 28

transposing, 29

meshes, 318-321

loading, 325-328

skinning, 472-476

methods

ApplyRotation(), 276

CenterWindow(), 203

ColorFilteringGame::Draw(), 404

ColorFilteringGame::UpdateColorFilterMaterial(), 404

Draw(), 379-380

Game::Initialization(), 196

Game::InitializeWindow(), 201-202

Game::Run(), 203-204

Reset() method, 275

Sample(), 79

SetBlurAmount(), 415

SetMaterial(), 397

UpdateGameTime(), 196

UpdateProjectionMatrix(), 276

UpdateViewMatrix(), 276

Microsoft Visual Studio. See Visual Studio

minification, 83

mipmaps, 84-85

mirror address mode, 87

Model class, 319-320, 323-325

model file formats, 316

model materials, 321-323

loading, 328-331

model rendering demo, 331-333

ModelMaterial class, 322-323

mouse input, 258-264

MRTs (multiple render targets), 543

MSAA (Multisample Anti-Aliasing), 208

multiple lights, 130-138

MultiplePointLights.fx, 132-138

multiple point lights effect

output, 138

techniques, 137

MultiplePointLights.fx, 132-138

preamble, 136

multiplicative blending, 159-161

multiplying matrices, 28

N

normal mapping, 170-177

displacement mapping, 178-181

tangent space, 171-173

NormalMapping.fx, 173-177

normals, 102

Nsight Visual Studio Edition, 55

nvDXT command-line tool, 142

NVIDIA

FX Composer, 47-52

Add Effect dialog box, 60

Select HLSL FX Template dialog box, 60

Nsight Visual Studio Edition, 55

O

OBBs (oriented bounding boxes), 531

object sorting, 532

object space, 34

occlusion, 444-445

SSAO, 544

occlusion culling, 532

occlusion testing, 453-456

octrees, 531

Open Asset Import Library, 317-318

animated models, importing, 476-489

asset loading, 323-325

loading meshes, 325-328

loading model materials, 328-331

OpenGL, 9

optimizing rendering speed

hardware instancing, 535-542

object sorting, 532

occlusion culling, 532

shader optimization, 533-535

view frustum culling, 530-531

Orbit camera (FX Composer), 52

output

ambient lighting effect, 95-96

diffuse lighting effect, 103-105

displacement mapping effect, 180-181

environment mapping effect, 153

fog effect, 157

HelloShaders effect, 67

multiple point lights effect, 138

normal mapping effect, 177

Phong effect, 111

PointLight.fx, 121-123

skybox effect, 147-148

Spotlight.fx, 129

transparency mapping effect, 165-166

output-merger stage (Direct3D Graphics Pipeline), 19-20

P

Pass class, 348-349

patches, 510

percentage closer filtering, 460-465

peter panning, 466

Phong reflection model, 105-111

Phong.fx, 106-111

output, 111

preamble, 109

PIX, 52

pixel shader stage (Direct3D Graphics Pipeline), 19

pixel shaders

ambient lighting pixel shader, 95

Blinn-Phong effect, 112

diffuse lighting pixel shader, 102-103

environment mapping effect, 152

fog effect, 157

multiple point lights effect, 136-137

normal mapping effect, 177

Phong effect, 109-111

point light pixel shader, 120

skybox effect, 147

spotlight pixel shader, 129

pixels

blurring images, 411

minification, 83

point filtering, 82

point lights, 116-123

demo, 383-386

manipulating, 385-386

point lists, 13

point sprite shaders, 499-506

PointLight.fx, 116-123

output, 121-123

preamble, 120

portal rendering, 532

post-processing, 391

bloom, 419-424

color filtering

color inverse filter, 405-406

demo, 403-405

generic color filter, 408-410

grayscale shader, 401-403

sepia filter, 407

distortion mapping, 425-431

full-screen distortion shader, 425-426

masking distortion shader, 427-431

full-screen quad component, 396-401

Gaussian blurring, 410-418

render targets, 392-396

shadow mapping, 435

preamble

diffuse lighting effect, 101-102

displacement mapping effect, 180

environment mapping effect, 151-152

fog effect, 157

MultiplePointLights.fx, 136

normal mapping effect, 176

Phong effect, 109

PointLight.fx, 120

skybox effect, 147

Spotlight.fx, 129

preprocessor commands, HLSL, 77

primitive IDs, 507

primitives, 13-14

adjacency data, 15

geometry shaders, 498-499

processors, CPU, 9

Program.cpp file, adding to Game project, 193-194

programmable shaders, 8

project build order, rendering engine project, 188-189

project setup (rendering engine)

directory structure, 186

projection space, 35

projective texture mapping, 436-456

occlusion, 444-445

projective texture coordinates, 438-439

projective texture-mapping shader, 439-442

reverse projection, 443-444

ProxyModel class, 378

PVS (potentially visible set) rendering, 532

Q-R

quadtrees, 531

quaternions, 486

rasterizer stage (Direct3D Graphics Pipeline), 18-19

reflect() function, 152

reflection

Blinn-Phong, 111-114

Phong reflection model, 105-111

reflection mapping, 149-154

Render panel (FX Composer), 51-52

render states, 63-64

render target views, 396

render targets, 392-396

rendering, 1

forward rendering, 543

optimizing

hardware instancing, 535-542

object sorting, 532

occlusion culling, 532

shader optimization, 533-535

view frustum culling, 530-531

shaders, 2

rendering engine

application startup, 193-194

data driven engine architecture, 550-552

final project settings, 192-193

Game class, header file, 200-201

game loop, 195-199

initialization, 199

time-related information, 196-199

Game project, linking libraries, 190-191

include directories, 189-190

project build order, 188-189

project creation, 187

project setup, directory structure, 186

RenderMonkey, 48

Reset() method, 275

retrieving skinned model’s bind pose, 491-492

reverse projection, 443-444

rewriting HelloShaders effect for C-style structs, 68-70

rigging, 470

right-handed coordinate systems, 24-25

rotating directional lights, 382-383

rotation matrix, 33

row-major order, 30

RTTI (Runtime Type Information), customizing, 237-239

S

Sample() method, 79

samplers, 78-79

SamplerState filtering options (TextureMapping.fx), 85

sampling

Gaussian blurring sample offsets and weights, initializing, 415-416

percentage closer filtering, 460-465

texture cubes, 144

scalars, 24

scaling transformations, 31-32

scenes, post-processing, 391

full-screen quad component, 396-401

render targets, 392-396

Select HLSL FX Template dialog box (FX Composer), 60

semantics, 62

sepia filters, 407

serialization, 317

ServiceContainer class, 266-267

adding to Game class, 267-268

SetBlurAmount() method, 415

SetMaterial() method, 397

SH (spherical harmonic) lighting, 544

shaders, 2, 59

authoring tools, 48

BasicEffect shader, 342

material, creating, 357-361

compute shaders, 545-549

threads, 545

constants, 62

AmbientColor shader constant, 94-95

debugging, 54-55

deferred shading, 543-544

full-screen distortion shader, 425-426

Gaussian blurring shader, 411-413

geometry shaders, 18

demo, 504-506

point sprite shaders, 499-506

primitive IDs, 507

processing primitives, 498

grayscale shader, 401-403

HelloShaders effect

constant buffers, 62

effect files, 62

output, 67

render states, 63-64

rewriting for C-style structs, 68-70

techniques, 66-67

vertex shader, 64-65

masking distortion shader, 427-431

optimizing, 533-535

pixel shaders, 19

ambient lighting pixel shader, 95

Blinn-Phong effect, 112

diffuse lighting pixel shader, 102-103

environment mapping effect, 152

fog effect, 157

multiple point lights effect, 136-137

normal mapping effect, 177

Phong effect, 109-111

point light pixel shader, 120

skybox effect, 147

spotlight pixel shader, 129

programmable shaders, 8

projective texture-mapping shader, 439-442

shadow-mapping shader, 456-459

tessellation shaders, 507-509

vertex shader

diffuse lighting vertex shader, 102

displacement mapping effect, 180

environment mapping effect, 152

fog effect, 157

multiple point lights effect, 136-137

normal mapping effect, 177

Phong effect, 109

point light vertex shader, 120

spotlight vertex shader, 129

vertex shader stage (Direct3D Graphics Pipeline), 16

vertex shaders, skybox effect, 147

shadow acne, 456

shadow mapping, 435-436, 456-466

depth maps

creating, 446-452

occlusion testing, 453-456

percentage closer filtering, 460-465

projective texture mapping, 436-456

occlusion, 444-445

projective texture coordinates, 438-439

projective texture-mapping shader, 439-442

reverse projection, 443-444

slope-scaled depth biasing, 465-466

shadow-mapping shaders, 456-459

Silicon Graphics Inc., 9

skeletal animation, 469

animated models, importing, 476-489

animation rendering, 489-495

bind pose, retrieving, 491

hierarchical transformations, 470

skinning, 472-476

skinning, 472-476

Skybox class, 366-368

skybox effect, output, 147-148

skyboxes, 145-148

material, creating, 364-366

Skybox.fx, 145-147

slope-scaled depth biasing, 456, 465-466

bias, calculating, 465-466

software services, 265-268

ServiceContainer class, 266-267

specialized Game class, creating, 228-230

specular highlights, 105-114

Blinn-Phong, 111-114

Phong reflection model, 105-111

spherical billboarding, 499-502

Spotlight.fx

output, 129

preamble, 129

spotlights, 124-129

demo, 386

SpriteBatch class, 243-247

SpriteFont class, 243-247

SSAO (screen-space ambient occlusion), 544

stencil testing, 20

storing vectors, 36

subtracting

matrices, 28

vectors, 25

surface normals, 102

normal mapping, 170-177

swap chain, creating, 210-214

T

tangent space, 171-173

Technique class, 347-348

techniques

HelloShaders effect, 66-67

multiple point lights effect, 137

tessellation

demo, 518-520

displacing tessellated vertices, 520-523

dynamic levels of detail, 524-527

tessellation shaders, 507-509

tessellation stages (Direct3D Graphics Pipeline), 16-18, 512

texels, minification, 83

text file formats, 316

texture coordinates, 79-81

addressing modes, 86-88

border address mode, 88

clamp address mode, 87-88

mirror address mode, 87

wrap address mode, 86

texture cubes, 142-144

creating, 142-144

environment mapping, 149-154

sampling, 144

skyboxes, 145-148

texture file formats, 46

texture filtering, 81-85

magnification

anisotropic filtering, 83

linear interpolation, 82-83

point filtering, 82

minification, 83

mipmaps, 84-85

SamplerState filtering options (TextureMapping.fx), 85

texture mapping, 74-75, 334-339

DirectX texture coordinates, 74

effect, creating, 75-81

output, 81

projective texture mapping, 436-456

samplers, 78-79

texture coordinates, 79-81

addressing modes, 86-88

TextureMapping.fx, SamplerState filtering options, 85

TextureModelDemo class, 335-339

Textures panel (FX Composer), 52

TGA (Targa), 46

threads, 545

time-related information

game loop, 196-199

GameClock.cpp file, 198-199

transformations

hierarchical transformations, 470

homogeneous coordinates, 31

quaternions, 486

rotating, 33

scaling, 31-32

translating, 32-33

translating transformations, 32-33

transparency mapping effect, 165-166

TransparencyMapping.fx, 161-165

transposing matrices, 29

triangle, rendering for “Hello, Rendering” application, 297-304

triangle list, 14

TriangleDemo class, 286-287

U

UAVs (unordered access views), 547

UDK (Unreal Development Kit), 550

Unity game engine, 550

UpdateGameTime() method, 196

UpdateProjectionMatrix() method, 276

UpdateViewMatrix() method, 276

updating WinMain() function for RenderingGame class, 230-232

V

Variable class, 350-352

vectors, 24-27

adding and subtracting, 25

coordinate systems, 24-25

cross product, 27

DirectXMath, 36

dot product, 26-27

length of, 26

tangent space, 171-173

vertex buffers, 10-11

vertex shader stage (Direct3D Graphics Pipeline), 16

vertex shaders, 64-65

diffuse lighting vertex shader, 102

displacement mapping effect, 180

environment mapping effect, 152

fog effect, 157

multiple point lights effect, 136-137

normal mapping effect, 177

Phong effect, 109

point light vertex shader, 120

skybox effect, 147

spotlight vertex shader, 129

vertices

displacing, 178

displacing tessellated vertices, 520-523

meshes, 320-321

point sprite shaders, 499-506

view frustum, 270, 530

view space, 34

viewports, 219

views

associating to output-merger stage, 218

render target views, 396

UAVs, 547

Visual Studio, 44-46

Visual Studio Graphics Debugger, 53-55

W

websites, companion website for this book, 4

WIC (Windows Imaging Components), 46

windows, initializing, 199-201

Windows 7, 8

Windows SDK, 44-45

Windows Vista, 8

WinMain() function, 194

updating for RenderingGame class, 230-232

world space, 34

wrap address mode, 86

X-Y-Z

XBox, 8

XBox 360, 8

XML, 550-551

z-culling, 532

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.174.111