Status – Week 278 Victor Moya. Lightning Diffuse Lightning. Diffuse Lightning. Light Sources. Light Sources. Specular Lightning. Specular Lightning. Emission.

Slides:



Advertisements
Similar presentations
Fragment level programmability in OpenGL Evan Hart
Advertisements

Lecture 8 Transparency, Mirroring
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
Virtual Realism TEXTURE MAPPING. The Quest for Visual Realism.
Normal Map Compression with ATI 3Dc™ Jonathan Zarge ATI Research Inc.
Frame Buffer Postprocessing Effects in DOUBLE-S.T.E.A.L (Wreckless)
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Pipeline.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
University of Sulaimani - School of Science - Computer Dept.
Computer Graphic Creator: Mohsen Asghari Session 2 Fall 2014.
CSL 859: Advanced Computer Graphics Dept of Computer Sc. & Engg. IIT Delhi.
03/16/2009Dinesh Manocha, COMP770 Texturing Surface’s texture: its look & feel Graphics: a process that takes a surface and modifies its appearance using.
Texture Mapping. Texturing  process that modifies the appearance of each point on a surface using an image or function  any aspect of appearance can.
Week 7 - Monday.  What did we talk about last time?  Specular shading  Aliasing and antialiasing.
CS-378: Game Technology Lecture #9: More Mapping Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
Lecture 6: 3D Rendering Pipeline (III) Prof. Hsien-Hsin Sean Lee School of Electrical and Computer Engineering Georgia Institute of Technology.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
9/25/2001CS 638, Fall 2001 Today Shadow Volume Algorithms Vertex and Pixel Shaders.
The Programmable Graphics Hardware Pipeline Doug James Asst. Professor CS & Robotics.
IN4151 Introduction 3D graphics 1 Introduction 3D Computer Graphics part 1 Projective display Viewing pipeline Graphics hardware Image-based rendering.
Shading Languages GeForce3, DirectX 8 Michael Oswald.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
Status – Week 231 Victor Moya. Summary Primitive Assembly Primitive Assembly Clipping triangle rejection. Clipping triangle rejection. Rasterization.
Status – Week 277 Victor Moya.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
ARB Fragment Program in GPULib. Summary Fragment program arquitecture New instructions.  Emulating instructions not supported directly New Required GL.
3D Graphic Hardware Pipeline Victor Moya. Index 3D Graphic Pipeline Overview. 3D Graphic Pipeline Overview. Geometry. Geometry. Rasterization. Rasterization.
Status – Week 279 Victor Moya. Rasterization Setup triangles (calculate slope values). Setup triangles (calculate slope values). Fill triangle: Interpolate.
Status – Week 283 Victor Moya. 3D Graphics Pipeline Akeley & Hanrahan course. Akeley & Hanrahan course. Fixed vs Programmable. Fixed vs Programmable.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
Computer Graphics Inf4/MSc Computer Graphics Lecture 11 Texture Mapping.
Shadows Computer Graphics. Shadows Shadows Extended light sources produce penumbras In real-time, we only use point light sources –Extended light sources.
Computer Graphics Mirror and Shadows
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
University of Illinois at Chicago Electronic Visualization Laboratory (EVL) CS 426 Intro to 3D Computer Graphics © 2003, 2004, 2005 Jason Leigh Electronic.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 Using Vertex Shader in DirectX 8.1 강 신 진
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
1 Texture Mapping ©Anthony Steed Overview n Texture mapping Inverse and Forward Mapping Bilinear interpolation Perspective correction n Mipmapping.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Textures and shadows  Generation  Mipmap  Texture coordinates,
Texture Mapping. Scope Buffers Buffers Various of graphics image Various of graphics image Texture mapping Texture mapping.
Mapping method Texture Mapping Environmental mapping (sphere mapping) (cube mapping)
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS Textures.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Programmable Pipelines Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
Review of OpenGL Basics
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
Lab: Vertex Shading Chris Wynn Ken Hurley. Objective Hands-On vertex shader programming Start with simple programs … Part 1: Textured-Lit Teapot.
Computing & Information Sciences Kansas State University Lecture 12 of 42CIS 636/736: (Introduction to) Computer Graphics CIS 636/736 Computer Graphics.
CSCI 440.  So far we have learned how to  build shapes  create movement  change views  add simple lights  But, our objects still look very cartoonish.
09/25/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Shadows Stage 2 outline.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
Pixel Shader  Based on nVIDIA’s GF3/4 architecture  Texture shader + register combiner texture unit 0texture program texture unit 1texture program texture.
Texturing Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology.
Week 7 - Monday CS361.
Programmable Pipelines
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Introduction to Programmable Hardware
Illumination and Shading
RADEON™ 9700 Architecture and 3D Performance
Texture Mapping 고려대학교 컴퓨터 그래픽스 연구실.
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Presentation transcript:

Status – Week 278 Victor Moya

Lightning 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.

Light Sources Ambient Light. Ambient Light. Directional Light Sources Directional 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. U: Direction of the spot light. L: Unit direction vector from surface point to light spot.

Diffuse Lighting A: Ambient light T: Texture sample. D: Surface diffuse reflection color. Ci: Intensity of the i light at the surface point. N: Normal vector of the surface. Li: Unit direction vector to the light source I.

Specular Lighting S: Surface specular color. Ci: Intensity of the incident light. m: specular exponent (larger, sharper hightlight). G: Gloss map sample. N: Normal vector at the surface. L: Unit direction to light vector. Hi: Halfway vector (V + L). V: Unit direction to viewer vector.

Emission K emission = EM E: Surface emission color. M: Emission map sample.

Gouraud Shading Lighting is calculated at each vertex and interpolated across the triangle. Lighting is calculated at each vertex and interpolated across the triangle. K = K primary * T 1 * T 2 *... * T k + K secondary Ti : Color samples for one of k texture maps. * : One of several available texture combination operations

Phong Shading Interpolate vertex normals and evaluates the lighting formula at each pixel. Interpolate vertex normals and evaluates the lighting formula at each pixel. K = Kemission + Kdiffuse + Kspecular Problem: interpolation of normals produce non unit vectors. Use normalization cube maps. Problem: interpolation of normals produce non unit vectors. Use normalization cube maps.

Flat, Gouraud and Phong Shading

Bump Mapping A hardware implementation of Phong Shading. A hardware implementation of Phong Shading. Uses a texture map to perturb the normal vector at each pixel (not interpolated). Uses a texture map to perturb the normal vector at each pixel (not interpolated). Bump Map: 2D arrays of 3D vectors. Direction of the normal vector relative to the interpolated normal vector at the pixel. Bump Map: 2D arrays of 3D vectors. Direction of the normal vector relative to the interpolated normal vector at the pixel. Uses tangent space for storing the perturbations. Object to tanget space transformation (3x3 matrix multiplication). Uses tangent space for storing the perturbations. Object to tanget space transformation (3x3 matrix multiplication).

Bump Mapping

OpenGL Lighting Calculated at vertex, interpolated inside the triangle (Gouraud). Calculated at vertex, interpolated inside the triangle (Gouraud). Bump mapping supported by propietary extensions. Bump mapping supported by propietary extensions. Pixel Shaders for programmable per pixel lighting. Pixel Shaders for programmable per pixel lighting.

OpenGL Lighting

Rasterization/Fragments Calculate the final color value of the fragment: Calculate the final color value of the fragment: Texture Read. Texture Read. Color sum. Color sum. Fog. Fog.

OpenGL Rasterization

Per fragment (tests) Determine the vissibility of the fragment: Determine the vissibility of the fragment: Ownership test. Ownership test. Scissor test. Scissor test. Alpha test. Alpha test. Stencil test. Stencil test. Depth Buffer test. Depth Buffer test. Final pixel color: Final pixel color: Blending. Blending. Dithering. Dithering. Logic Operation. Logic Operation.

OpenGL per fragment

Textures Map from screen space coordinates to object space to texture space. Map from screen space coordinates to object space to texture space. Texture formats: 1D, 2D, 3D and cubemap. Texture formats: 1D, 2D, 3D and cubemap. Texture read: take a number of texture samples (texels), filter them and combine the result with other texture results or original pixel color. Texture read: take a number of texture samples (texels), filter them and combine the result with other texture results or original pixel color. Size pixel > Size texel => minification Size pixel > Size texel => minification Size pixel = Size texel => copy Size pixel = Size texel => copy Size pixel magnification Size pixel magnification

Level of Detail LOD is calculated to determine the mipmap level to use and to determine if minification or magnification. LOD is calculated to determine the mipmap level to use and to determine if minification or magnification.

Level of Detail Select sampling mode using parameter C (can be 0 or 0.5): Select sampling mode using parameter C (can be 0 or 0.5): If λ > c => minification If λ > c => minification If λ magnification If λ magnification Scaler factor: Scaler factor:

Minification Minification: Minification: Nearest: the texel in the center of the texture coordinates is read. Nearest: the texel in the center of the texture coordinates is read. Linear: interpolation (bilinear). Linear: interpolation (bilinear).

Minification(2)

Mipmapping A texture is formed by a piramidal data structure of max(n,m) images from 2 n x2 m to 1x1 pixels. A texture is formed by a piramidal data structure of max(n,m) images from 2 n x2 m to 1x1 pixels. The proper image is accessed using the LOD parameter. The proper image is accessed using the LOD parameter.

Mipmapping Use calculated LOD for deciding which level to read from. Use calculated LOD for deciding which level to read from. Filtering: Filtering: NEAREST_MIPMAP_NEAREST and LINEAR_MIPMAP_NEAREST NEAREST_MIPMAP_NEAREST and LINEAR_MIPMAP_NEAREST NEAREST_MIPMAP_LINEAR and LINEAR_MIPMAP_LINEAR (trilinear filtering) NEAREST_MIPMAP_LINEAR and LINEAR_MIPMAP_LINEAR (trilinear filtering)

Magnification LINEAR of NEAREST: similar to mignification. LINEAR of NEAREST: similar to mignification.

Cubemap A cubemap texture is composed by 6 2D texture/images for each of the 6 faces of a cube. A cubemap texture is composed by 6 2D texture/images for each of the 6 faces of a cube. The texture coordinates (s, t, r) are used as a direction vector from the center of the cube to one of the sides. The texture coordinates (s, t, r) are used as a direction vector from the center of the cube to one of the sides. The coordinate with the greatest absolute value is used to determine which face to access. The coordinate with the greatest absolute value is used to determine which face to access. The other two coordinates are recalculated to acess the texture in that face as normal 2D texture. The other two coordinates are recalculated to acess the texture in that face as normal 2D texture.

Cubemap

Texture environment and texture functions OpenGL 1.4, basic support for register combiners (NV_texture_shaders for GF3 and beyond, ATI_fragment_shader for R200). OpenGL 1.4, basic support for register combiners (NV_texture_shaders for GF3 and beyond, ATI_fragment_shader for R200). Defines source arguments and functions to combine textures and original color. Defines source arguments and functions to combine textures and original color. Functions: REPLACE, MODULATE, ADD, ADD_SIGNED, INTERPOLATE, SUBSTRACT, DOT3_RGB, DOT3_RGBA. Functions: REPLACE, MODULATE, ADD, ADD_SIGNED, INTERPOLATE, SUBSTRACT, DOT3_RGB, DOT3_RGBA. Color channels (RGB) and alpha channel (A) are calculated (and configured) separately in parallel. Color channels (RGB) and alpha channel (A) are calculated (and configured) separately in parallel.

Shadow map First pass: write depth buffer to a texture from the point of view of a light. First pass: write depth buffer to a texture from the point of view of a light. Second pass: compare z value in texture with current z value (eye). Use stencil buffer. Second pass: compare z value in texture with current z value (eye). Use stencil buffer. In OpenGL 1.4 use texture internal format DEPT_COMPONENT and texture comparision mode: TEXTURE_COMPARE_MODE = COMPARE_R_TO_TEXTURE. TEXTURE_COMPARE_FUNC = {LEQUAL, GEQUAL}. In OpenGL 1.4 use texture internal format DEPT_COMPONENT and texture comparision mode: TEXTURE_COMPARE_MODE = COMPARE_R_TO_TEXTURE. TEXTURE_COMPARE_FUNC = {LEQUAL, GEQUAL}.

Projected textures Divide by fourth component (s, t, r, q) and access the texture (s/q, t/q, r/q). Divide by fourth component (s, t, r, q) and access the texture (s/q, t/q, r/q).

Color Sum C = Cpri + Csec. C = Cpri + Csec. Combines diffuse and specular color. Combines diffuse and specular color.

Fog Calculate blending factor f (3 modes): Calculate blending factor f (3 modes): c: FRAGMENT_DEPTH (eye to fragment distance), FOG_COORDINATE (interpolated). c: FRAGMENT_DEPTH (eye to fragment distance), FOG_COORDINATE (interpolated). d: FOG_DENSITY d: FOG_DENSITY s: FOG_START s: FOG_START e: FOG_END. e: FOG_END. Final color: Final color:

Ownership Test Current pixel (x, y) is owned by the current OGL context? Current pixel (x, y) is owned by the current OGL context?

Scissor Test void Scissor(int right, int bottom, sizei width, sizei height). void Scissor(int right, int bottom, sizei width, sizei height). If left <= x < left + width and bottom <= y < bottom + height the test passes. If left <= x < left + width and bottom <= y < bottom + height the test passes. Otherwisee fails and fragment is discarded. Otherwisee fails and fragment is discarded.

Alpha Test void AlphaFunc(enum func, clampf ref) void AlphaFunc(enum func, clampf ref) Compares reference value with current fragment alpha (A) componed with a function (NEVER, ALWAYS, LESS, LEQUAL, EQUAL, GEQUAL, GREATER, NOTEQUAL). Compares reference value with current fragment alpha (A) componed with a function (NEVER, ALWAYS, LESS, LEQUAL, EQUAL, GEQUAL, GREATER, NOTEQUAL). If test fails fragment is discarded. If test fails fragment is discarded.

Stencil Test void StencilFunc(enum func, int ref, uint mask). void StencilFunc(enum func, int ref, uint mask). Void StencilOp(enum sfail, dpfail, enum dppass). Void StencilOp(enum sfail, dpfail, enum dppass). Stencil Buffer: a n-bit (uses to be 8-bit) buffer per pixel in the framebuffer. Stencil Buffer: a n-bit (uses to be 8-bit) buffer per pixel in the framebuffer. Tests the current stencil buffer value for the fragment against the reference value, applying a binary mask and using a test function. Tests the current stencil buffer value for the fragment against the reference value, applying a binary mask and using a test function. If the function fails the fragment is discarded and sfail function executed over the stencil entry. If the function fails the fragment is discarded and sfail function executed over the stencil entry. The stencil buffer is also updated after depth test. dpfail function is executed when depth test fails and dppass when depth test pass. The stencil buffer is also updated after depth test. dpfail function is executed when depth test fails and dppass when depth test pass.

Stencil Test Test functions: NEVER, ALWAYS, LESS, LEQUAL, GEQUAL, GREATER, NOTEQUAL. Test functions: NEVER, ALWAYS, LESS, LEQUAL, GEQUAL, GREATER, NOTEQUAL. Update functions: KEEP, ZERO, REPLACE, INCR, DECR, INVERT, INCR_WRAP, DECR_WRAP. Update functions: KEEP, ZERO, REPLACE, INCR, DECR, INVERT, INCR_WRAP, DECR_WRAP. Applications: Applications: Shadows volumes. Shadows volumes. Shadow maps. Shadow maps. Others? Others?

Depth Buffer Test void DepthFunc(enum func) void DepthFunc(enum func) Test functions (fragment z value with framebuffer z value): Test functions (fragment z value with framebuffer z value): NEVER NEVER ALWAYS ALWAYS LESS LESS LEQUAL LEQUAL EQUAL EQUAL GREATER GREATER GEQUAL GEQUAL NOTEQUAL NOTEQUAL If test fails fragment is discarded. If test fails fragment is discarded. If enabled stencil update functions are called. If enabled stencil update functions are called.

Blending Combine fragment color with framebuffer color. Combine fragment color with framebuffer color. Blend equations: Blend equations: FUNC_ADD: C =Cs*S + Cd*D FUNC_ADD: C =Cs*S + Cd*D FUNC_SUBTRACT: C = Cs*S + Cd* FUNC_SUBTRACT: C = Cs*S + Cd* FUNC_REVERSE_SUBTRACT: C = Cd*D – Cs*S FUNC_REVERSE_SUBTRACT: C = Cd*D – Cs*S MIN: C = min(Cs, Cd) MIN: C = min(Cs, Cd) MA: C = max(Cs, CD) MA: C = max(Cs, CD) Blend functions: weigth factors for the blend equation. Blend functions: weigth factors for the blend equation. Blend color: Cc constant color. Blend color: Cc constant color.

Dithering Approximate a fragment higher fragment precission color to a lower precission framebuffer color. Approximate a fragment higher fragment precission color to a lower precission framebuffer color. Used? Used?

Logical Operation From an early OGL extension. From an early OGL extension. Operations: Operations:

Pixel Shaders Pixel Shader 1.0, 1.1, 1.2, 1.3: Program register combiners stage in NVidia GeForce3 (NV20) and GeForce4 (NV25). Supported in DX8 and NV_texture_shader/NV_texture_shader2. Pixel Shader 1.0, 1.1, 1.2, 1.3: Program register combiners stage in NVidia GeForce3 (NV20) and GeForce4 (NV25). Supported in DX8 and NV_texture_shader/NV_texture_shader2. Pixel Shader 1.4: ATI R200 (Radeon 8500), extra features but also based in register combiner hardware. Supported in DX8.1 and ATI_fragment_shader. Pixel Shader 1.4: ATI R200 (Radeon 8500), extra features but also based in register combiner hardware. Supported in DX8.1 and ATI_fragment_shader.

Pixel Shaders Pixel Shader 2.0: Programmable shaders (like vertex shaders) but without branching. To be supported in DX9 and ARB_fragment_shader. Pixel Shader 2.0: Programmable shaders (like vertex shaders) but without branching. To be supported in DX9 and ARB_fragment_shader. Pixel Shader 3.0: Extended pixel shaders, unknown features (branching?, NV30 pixel shaders?). To be supported in DX9 or DX9.1. Pixel Shader 3.0: Extended pixel shaders, unknown features (branching?, NV30 pixel shaders?). To be supported in DX9 or DX9.1.

Pixel Shader Pixel Shader 1.4: Pixel Shader 1.4: 8 constants. 8 constants. Two phases divided in 4 parts: Two phases divided in 4 parts: Optional Sampling (Texture read): up to 6 textures. Optional Sampling (Texture read): up to 6 textures. Address Shader: up to 8 instructions. Address Shader: up to 8 instructions. Optional Sampling: up to 6 textures, can be dependent reads. Optional Sampling: up to 6 textures, can be dependent reads. Color Shader: up to 8 instructions. Color Shader: up to 8 instructions.

Pixel Shaders PS2 pixel shaders are true processors (?). Based in Vertex Shaders but without branching. PS2 pixel shaders are true processors (?). Based in Vertex Shaders but without branching. Replaces (or complements) the register combiner stage (NV30). Replaces (or complements) the register combiner stage (NV30). Most instructions of the vertex shader are present in the pixel shader (but branches). Most instructions of the vertex shader are present in the pixel shader (but branches). Conditional codes, swizzle, negate, absolute value, mask, conditional mask (NV30). Conditional codes, swizzle, negate, absolute value, mask, conditional mask (NV30).

R300 Pixel Shader

Pixel Shader Inputs: Inputs: 1 position (x, y, z, 1/w) 1 position (x, y, z, 1/w) 2 colors (4 compenent vector RGBA) 2 colors (4 compenent vector RGBA) 8 texture coordinates 8 texture coordinates 1 fog coordinate. 1 fog coordinate. Outputs: Outputs: fragment color (RGBA), optionally new fragment depth. fragment color (RGBA), optionally new fragment depth. In NV30/R300 also to 4 RGBA textures. In NV30/R300 also to 4 RGBA textures.

Pixel Shader Temporaries: Temporaries: NV30: bit registers (64 16-bit registers). NV30: bit registers (64 16-bit registers). R300: 12 temporary registers R300: 12 temporary registers Constants: Constants: NV30: unlimited? (maybe memory?). Accessed by ‘name’ (label). Also literal constants (embedded). NV30: unlimited? (maybe memory?). Accessed by ‘name’ (label). Also literal constants (embedded). R300: 32 constants. R300: 32 constants. DX9 (PS 2.0): 16 samplers and 8 texture coordinates. DX9 (PS 2.0): 16 samplers and 8 texture coordinates.

Pixel Shader R300: 64 ALU instructions, 32 texture instructions, 4 levels of dependent read. Up to 96 instructions (?). R300: 64 ALU instructions, 32 texture instructions, 4 levels of dependent read. Up to 96 instructions (?). R300: R300: ALU instructions: ADD, MOV, MUL, MAD, DP3, DP4, FRAC, RCP, RSP, EXD, LOG, CMP. ALU instructions: ADD, MOV, MUL, MAD, DP3, DP4, FRAC, RCP, RSP, EXD, LOG, CMP. Texture: TEXLD, TEXLDP, TEXLDBIAS, TEXKILL. Texture: TEXLD, TEXLDP, TEXLDBIAS, TEXKILL.

Pixel Shader NV30: up to 1024 instructions. NV30: up to 1024 instructions. Additional instructions (NV30): Additional instructions (NV30): Texture read: TEX, TEXP, TXD. Texture read: TEX, TEXP, TXD. Partial derivarives: DDX, DDY. Partial derivarives: DDX, DDY. Pack/Unpack: PK2H, PK2US, PK4B, PK4UB, PK4UBG, UP2H, UP2US, UP4B, UP4UB, UP4UBG. Pack/Unpack: PK2H, PK2US, PK4B, PK4UB, PK4UBG, UP2H, UP2US, UP4B, UP4UB, UP4UBG. Fragment conditional kill: KIL. Fragment conditional kill: KIL. Extra math: LRP (linear interpolation), X2D (2D coordinate transform), RFL (reflection), POW (exponentation). Extra math: LRP (linear interpolation), X2D (2D coordinate transform), RFL (reflection), POW (exponentation).

Others Antialiasing Antialiasing Anisotropic Filtering (textures). Anisotropic Filtering (textures). Line Antialiasing. Line Antialiasing. Edge Antialiasing Edge Antialiasing Full Screen Antialiasing (FSA). Full Screen Antialiasing (FSA). Supersampling. Supersampling. MultiSampling. MultiSampling.