status – week 277
DESCRIPTION
Status – Week 277. Victor Moya. Lightning. Diffuse Lightning. Light Sources. Specular Lightning. Emission. Gouraud Shading. Phong Shading. Bump Mapping. OpenGL Lightning. Light Sources. Ambient Light. Directional Light Sources Infinite light source (parallel rays). No attenuation. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/1.jpg)
Status – Week Status – Week 277277
Victor MoyaVictor Moya
![Page 2: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/2.jpg)
LightningLightning
Diffuse Lightning.Diffuse Lightning. Light Sources.Light Sources. Specular Lightning.Specular Lightning. Emission.Emission. Gouraud Shading.Gouraud Shading. Phong Shading.Phong Shading. Bump Mapping.Bump Mapping. OpenGL Lightning.OpenGL Lightning.
![Page 3: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/3.jpg)
Light SourcesLight Sources Ambient Light.Ambient Light. Directional Light SourcesDirectional Light Sources
Infinite light source (parallel rays).Infinite light source (parallel rays). No attenuation.No attenuation.
Point Light Sources.Point Light Sources. All directions.All directions. Attenuation.Attenuation.
Spot Light Sources.Spot Light Sources. Cone of light.Cone of light. Attenuation.Attenuation.
Kc, Kl and Kq are constant, linear and quadratic attenuation values.Kc, Kl and Kq are constant, linear and quadratic attenuation values.U: Direction of the spot light.U: Direction of the spot light.L: Unit direction vector from surface point to light spot.L: Unit direction vector from surface point to light spot.
dKKKC
qlc2
1
dKKK
ULC
qlc2
}0,max{
![Page 4: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/4.jpg)
Diffuse LightingDiffuse Lighting
A: Ambient lightA: Ambient lightT: Texture sample.T: Texture sample.D: Surface diffuse reflection color.D: Surface diffuse reflection color.Ci: Intensity of the i light at the surface point.Ci: Intensity of the i light at the surface point.N: Normal vector of the surface.N: Normal vector of the surface.Li: Unit direction vector to the light source I.Li: Unit direction vector to the light source I.
n
i
NLiCiDTDTAdiffuseK1
}0,max{
![Page 5: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/5.jpg)
Specular LightingSpecular Lighting
S: Surface specular color.S: Surface specular color.Ci: Intensity of the incident light.Ci: Intensity of the incident light.m: specular exponent (larger, sharper hightlight).m: specular exponent (larger, sharper hightlight).G: Gloss map sample.G: Gloss map sample.N: Normal vector at the surface.N: Normal vector at the surface.L: Unit direction to light vector.L: Unit direction to light vector.Hi: Halfway vector (V + L).Hi: Halfway vector (V + L).V: Unit direction to viewer vector.V: Unit direction to viewer vector.
)0(}0,max{1
NLCiSGspecular NHiKmn
i
![Page 6: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/6.jpg)
EmissionEmission
KKemissionemission = EM = EM
E: Surface emission color.E: Surface emission color.
M: Emission map sample.M: Emission map sample.
![Page 7: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/7.jpg)
Gouraud ShadingGouraud Shading
Lighting is calculated at each vertex Lighting is calculated at each vertex and interpolated across the triangle.and interpolated across the triangle.
K = KK = Kprimaryprimary * T * T11 * T * T22 * ... * T * ... * Tkk + K + Ksecondarysecondary
Ti : Color samples for one of k texture maps.Ti : Color samples for one of k texture maps.* : One of several available texture combination operations* : One of several available texture combination operations
n
i
NLiCiDDAEprimaryK1
}0,max{
)0(secondary }0,max{1
NLCiS NHiKmn
i
![Page 8: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/8.jpg)
Phong ShadingPhong Shading
Interpolate vertex normals and evaluates the Interpolate vertex normals and evaluates the lighting formula at each pixel.lighting formula at each pixel.
K = Kemission + Kdiffuse + KspecularK = Kemission + Kdiffuse + Kspecular
Problem: interpolation of normals produce non Problem: interpolation of normals produce non unit vectors. Use normalization cube maps.unit vectors. Use normalization cube maps.
![Page 9: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/9.jpg)
Flat, Gouraud and Phong Flat, Gouraud and Phong ShadingShading
![Page 10: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/10.jpg)
Bump MappingBump Mapping A hardware implementation of Phong A hardware implementation of Phong
Shading.Shading. Uses a texture map to perturb the normal Uses a texture map to perturb the normal
vector at each pixel (not interpolated).vector at each pixel (not interpolated). Bump Map: 2D arrays of 3D vectors. Bump Map: 2D arrays of 3D vectors.
Direction of the normal vector relative to Direction of the normal vector relative to the interpolated normal vector at the pixel.the interpolated normal vector at the pixel.
Uses tangent space for storing the Uses tangent space for storing the perturbations. Object to tanget space perturbations. Object to tanget space transformation (3x3 matrix multiplication).transformation (3x3 matrix multiplication).
![Page 11: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/11.jpg)
Bump MappingBump Mapping
![Page 12: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/12.jpg)
OpenGL LightingOpenGL Lighting
Calculated at vertex, interpolated Calculated at vertex, interpolated inside the triangle (Gouraud).inside the triangle (Gouraud).
Bump mapping supported by Bump mapping supported by propietary extensions.propietary extensions.
Pixel Shaders for programmable Pixel Shaders for programmable per pixel lighting.per pixel lighting.
![Page 13: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/13.jpg)
OpenGL LightingOpenGL Lighting
![Page 14: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/14.jpg)
OpenGL LightingOpenGL Lighting
![Page 15: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/15.jpg)
OpenGL LightingOpenGL Lighting
![Page 16: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/16.jpg)
Hardware PipelineHardware Pipeline
Command Processor.Command Processor. Vertex Shader.Vertex Shader. Rasterization.Rasterization. Pixel Shader.Pixel Shader. Fragment Operations and Tests.Fragment Operations and Tests.
![Page 17: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/17.jpg)
Com
man
dPr
oces
sor
Ver
tex
Sha
der
Rast
eriza
tion
Pix
elS
hade
r
Frag
men
tO
pera
tions
and
Test
s
vertex data (16x4D):1 pos1 weight1 normal2 colors1 fog coord8 texture coords
Vertex Output (15x4D):1 Homogeneous pos4 colors1 fog coord1 point size8 texture coord
Fragment 10x4D)2 colors8 texture coords
Fragment Coords
Fragment Output (10x4D)1 color1 depth coordinate
Fragment Coords
FramebufferCPU
Memory
Vertex Programand Constants
OGLStateFragment
Program andConstants
TextureMemory
OGLState
OGLState
Color BufferZBufferStencil Buffer
![Page 18: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/18.jpg)
Command ProcessorCommand Processor
Recieves commands from the CPU Recieves commands from the CPU (driver, OpenGL/Direct3D).(driver, OpenGL/Direct3D).
Fetches data from memory: vertex Fetches data from memory: vertex data (DMA).data (DMA).
Updates and stores Updates and stores OpenGL/Direct3D render state.OpenGL/Direct3D render state.
![Page 19: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/19.jpg)
Vertex ShaderVertex Shader
Transforms and lits vertex streams.Transforms and lits vertex streams. Vertex shader program (from GPU Vertex shader program (from GPU
memory?).memory?). Vertex shader constans (from GPU Vertex shader constans (from GPU
memory?).memory?). Inputs: vertex data 16x4D Inputs: vertex data 16x4D Outputs: vertex data 14x4DOutputs: vertex data 14x4D
![Page 20: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/20.jpg)
RasterizationRasterization Includes:Includes:
ClippingClipping Divide by wDivide by w Affine transformAffine transform Primitive assemblyPrimitive assembly CullingCulling SetupSetup Fragment generation.Fragment generation.
Recieves vertexs and produces fragments.Recieves vertexs and produces fragments. Uses OpenGL/Direct3D render state.Uses OpenGL/Direct3D render state. Input: vertex (15x4D).Input: vertex (15x4D). Output: fragments (10x4D).Output: fragments (10x4D).
![Page 21: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/21.jpg)
Pixel ShaderPixel Shader Shades fragments: calculate texture address, Shades fragments: calculate texture address,
read texture, color operations.read texture, color operations. Pixel Shader program and constants (from Pixel Shader program and constants (from
GPU memory?).GPU memory?). Texture read: TMU (texture sample, filter Texture read: TMU (texture sample, filter
unit, texture cache, GPU memory).unit, texture cache, GPU memory). Optional:Optional:
Modify depth coordinate (1 Z output).Modify depth coordinate (1 Z output). Render to texture (up to 4 colors outputs).Render to texture (up to 4 colors outputs).
Input: fragment (12x4D).Input: fragment (12x4D). Output: color (2x4D).Output: color (2x4D).
![Page 22: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/22.jpg)
Fragment Operations and Fragment Operations and TestsTests
Includes (OpenGL):Includes (OpenGL): Fog.Fog. Color Sum.Color Sum. Ownership Test.Ownership Test. Scissor Test.Scissor Test. Alpha Test.Alpha Test. Stencil Test.Stencil Test. Depth Test.Depth Test. Blend.Blend. Logic Operation.Logic Operation.
Accesses framebuffer (GPU memory). Updates framebuffer.Accesses framebuffer (GPU memory). Updates framebuffer. Framebuffer: color, Z and stencil.Framebuffer: color, Z and stencil. OpenGL/Direct3D render state defines operations.OpenGL/Direct3D render state defines operations. Input: color.Input: color. Output: FB updated.Output: FB updated.
![Page 23: Status – Week 277](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813566550346895d9cccaf/html5/thumbnails/23.jpg)
OthersOthers AntialiasingAntialiasing
Anisotropic Filtering (textures).Anisotropic Filtering (textures). Line Antialiasing.Line Antialiasing. Edge AntialiasingEdge Antialiasing Full Screen Antialiasing (FSAA):Full Screen Antialiasing (FSAA):
Supersampling.Supersampling. MultiSampling.MultiSampling.
TBDR: Tile Based Deferred Rendering (STMicro TBDR: Tile Based Deferred Rendering (STMicro PowerVR).PowerVR).
HOS (High Order Surfaces): N-Patches, Bezier, HOS (High Order Surfaces): N-Patches, Bezier, Displacement Mapping, TruForm, Tesselation.Displacement Mapping, TruForm, Tesselation.