# GETTING THE MOST OUT OF VE RTICES in Word Generator Data Matrix ECC200 in Word GETTING THE MOST OUT OF VE RTICES

CHAPTER 5 GETTING THE MOST OUT OF VE RTICES
Making Data Matrix 2d Barcode In None
Using Barcode creator for Word Control to generate, create ECC200 image in Office Word applications.
www.OnBarcode.com
Generating Data Matrix ECC200 In None
Using Barcode generation for Word Control to generate, create ECC200 image in Office Word applications.
www.OnBarcode.com
float2 deviations = 0; deviations += derivatives.x*xWaveDir0; deviations += derivatives.y*xWaveDir1; deviations += derivatives.z*xWaveDir2; deviations += derivatives.w*xWaveDir3; float3 Normal = float3(-deviations.x, 1, -deviations.y); Vertices with almost 0 deviation will obtain (0,1,0) as normal, while vertices on slopes of high, short waves will have a normal that is pointing mostly into the direction of this wave.
UCC.EAN - 128 Drawer In None
Using Barcode generator for Office Word Control to generate, create GS1-128 image in Word applications.
www.OnBarcode.com
UPC A Generator In None
Using Barcode printer for Microsoft Word Control to generate, create Universal Product Code version A image in Word applications.
www.OnBarcode.com
Vertex Shader: Tangent-to-World Matrix Creation
Encoding PDF-417 2d Barcode In None
Using Barcode encoder for Microsoft Word Control to generate, create PDF417 image in Office Word applications.
www.OnBarcode.com
Creating ANSI/AIM Code 128 In None
Using Barcode creator for Microsoft Word Control to generate, create Code128 image in Office Word applications.
www.OnBarcode.com
When you use the normal generated in the previous section to add lighting to your ocean, it will be shaded just nicely. However, your waves will be looking a bit dull, because they don t have the fine detail of real water. To add this fine detail, you ll bump map the normal vector in each pixel of your ocean water. Before you can do any bump mapping in your pixel shader, you need to pass it the correct Tangent-to-World matrix. As explained in recipe 5-16, the rows of this matrix are the normal, binormal, and tangent vectors. Now that you already know the normal vector, go on and define the tangent and binormal vectors as well: float3 Binormal = float3(1, deviations.x, 0); float3 Tangent = float3(0, deviations.y, 1); The three vectors should be perpendicular to each other. Because you have deviated the normal from the (0,1,0) vector, you should also deviate the binormal from the (1,0,0) vector and the tangent from the (0,0,1) vector, by pulling them up or down. Once you know the three base vectors of your tangent space, it s easy to define the Tangent-to-World matrix, as explained in recipe 5-16: float3x3 tangentToObject; tangentToObject[0] = normalize(Binormal); tangentToObject[1] = normalize(Tangent); tangentToObject[2] = normalize(Normal); float3x3 tangentToWorld = mul(tangentToObject, xWorld); Output.TTW = tangentToWorld; Output.TexCoord = inTexCoord+xTime/50.0f*float2(-1,0); return Output; You pass the Tangent-to-World matrix to the pixel shader, as well as the texture coordinate that is required to sample at the right position from the bump map.
ANSI/AIM Code 39 Maker In None
Using Barcode generator for Office Word Control to generate, create ANSI/AIM Code 39 image in Office Word applications.
www.OnBarcode.com
Create Planet In None
Using Barcode creator for Microsoft Word Control to generate, create USPS Confirm Service Barcode image in Office Word applications.
www.OnBarcode.com
CHAPTER 5 GETTING THE MOST OUT OF VERTICES
Make DataMatrix In Objective-C
Using Barcode encoder for iPhone Control to generate, create Data Matrix 2d barcode image in iPhone applications.
www.OnBarcode.com
Creating Data Matrix 2d Barcode In None
Using Barcode encoder for Excel Control to generate, create Data Matrix image in Excel applications.
www.OnBarcode.com
Pixel Shader: Bump Mapping
Draw ANSI/AIM Code 39 In .NET
Using Barcode maker for ASP.NET Control to generate, create Code 3/9 image in ASP.NET applications.
www.OnBarcode.com
Drawing PDF-417 2d Barcode In Java
Using Barcode printer for Java Control to generate, create PDF 417 image in Java applications.
www.OnBarcode.com
In each pixel, you will deviate the normal to add the illusion of small ripples on the water. If you used one bump map for your whole ocean, you would easily see the pattern of your bump map in the final result. Therefore, in each pixel you will sample the bump map at three different coordinates and average the result. Remember that a color is always defined within the [0,1] region, so you subtract 0.5 from each color to bring them to the [ 0.5,0.5] region. Bringing them to the [ 1,1] region (the range of XYZ coordinates for a normal) will be done in the next step. float3 bumpColor1 = tex2D(BumpMapSampler, xTexStretch*PSIn.TexCoord)-0.5f; float3 bumpColor2 = tex2D(BumpMapSampler, xTexStretch*1.8*PSIn.TexCoord.yx)-0.5f; float3 bumpColor3 = tex2D(BumpMapSampler, xTexStretch*3.1*PSIn.TexCoord)-0.5f; float3 normalT = bumpColor1 + bumpColor2 + bumpColor3; The three texture coordinates are different, because they are multiplied by a different factor. The XY coordinates of the second texture coordinate have even been changed. In the end, all three deviations are summed together. This direction should be normalized, but before doing so, you have the opportunity to scale the bump mapping effect. In a bump map, the blue color component corresponds to the default normal direction, while the red and green components indicate the amount of deviation into the binormal or tangent direction. So if you increase/decrease the red and blue colors, you increase/decrease the deviation and thus the bump-mapping effect! normalT.rg *= xBumpStrength; normalT = normalize(normalT); float3 normalW = mul(normalT, PSIn.TTW); The obtained direction is normalized and transformed into world space. You end up with the normal defined in world space, allowing you to compare it to other directions defined in world space.
Print Quick Response Code In Java
Using Barcode printer for Java Control to generate, create Quick Response Code image in Java applications.
www.OnBarcode.com
Read ANSI/AIM Code 39 In VB.NET
Using Barcode decoder for Visual Studio .NET Control to read, scan read, scan image in .NET framework applications.
www.OnBarcode.com
Pixel Shader: Reflections
Barcode Scanner In None
Using Barcode reader for Software Control to read, scan read, scan image in Software applications.
www.OnBarcode.com
PDF 417 Generation In VS .NET
Using Barcode printer for .NET Control to generate, create PDF417 image in Visual Studio .NET applications.
www.OnBarcode.com
Now that you know the normal vector, defined in world coordinates, for each pixel, you could add correct lighting to your water. However, to make things a bit more realistic, you re going to add reflection to the water first. Because the reflective color will be sampled from the skybox, you ll need a direction to sample the skybox from (see recipe 2-8). You can find this direction by mirroring the eye vector, which is the vector coming from the camera going toward the pixel, over the normal vector, as shown in Figure 5-34.
Draw PDF417 In Java
Using Barcode creator for Android Control to generate, create PDF417 image in Android applications.
www.OnBarcode.com
GS1 - 13 Drawer In Java
Using Barcode creation for Java Control to generate, create UPC - 13 image in Java applications.
www.OnBarcode.com
Creating EAN / UCC - 13 In Java
Using Barcode creation for Java Control to generate, create EAN-13 Supplement 5 image in Java applications.
www.OnBarcode.com
Paint UPCA In Visual Studio .NET
Using Barcode printer for ASP.NET Control to generate, create UPC-A Supplement 5 image in ASP.NET applications.
www.OnBarcode.com
Copyright © OnBarcode.com . All rights reserved.