Home
FX Composer User Guide
Contents
1. Q Packages keep textures as part of the package Projects reference textures Q Packages reference a binary geometry chunk for optimal storage Projects embed geometry as base64 encoded Q Packages store fx files separately Projects store fx files as part of the XML FX Composer Package Files The fxcomposer package files are actually zip archives that contain the following components Q An XML scene material description SceneGraph xm1 Q A binary component for mesh animation data Binary bin Q fx files and textures The project file tries to be the best of both worlds an easy to parse human readable XML file format with a binary chunk for data that doesn t store well as text the XML refers to this data via an offset Package files are ideal for shipping a complete scene with effects and textures in a single binary They are also compressed and store geometry optimally so they save space The package files are not as good if you have a lot of packages all using the same texture maps the result is duplicated media being stored in each package 21 Miscellaneous Hints and Tidbits 4 1 2 Projects fxproj Projects are standalone XML files describing an entire FX Composer scene and its geometry Geometry data is stored as base64 encoded binary at various nodes in the XML Project files are a great way to store your scene if you want to hand modify the file or read it from an external tool They also save file
2. GeoPipe Disc This shader has general efficiency rating of 50 Passes 2 Effective Passes 2 00 IS Frame Face of R register 2 08 Frame Hair IS Frame L Eye 08 Frame L Forearm lt 1 Gy Log Tasks Shader Perf Ready Ln361 Colig car lt Figure 1 1 FX Composer Main Window EverQuest r content courtesy Sony Online Entertainment Inc EverQuest is a registered trademark of Sony Computer Entertainment America Inc c 2004 Sony Computer Entertainment America Inc All rights reserved DA 01057 001 v04 2 April 2005 Getting Started with FX Composer System Requirements NVIDIA GeForce 3 or later An NVIDIA GeForce FX or more recent GPU is recommended Q Microsoft DirectX 9 0 SDK April 2005 Requires d3dx9_25 dll specifically Windows 2000 or XP 1 1 References and Recommended Reading Q Microsoft DirectX web site http www microsoft com windows directx default aspx Q NVIDIA Developer Relations web site http developer nvidia com 1 GPU Gems Programming Techniques Tips and Tricks for Real Time Graphics http developer nvidia com object qpu gems home htmi DA 01057 001 v04 3 April 2005 a Chapter 2 Using FX Composer FX Composer allows the user to configure their development environment in several ways The editing area is always displayed in the main window and cannot be closed or undocked from the main window Each optional element of the Ul
3. User Guide DU 01057 001 v04 April 2005 Table of Contents Chapter L About FX Composer miii 1 1 1 System Requirements rararrarnrrarnrrannararnrrensrnnrnrrensrnnnnerensrnnnsrnnrsnnarsrnersnnsrsrnersrnsssnnern 3 1 2 References and Recommended Reading 1 0 000 0 3 Chapter 2 Using FX Composer siii 4 ak PANO oe AA AA AA AA ee 4 2 1 1 uc E T E T 7 2 1 2 Tv 10 213 PrOD SA SG PANG o e o OE O E ANA 11 2 1 4 Shader Pen 11 EEE 13 2 1 5 EP 13 2 1 6 Scene PN ET 17 2 NNN 18 Chapter 3 Full Scene Effect Sian 20 Chapter 4 Miscellaneous Hints and Tidbits a arararannnnnvnnnvnnnnnnnnnnnnnnnnnnnnvnvnvnnnnnnnnvnnnvnvnn 21 4 1 FX Composer Projects and Packages 00 2na 21 4 1 1 PA COMposer Package PIES vo oros AA are esperabas 21 4 1 2 Nr 22 AO MD 22 4 2 Configuration FIl65 0 aaa aan 23 e LA NADAAN Bi OOOO EE 24 4 4 Semantics amp Annotations EE EEE E EEE E HEHEHE EEE 24 Tutorial 1 Measuring and Managing Shader Performance with FX Composer 25 Sources of Performance Information Aae 25 Try It Yourself The PerfTutor fx Shader rurararararanansnsnnrnrnrnanererersrsrsnsrsrsrnrnsnerersrerersnsnne 26 LOOKING atthe Shader Perf Pee 28 e OA EEE 28 Shader rasos EEE VE EE 29 TWeakMda e COS TA 29 MESEN ee 30 MOVNO FONAN EEE EEE EE 30 DA 01057 001_v04 April 2005 Tutorial 2 Optimizing a Bump Mapping Shader s s snnavavavavnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnvnr
4. 10 00 R Regs Used 2 R Regs Max Index 0 based 1 Pixel throughput assuming 1 cyde texture lookup 560 00 MF js Shader performance using all FP32 Cydes 22 00 R Regs Used 4 R Regs Max Index 0 based 3 Pixel throughput assuming 1 cyde texture lookup 254 55 MP s a ee ee eeeeeeseeee recesses PS Instructions 30 p 20 defc6 0 1 0 0 dd pp t0 xy dd pptlxyz dd pp t2 xyz dd pp t5 xyz dd 2d s0 Kal Ef Log Gi Ta ES All supported GPUs are listed are listed in the drop down menu The Scene panel displays the current scene and has the usual controls for manipulating scenes FX Composer includes GeoPipe plug ins that support importing scenes stored in nvb and x files both of which can contain skinning information Use the File gt Import Scene command to load a scene Select an object in the scene and apply a different material to it to change its appearance Note that the light source remains the same only the material of the surface changes DA 01057 001 v04 April 2005 Pixel Shader GeForce 6800 GT Shader performance using all FP16 gt 13 Using FX Composer Frame 0 ma Frame 0 Perspective Perspective Materials Select a material and click Apply The material is applied to the selected object in the Scene panel You can also Right Click on the material and sel
5. 8 Apply To Selection 8 Categorize 5 Change Effect 8 Channels 11 2l Close Material 8 Color Selection Tear off Panel 13 Compile 6 configuration files 24 21 debugging features 1 defaultscene fx 24 Dimensions 8 dock or undock panels 4 Dolly Scene 5 17 editing area 19 features 1 FX Composer version 1 fxcomposer_config xml 24 fxedit xml 24 fxmapping xml 24 HLSL FX files 1 icons application toolbar icons panels 5 DA 01057 001_v04 April 2005 Import Scene 14 main window 2 Materials panel 7 Materials Panel Applly to Scene 8 Apply to Selection 8 Change Effects 8 Close Material 8 Dimensions 8 New Material 8 Object 10 Open Material 8 Properties 10 Render Options 8 ScriptExecute Sorter 10 Materials panel display options 8 materials appling 14 materials open 7 mesh sections 25 Microsoft DirectX 9 0 1 Move an Object 17 New Material 8 Zoom button 5 Objects 10 Open File 6 Open Material 8 open materials 7 Pan Scene 5 17 35 panel description 4 Materials 7 Text Edit 19 Textures panel 11 tool icons 5 panel icons 5 panel names 4 panel dockable 4 performance information 26 plugins inf 24 Properties 10 Properties panel 12 Render Options 8 rotate scene 16 Rotate Scene 5 rotate scene or object 7 DA 01057 001 v04 April 2005 Optimizing Tangent space Bump Mapping Shader Save 5 Scale an Object 17 Scene G
6. Sol OOM Za 0 EN o Pr FX Composer Shader Performance ToO0lS oocococcocococcocconoconconnonoconcnnnonoronrornneroncononnonos Optimizing Your Shader One Step at a Time 00107111 DA 01057 001 v04 April 2005 List of Figures Figure 1 1 FX Composer Main WINDOW anan LG GIG DAA AKA 2 Figure 2 1 Application Toolbar 3 23 6 Figure 2 2 Using the Properties Panel cccccccscsecseeeseceeeeseeeeeeeeeeeseetseaeeueeeeeaeeuteeeaneetetags 11 Figure 2 3 Color Selection Tear off Panel 10 10101 3 12 List of Tables Table 2 1 ladki oe 5 Table 2 2 Description of Application Toolbar ICONS an 6 el AA 21 DA 01057 001_v04 ii April 2005 DA 01057 001 v04 April 2005 Chapter 1 About FX Composer FX Composer 1 7 empowers developers to create high performance shaders in an integrated development environment with real time preview and optimization features available only from NVIDIA FX Composer was designed with the goal of making shader development and optimization easier for programmers while providing an intuitive user interface for artists customizing shaders in a particular scene FX Composer supports all the standard features you would expect in an integrated development environment for high performance shaders E a a a a Sophisticated text editing with Intellisense and syntax highlighting Work directly with HLSL FX files creating multiple techniques passes Use
7. CPU Q Replace complex math functions with texture look ups Complex expressions such as lighting functions can be encoded into textures and then accessed using a single texture lookup This sacrifices some interactivity the parameters can not be changed without rebuilding the texture but is almost always faster on current hardware The FX runtime includes a virtual machine that allows you to write functions in HLSL that can be used to generate textures very easily Q Use half precision where possible Half precision is almost always sufficient for representing colors and unit length vectors and requires half the register storage Vectors representing distances in world coordinates will usually need to use full float precision Remember that there are an infinite number of real numbers but half precision floats can only represent 65536 of them Q Use lower pixel shader versions if possible GeForce FX series GPUs include support for the fixed point type and instructions used in Direct3D Pixel Shader v1 4 and below If your shader can be expressed in a lower version pixel shader it may run faster than the equivalent operations in pixel shader v2 0 and FX Composer supports all of these shader profiles 32 Optimizing Tangent space Bump Mapping Shader FX Composer Shader Performance Tools The Shader Perf panel in FX Composer makes it easy to see how much modifying your shader effects performance It is based on an architectural simulator of
8. RSQ MUL Step 3 In this step we replace the lighting math with a texture lookup We use the same Phong to build a texture that encodes the lighting function In the shader we can then replace the function call with a 2D texture lookup based on N L and N H Step 4 This is identical to step 2 but we have changed all the variables to half precision This reduces the number of R registers required to 2 Step 5 In the final step we convert the shader to pixel shader version 1 1 Obviously this will not be possible with all shaders but for this example it illustrates the performance benefits The table below shows the relative performance of each optimization step Frames per second numbers were measured on a NV35 with a full screen window Ster FPS Instrs Cycles R regs Comment Original shader Replace math with texture lookup Change floats to half precision Convert to P51 1 Working through all four optimization steps in this sample shader yields a 2x performance improvement measured by FPS The largest benefits come from replacing math with texture lookups and using half precision By following these same simple rules and making use of the performance tools in FX Composer you can ensure that your shaders will run as fast possible and provide the best end user experience on all hardware 34 Alphabetize 5 animation scene 16 Application Toolbar Icons 6 Apply Material 5 apply materials 14 Apply To Scene
9. is displayed in a separate panel that can be moved hidden resized docked to the main window or free floating any where on the desktop FX Composer supports systems with multiple displays allowing free floating panels to be used on a second monitor and can be configured to display any combination of the following panels Log panel Error panel Properties panel Materials panel Textures panel Shader Perf panel Scene panel OUCDCODUODO O Scene Graph panel 2 1 Panels To display the various panels use the View gt Panels and select the panels to be displayed in your work area Each panel is adjustable and can be dragged Build Animation Tools Window away from its docked position to float freely standard Taalbar above the main window Double clicking the Status Bar title bar of a dockable panel will also dock or Log Panel Error Panel undock it Properties Panel kal iy Materials Panel ng Several panels have buttons at the top associated with their major functions Table 1 lists these buttons and provides a description of each These buttons are only displayed in panels where they can be used Textures Panel ShaderPerf Panel Scene Panel Scene Graph Panel The main window of FX Composer is shown in Figure 1 1 DA 01057 001 v04 4 April 2005 Using FX Composer Where applicable a toolbar is located at the top of each window panel The toolbar contains only those icons
10. it does mean is that this shader could be tweaked to run even faster on NV36 by adjusting the code to use the NV36 s greater floating point resources For such a small pixel shader the code would need careful tweaking For a larger shader the compiler is clever enough to adjust things on the fly for maximum performance Efficiency numbers rate the shader against what the maximum possible throughput of the specific GPU might be a shader perfectly fitted to the NV36 could potentially run three times faster than this one 28 Measuring and Managing Shader Performance with FX Composer Shader Passes Tweaking DA 01057 001 v04 April 2005 Let s switch to a more complex example Select OnePass and the Pixel Shader The compiled code for NV30 is now much longer 48 instructions At the bottom we ll see oCheduling This shader has a general efficiency rating of 100 Passes 68 Effective Passes 0 00 GER deg STUENR 4 Sirenita poro mile ro Ehe NN Scheduling This shader has a general efficiency rating of 49 There are opportunities to change a MOV instruction executed on OS SED CEO amp MULL l y I ase ome On for ee on COME FEE Passes 40 Effective Passes 0 00 GER recio ter 4 While the efficiency rating of resource usage on the NV36 has dropped look at the number of passes On NV30 this shader would require 68 cycles through the shader core to execute but on NV36 with its improved floating poi
11. previous generations of hardware there was usually a one to one correspondence between pixel shader assembly code and the instructions that got executed by the hardware One could often assume that each instruction would take a single clock cycle to execute As GPUs have become more complex and more like CPUs in many ways the gap between the assembly language abstraction and the hardware has become larger Modern GPUs include multiple pixel pipelines each of which may include multiple math units and texture units This means that the GPU can potentially execute multiple math and texture instructions in a single cycle The ordering of instructions can affect the extent to which these execution units are used optionally Performance is also affected by register usage The GPU processes groups of pixels in parallel but only has a finite amount of register storage Therefore using more registers means that fewer pixels can be processed at a time and performance is reduced NVIDIA GPUs support 16 bit half precision floating point numbers which can help to improve performance by reducing register storage requirements Data dependencies between instructions can also affect performance In addition these performance characteristics can vary widely between different GPUs Using high level shading languages such as HLSL adds another layer of abstraction which can further obscure performance issues Fortunately technology has come to the rescue NVID
12. s own characteristics Q The technique used in the Scene panel is the one specified in the Properties panel for this shader not the technique specified in the Shader Perf panel Q While the Shader Perf panel can evaluate many different GPUs the Scene panel shows you the value for just one the GPU installed in your system Q When Draw Always is engaged FX Composer is using the CPU to the maximum When Draw Always is turned off FX Composer only draws the scene when something changes If you re multitasking running Microsoft s Visual Studio or a game engine simultaneously with FX Composer you may see resource fighting Turn off Draw Always to get best performance from external applications Moving Forward Now you can experiment with setting other PerfT utor options checking the characteristics of other GPUs editing the code and more importantly applying these same lessons to your own fx shaders Have fun DA 01057 001 v04 30 April 2005 Tutorial 2 Optimizing a Bump Mapping Shader Building on what you learned in Tutorial 1 this tutorial provides some additional techniques you can use in performance tuning your shaders using a simple tangent space bump mapping example You can find the accompanying sample code in the following location MEDIA fxcomposer perf_bumpplastic fxcomposer project Shader Optimization DA 01057 001 v04 Optimizing pixel shaders for modern graphics processors is a non trivial task In
13. size since they store references to texture files not the actual media The disadvantage of Projects is that you need to ship the textures with the project 4 1 3 XML Data Both projects and packages have similar XML tree elements The main difference is that geometry data is stored in a separate binary chunk for packages but it is embedded in the XML for projects because they are intended to be standalone As far as the XML content is concerned Q The first line or so contain the file version and the build version of FX Composer used to save the file Q Next there is the project specific search paths J Then the scene graph with materials hierarchy parameter data etc Q Next a list of FX Composer objects plug ins required to successfully display this package Q Last in the file are the original paths of the media objects in the fxcomposer compressed zip file so that FX Composer knows where they were originally stored Full paths to all media and fx files are always stored in the FX Composer package ot project When a project or package is opened FX Composer looks for the original drive copies If the original drive copies are not found FX Composer loads the archived version into a MediaCache directory underneath the main binary If This behavior is configurable under Filed Settings DA 01057 001 v04 22 April 2005 Miscellaneous Hints and Tidbits 4 2 Configuration Files The FX Composer data directory has a fe
14. that instruction counts can be deceptive 29 Measuring and Managing Shader Performance with FX Composer For NV30 still at 100 efficient use of the GPU the number of shader passes the count of clock cycles needed to execute this shader has declined from 68 to 60 a 13 improvement So even though the shader itself is onger the execution of the shader on NV30 is faster The story for NV36 is even stronger The GPU efficiency rises slightly and the number of passes drops from 40 to 30 a 33 speed increase for this high end GPU Frames per Second For GPUs that the performance analyzer recognizes an FPS counter can be displayed in the Render panel To see the counter turn on the Tools3 Options3 Draw Always option and then either wiggle the model in the render window using the transform tools e g Rotate Scene gt or press the green Run Animation button you can use Ctrl G Ctrl H to toggle animation on off A few things to remember when using this frame counter Q The frame counter is showing you the speed of FX Composer in this window on this model It is not showing you the frame rate of your model in your game engine The frame counter is there as a means for you to evaluate relative performance between shader methods within FX Composer on your computer with your GPU not as an absolute counter of efficiency and speed Use the Shader Perf panel numbers to create those estimates and calibrate them against your game engine
15. the FX files you create with FX Composer directly in your application Convenient artist friendly graphical editing of shader properties and some attributes Supports Microsoft DirectX 9 0 standard HLSL semantics amp annotations Provides a plug in architecture supporting import of custom scene data so you can view your shaders on your own models with lighting animation etc FX Composer also provides developers with visual debugging and advanced performance tuning features previously unavailable a OUO O O Practical SDK enabling custom importers exporters and scene modifiers Powerful scripting support for automation and pipeline integration Visible preview of intermediate generated textures Capture of pre calculated functions to texture look up table Interactive compiler shows where the problems are jump directly to problems in your HLSL source code Simulated performance results for the entire family of NVIDIA GPUs Empirical performance metrics such as GPU cycle count and pixel through put Getting Started with FX Composer FX Composer consists of several panels that can be docked in the main window as shown in Figure 1 1 or arranged outside of the main window to a more convenient place i NVIDIA FX Composer Glow fx File Edit Yiew Build Animation Tools Window Help aid EMB o a AAAA MERE Materials X laterial fx Glow fx Scene AlphaGlow fx wood fx seespaces fx scene tiles Fx M
16. the GeForce FX shader hardware and can simulate hardware from the GeForce FX 5200 to the FX 5950 It displays four impottant statistics J PS Instructions The number of Direct3D pixel shader instructions used Q Cycles The number of clocks cycles the optimized shader will take to execute on the selected hardware Note that this is often lower than the number of instructions since multiple instructions can be executed per clock cycle O R registers This is how many full precision R registers the optimized shader uses This is affected by how many temporary variables your shader uses and can have a big effect on performance Note that two half precision registers can fit in a single R register so if you are using half precision double this number to get the actual number of registers used Q GPU utilization This is a measure of how well the shader utilizes the GPU s math and texture functional units Sometimes rearranging your code or switching to half precision will allow the optimizer to make better use of these units Optimizing Your Shader One Step at a Time DA 01057 001_v04 April 2005 Once you have loaded the perf bumpplastic fxcomposer project click on the BumpPlasticPerf fx material to make it the active material and look in the Properties panel Each step in optimizing the shader is implemented as a separate technique You can switch between the techniques by selecting them from the Techniques pull down menu i
17. 0 0 00 0 00 0 00 0 00 1 00 0 w rldmmverseTranepose 1 00 0 00 0 00 0 00 0 001 000 vigkyl nverse 1 00 0 00 0 00 0 00 0 001 000 ightDir Default Spot Lig CEE specular power 30 Technique textured Important Changing the values in the matrix editor or the properties panel does not change the default values specified in the source code It does change the current values being used to render the scene lightDir1 1 0 5 1 1 For more information on Semantics and Annotations supported by FX Composer click on Help gt Semantics amp Annotations DA 01057 001 v04 April 2005 Figure 2 2 Using the Properties Panel 11 Using FX Composer Vectors and matrices also get special treatment in the Properties panel When defined with the proper semantics and annotations as shown in Figure 2 2 a matrix editor tear off panel provides users with a convenient way to experiment with different values Note that clicking on the scene graph icon next to lightDir causes FX Composer to display the assembly language calculations performed for this light in a pop up window FX Composer supports special color selection tear off panels for editing color information Figure 2 3 Semantics and annotations can be used to tell FX Composer that a variable is used to store color information and provide a descriptive name for the Properties panel For more information on Semantics and Annotations Properties x supporte
18. A dh EE new material MoBlur deepColor bicubic check3Dx DiffuseBump q px string description Basic Vertex Lighting With a Textur f floatix4 worldViewFroj WorlaviewProjection floatix4 world World floatix4 vorldinverseTranspose WorldInverseTranspose floatix4 viewInverse ViewInverse texture diffuseTexture Diffuse 1 lt string ResourceName default color dds re float4 Direction string 09 parameter string Sp gt 1 0f Scene Connection Default Spot Light DIRECTION v float4 lightd lt string Ull Parameter lightDir string Ob floatd lightDir DIRECTION gt 1 0f 1 sting OBJECT DIRECTIONALLIGHT string SPACE WORLD float lights gt 6 503623e 001 6 5146448 001 3 9067018 001 1 000000e 0 z Calculation load float r1 Spot Lighti Default Spot Light Object Direction load floatdsd r2 Light Transform Curent Transform mul dir 03 11 re normalize r3 r3 mov Hoatd 0 r3 string UI If you click on lightDir a pop up window is displayed showing how this object is connected to the scene and instructions that will be passed to the renderer EX Properties x new material ul E diffuzeT exture C Program Files MY D Corpor er ma mi light mbient co00000 materialDifhuse Jet dri matenal5 pecular E description Basic vertex Lighting with a Text oldyiewProy 1 73 0 00 0 00 0 00 0 00 1 730 orld 1 0
19. IA s Unified Compiler which is built into the graphics driver takes high level pixel and vertex shader assembly code and generates optimized micro code for the target GPU The Shader Perf panel in FX Composer simulates the Unified Compiler to allow you to analyze the performance of your shaders and report how they will execute on different GPUs 31 DA 01057 001 v04 April 2005 Optimizing Tangent space Bump Mapping Shader Despite the automated optimization in the Unified Compiler there are still a few simple rules that you can follow to ensure that your shaders run as fast as possible on all hardware Q Optimize your algorithms Premature optimization is the root of all evil Before attempting any of the lower level optimizations described below take a high level look at the shader and see if there is some way you could rearrange the code so that it that requires less work Perform calculations only as often as necessary Some calculations can be moved from the pixel shader to the vertex shader and the results passed to the pixel shader as texture coordinates A common example is calculating a view vector This varies linearly so can be calculated per vertex and interpolated Texture coordinate interpolation is not always free but this is almost always a performance win overall In a similar way sometimes calculations can be moved off the hardware completely For example multiplying a light color by a material color can be done on the
20. Material Open Material CtrlH 0 Change Effect Clone Material Close Material Render Options Dimensions ScriptExecuke Commands ScriptExecute Sorter Properties Object 2 1 1 1 Apply To Scene New Material Open Material Ctra Change Effect Clone Material Close Material Render Options Dimensions ScriptExecute Commands ScriptExecute Sorter Properties Object DA 01057 001 v04 April 2005 Using FX Composer Material Panel Display Options The display options are shown when you Right Click anywhere in the Materials Panel Apply To Selection Applies selected material to a selected object in the scene Apply To Scene Applies the selected scene material to the scene New Material Allows you to create a new material The new material is displayed in the Materials Panel Create Material vertex lighting no pixel shader Basic empty material Cancel Open Material Load a new FX file from disk Change Effect Chang the FX used to generate a material Close Material Closes the selected material Note that if that material will be removed from the scene even if it is in use Render Options Changes the render options on a the displayed materials Options are Wireframe and No Cull Dimensions This functions the same as the Zoom icon ot Selecting Dimensions changes the cursor to the Zoom icon Successive clicks enlarge the materials To reduce t
21. These options act the same as the icons on the tool bar You can turn 2 8 amp Be off or on the Red Green Blue and Alpha channels Source These options act the same as the icons on the toolbar Scene Functions the same as icon Channels SOUFCE Scene Material Functions the same as EN icon wo Material i H gt Dimensions F Dimensions These options act the same as the icons on the toolbar Zoom Functions the same as the 4 icon Clicking on the texture with this cursor enlarges the texture in the panel To Zoom out hold down the Shift key and click on the texture Actual Size Functions the same as the lan icon Displays textures at the actual size Save Saves textures DA 01057 001 v04 10 April 2005 2 1 3 Properties Panel Using FX Composer The Properties panel is used to view and change object propetties Itis primarily used for material properties however it can be used to view change shapes textures and other items in the scene graph such as light Table 1 1 on page 5 lists the functions of the toolbar icons The options displayed in the Properties panel are created by parsing through the current FX file and evaluating the HLSL semantics and annotations used to describe each variable For example a specular exponent might be declared as shown in Figure 2 2 defining how the variable should be displayed in the Properties panel Wo y Ap
22. ation Other company and product names may be trademarks of the respective companies with which they are associated Copyright 2004 2005 NVIDIA Corporation All rights reserved NVIDIA NVIDIA Corporation 2701 San Tomas Expressway Santa Clara CA 95050 www nvidia com
23. d by FX Composer click on plasticD Help gt Semantics amp Annotations kl de gt lt kd Colors FH Colors Light Color Ambient Light Color Surface Color specular power Standard Custom rer E 233223 eh feb Colors One EE i i 5 El L Bini O a a Cancel Current Click on the attribute to change the color Click Other to display the Standard and Custom color palettes CP Properties C4 Shader Perf DA 01057 001 v04 April 2005 Figure 2 3 Color Selection Tear off Panel 12 2 1 4 Shader Perf Panel The Shader Perf panel the tab is located next to the Properties panel tab displays chip scheduling information for your fx file The Shader Perf panel allows you to choose the technique the pass either pixel or vertex shader and the chip you want to profile Clicking on any material changes the data in the Shader Perf panel regardless if it is applied to a selection in the Scene panel FA GeForceFx I GeForceFx 5800 Ultra NY30 GeForceFs 5600 Ultra NY31 GeForceFs 5200 Ultra N34 GeForceFs 5900 Ultra N4351 GeForceFs 5700 Ultra NY36 ee ee ss 2 1 5 Scene Panel Using FX Composer Shader Perf Textured 7 p Target GeForce 6800 GT NV40 GT Unified Compiler v66 81 Cydes 12 00 R Regs Used 4 R Regs Max Index 0 based 3 Pixel throughput assuming 1 cyde texture lookup 466 67 MP s Cydes
24. define DO BUMP define DO GLOSSMAP define DO QUADRATIC define DO REFLECTION performance flags define USE NORMALIZATION CUBEMAP By default these flags are all commented out We ll change them later to see their effects on final shader performance DA 01057 001 v04 27 April 2005 Measuring and Managing Shader Performance with FX Composer Looking at the Shader Perf Panel Playing with the pulldowns Shader Perf panel you can select any of the available techniques within PerfTutor fx OnePass MultiPass AmbiOnly DirOnly PtOnly Select AmbiOnly the pass pO the only pass in this particular technique Pixel Shader and NV30 The display of the shader panel fills with NV30 specific information about this particular a deliberately very short pixel shader EPer EO Ec 7 dere ION KOO TUNE TOO mera nG El maa adi eG mer moe em mer COCO 160 end Scheduling This shader has a general efficiency rating of 100 Passes 3 Effective Passes 0 00 Ot A 2 GPU Efficiency DA 01057 001 v04 Switching the hardware profile to NV36 changes the lines at the bottom slightly Scheduling This shader has a general efficiency rating of 33 There are opportunities to change a MOV instruction executed on kl SKD to HOLI L TSMC On for CUA CUBE PRIS Passes 3 Effective Passes 0 00 OR reg Se NES What does this mean Will the shader run slower on the usually faster NV36 GPU Fortunately not what
25. ect Apply to Selection Apply To Selection Apply To Scene New Material Open Makerial Ciro Change Effect Clone Material Close Material Render Options j Dimensions k C4 Materials EF Scene Graph ScriptExecute Commands ScriptExecute Sorter Properties Object k DA 01057 001 v04 14 April 2005 Using FX Composer Use the tool icons in the Scene panel to manipulate objects and scenes Scene hoa Lar Eb Zoom Extents Dolly Scene Pan Scene Rotate Scene Scale Object Move Object Rotate Object Select Object EF Use the animation controls in the toolbar H to run the frames and see the animation associated with your scene Note that the frame displayed is shown on the left side of the window To move frame by frame use Animation Frame 0 Frame 33 in the application Perspective Perspective toolbar or F10 for a Next frame and F9 for Previous Frame Animation Tools 7 Window Next Frame Fid Previous Frame F3 Stop Ctrl H Run Chia Rotated Scene Frame 0 Frame 0 Perspective Ey Perspective j l DA 01057 001_v04 15 April 2005 Using FX Composer Dolly Scene Pan Scene Perspective Move an Object Scale an Object Frame 0 Perspective Note that turning on Tools gt Options gt Draw will always cause FPS to be displayed in the upper left DA 01057 001 v04 16 April 2005 2 1 6 Scene Graph Panel Using FX Composer T
26. er FX Composer does more than provide you with a way to view edit and test shaders on models and scenes By using FX Composer s performance tools and Shader Perf Panel display you can assess and modify the efficiency and performance of your shaders not just in general terms but even for running on various different specific GPUs In this brief tutorial we ll look at a sample shader file and make some changes to see how they affect the performance of that shader You will find the accompanying sample code in MEDIA fxcomposer tutorials perf_tutor fxcomposer project Sources of Performance Information DA 01057 001 v04 April 2005 FX Composer provides performance information through two major sources the Shader Perf panel and the Scene panel These panels are visible by default the Scene panel displays your model with the currently assigned shader s and the Shader Perf panel will be hidden under the Properties panel TES tap the Shader Perf tab to reveal it OnePass p Vertex Shader Both panels are dockable anywhere vertex Shader 255 255 Instructions 25 pr on screen ot can be their own free def c14 1 000000 0 000000 0 000000 0 000000 floating windows If you don t see HI v0 cl vi 3 these panels you can enable them EET from View Panels ShaderPerf mov rD xyz vO E panel to see them O eae dp4 oT2 x v2 c4 The Shader Perf panel contains a dp4 r2 x ro c7 ber kow th dp4 oT2 y v2 c5 dl a lt As e
27. he Scene Graph panel is used to browse through the current scene transform hierarchy and select objects You can use it to select items that wouldn t easily be available in the UI such as individual bone transforms etc It is also useful to see how a scene is built To use this window you can for example select GeoPipe Spot01 and then Right Click to display the GeoPipe properties in the Properties panel 1f not already displayed Properties Spot Light Spotl JE Diffuse Specular Ambient Esponent Umbra Penumbra Fallott Range Attenuation DA 01057 001_v04 April 2005 p 008000 p 0000 p o00000 1 000000 0 750149 0785398 0 000000 0 000000 0 00 0 00 0 00 Scene Graph Scene 3 42 Root Transform ME Default Camera Transform 0 Default Camera Transform 13 EE Fox Root Transform EA locatorl Transform Ea Hammer Left Transform 0 vwulcan hammer head L Transform 8 vwulcan hammer handle L Transform EE GroupOl Transform 0 vwulcan hammer handle Fi Transform GeoPipe Vulcan hammer handle Mesh 8 vwulcan hammer head R Transform GeoPipe Vulcan hammer head F Mesh SpotO01 Target Transform 0 spot01 Transform qt E Materials Cy Scene Graph 17 Using FX Composer 2 2 Editing Area The editing area contains the FX file code and is enabled with syntax highlighting keywords in colors It acts like the editor in Microsoft Visual Studio All Material f
28. he icons and their function and Figure 2 1 shows the toolbar k NVIDIA FX Composer Glow fx File Edit View Build Animation Tools Window Help a gt H Figure 2 1 Application Toolbar Table 2 2 Description of Application Toolbar Icons Toollcon Description o o Z oO ooo o Pg Open File Opens the browser to find a file CTRL 0 3 Save Saves a file CTRL S Cut Deleted or cut code from the fx file Shift Delete a Copy Copies highlighted text CTRL C Paste Be Pastes the last copied text CTRL V a Undo Undoes the last action ALT Backspace Cu Redo Redoes the last action CTRL Y WT Bookmarks Flags lines of code and skips quickly between them Ab Toggle apply delete Bookmark CTRL F2 Ab Go to Next Bookmark F2 x Ab Go to Previous Bookmark Shift F2 A Clear ALL Bookmarks Find Finds specific words in a file CTRL F Indent Un indent Indents and un indents lines of code Compile fx Compiles the code displayed in the Text Editor panel Note that the compiler stops at each instance of an error in the code and does not continue until the error is corrected Click the Compile key again to continue compiling CTRL F7 2 1 1 DA 01057 001 v04 April 2005 Materials Panel The Materials panel is a collection of 3D Materials Using FX Composer viewpotts displaying a real time preview of each matertal applied to a si
29. he materials hold down the Shift key and click with Zoom cursor ScriptExecute Commands Pecan TEGE Displays the Scene Commands Scene Calculation dialog with a list of ScriptT echnique Technique textured ScriptExecute commands used by the material DA 01057 001 v04 April 2005 Using FX Composer ScriptExecute Sorter Displays a window that allows you to define and sort the PreProcess Standard and PostProcess effects used in the current scene ScriptExecute Sorter Scene materials PreFrocess post passThru Standard volume o gt gt A PostFrocess post glowT railFP post corona Properties Shows the properties for the selected material in the Properties panel Planes Objects Allows you to change the primitive shape to which PlanezY materials are applied Note that the action is performed on all materials not just one Planexz Cvclide Cube Cylinder Teapot Spiral Torus Sphere 3DText Using FX Composer 2 1 2 Textures Panel The Textures panel displays the current textures for the selected material as well as any procedurally generated textures and render targets The Textures panel also enables visualization of cubemaps and normal maps The icons in the toolbar along the top are described in Table 1 1 on page 5 You can also Right click anywhere in the Textures panel to access a context menu with the same options as the toolbar Color Channels
30. iles opened are listed as tabs across the top of the panel to allow you to switch between files easily Use the scrollbars and bookmarks 44 to move through the file Viewer Diffuse Fx Glow fx Rainbow fx Iib x KARAKAKKRKKKAKAKKKKKAARAKNAKRAKRAKKAKKAKAKNAKRAKAAKAAKAAKAH float4x4 worldIT WorldInverseTranspose j float4x4 wvp WorldViewProjection float4x4 world World float4x4 viewInvTrans ViewInverseTranspose float4x4 view View string Category EffectsyYCrazy texture colors lt colors2 dds rap string Name string type gt texture swirl nik The editing area uses syntax highlighting to automatically color HLSL keywords and comments It also provides convenient intellisense SLL LIQ NAE VALLAL completion allowing you to select from a list of fillmodej EE i point supported keywords appropriate in the current NT Pare RE context For example you can type fillmode and lt Wea select from a list of options that are displayed Er si Every time you open a project or a material a tab is placed along the top of the editing area Clicking on the tab displays the source code in the editing area and the objects properties in the Properties panel To close a project or material click on the tab and then click the X box Close located at the far right viewer Diffuse fx MrTwisterCT fxc Mryiggle Fx tring description Wertex Shaded plastic using d
31. ireccional 1 DA 01057 001 v04 18 April 2005 Using FX Composer The editing area acts like a window in that you can cascade the files tile the files or open a new file window Use the Window option on the application tool bar to manipulate the FX file displays ools Window Help New Window KAR BA FE Bb Sascade plasticD 1 check3d DawnCostume ules Tile Mil me Hy pa A Arrange Icons rial ipi 1 new material 2 plasticD i1 wnCostume we 3 check3d PANA 4 DawnCostume PP en mf gt gt dd gt gt gt dd HEH 19 DA 01057 001 v04 April 2005 DA 01057 001 v04 April 2005 Full Scene Effects FX Composer suppotts the Microsoft DirectX Semantics and Annotations Specification DXSAS The custom scene commands supported in earlier versions of FX Composer have been deprecated Waiting for Chris M Text 20 4 1 4 1 1 DA 01057 001 v04 April 2005 Chapter 4 Miscellaneous Hints and Tidbits FX Composer Projects and Packages This section detail the difference between the two storage formats fxcomposer referred to as a package and fxproj referred to as a project The fxproj file format is new to FX Composer Both file formats describe a complete scene with shader texture amp geometry information The essential difference between the two formats is how the various components are stored Other differences are
32. l 2005 Miscellaneous Hints and Tidbits 4 3 Mesh Sections Both nvb and x have mesh sections But x has the concept of polygon attributes which mean that within a mesh section you can have different material properties Feach mesh section in a nvb file has its own material It s up to the FX Composer importer as to how it gets this data in Internally FX Composer has mesh sections and per polygon materials But the UI currently only exposes the mesh sections in the scene window you can also modify all materials in the Materials panel An FX Composer material refers to a fx file and a list of parameters for that fx file More than one material can refer to the same fx file with different parameters for each material In the future FX Composer will get better at manipulating these things 4 4 Semantics amp Annotations The Help files contain a link to a list of known semantics and annotations from the Microsoft specification The Supported column indicates values that FX Composer currently supports The FX Composer Only column indicates additional semantics annotations that are not part of the Microsoft specification but are supported by Show Tips FX Composer This list is continually updated About FX Composer Semantics amp Annotations Note that all semantics and annotations are case insensitive DA 01057 001 v04 24 April 2005 Tutorial 1 Measuring and Managing Shader Performance with FX Compos
33. mple shape with default scene material This allows you to visualize a material and see it applied in 3D The blue square in the upper left corner of the material indicates that it is a scene material which is applied to the entre scene The materials without the blue square are materials that are applied to individual objects or sub objects in the scene To open materials and scene materials use the File gt Open gt Material and select the material Use the Apply button k to apply the selected material to the selected object in a scene or to the entire scene You can also Right click on a material to access a list of actions and select Apply To Selection or Apply To Scene Use the Rotate button to spin the materials around and see the different effects The rotating action affects all materials in the panel but not the scene materials You can also Right click within the panel to access Materials panel display options in a context menu The menu allows you to apply a material to the current selection in the scene panel create new materials open or close existing materials select the geometric primitive to which the materials should be applied and set the display dimensions and rendermode Note The Materials panel renders all the previews it displays in real time and therefore incurs a performance cost To reduce the performance impact close the Materials panel Apply To Selection Apply To Scene Mew
34. n the properties panel By clicking on the Shader Perf panel and selecting Pixel shader from the pull down menu you can compare the performance of the different optimization steps The shader implements simple tangent space bump mapping with a color map using the Blinn Phong lighting model If you read through the BumpPlasticPert fx file you will see the section of HLSL code that corresponds to each technique The vertex shader is the same for each technique we only modify the pixel shader Step 1 The initial version of the shader BumpPlasticPS 0 uses math for the lighting calculation It calls a function Phong to calculate the Blinn Phong lighting model given the dot products between the normal vector light vector and half angle vector It uses float precision for everything Step 2 In this version of the shader we remove the code to normalize the normal vector N Since the normal is being read from a normal map we can 33 DA 01057 001 v04 April 2005 Optimizing Tangent space Bump Mapping Shader assume that it will be almost unit length apart from de normalization caused by linear texture filtering If you switch between step 1 and step 2 you might be able to notice a slight change in the appearance of the specular highlights Note that although this only reduces the number of instructions by one the NRM instruction it reduces the number of cycles by 2 because the NRM macro is expanded to several instructions DP3
35. n add ri x re xx C1O ann compiled DirectX 9 0 assembly do4 r2 y ro cB hd language instructions that are lg executed for your HLSL shader EPProperties C Shader Perf The pulldown menus at the top of the Shader Perf panel allow you to select each part of the selected HLSL FX shader the technique pass within that technique vertex or pixel shaders and for pixel shaders specific profiling based upon the GPU used DirectX 9 is smart enough when compiling to consider this aspect at runtime This last pulldown allows you to evaluate shader performance against a wide range of GPUs from low end consumer to the high end workstation to assess their specific problems and find their sweet spots 25 Measuring and Managing Shader Performance with FX Composer Performance analysis is presented in the main body of the Shader Perf panel first with an instruction count before the shader begins and then for pixel shaders with a report of its scheduling efficiency at the bottom of the listing The Scene panel can give you further assessment of the efficiency of your shader by displaying a frames per second number for the render This number will be visible for supported GPUs that is those with scheduling info available when Tools Options3 Draw Always is turned on Try It Yourself The PerfTutor fx Shader DA 01057 001 v04 April 2005 To try the Performance Tools yourself use a shader called PerfTutor fx The PerfTutor f
36. nt performance only 40 passes are needed This equates to an automatic improvement of around 30 even at the same clock speed over the older NV30 architecture the Code In this example we are going to set a compile time flag and see the results on shader performance In the Editing Panel un comment the definition of define USE NORMALIZATION CUBEMAP by removing the leading marks so the line appears as define USE NORMALIZATION CUBEMAP You are able to see the color shift immediately from green to blue and black showing that FX Composer recognizes these instructions Now press Ctrl S or select File3 Save to save these changes and press the Build button to recompile the shader or select Build3 Compile or press Ctrl F7 The panel information is updated You can see a new texture in the Textures panel if displayed showing a normalization cube map When this option is enabled the cube map is generated by PerfTutor fx using the DirectX 9 0 virtual machine the specific functions are defined in the header file normalization fxh PerfTutor fx is written to replace all calls to normalize in the pixel shaders with texCUBE calls when this texture is present What effect does this have on our shader performance numbers We can check in the Shader Perf Panel The newly compiled shader actually has more assembly language instructions 59 instructions versus the previous 48 but checking the efficiency and pass counts tell us
37. raph panel 18 scene material 7 Scene panel 14 scene rotate 16 ScriptExecute Commands 8 ScriptExecute Sorter 10 Select Object 5 Stop Start Animation 5 Textures panel 11 tool icons 5 tools panel 5 Your system needs 3 Zoom 5 Zoom Scene 5 36 Notice ALL NVIDIA DESIGN SPECIFICATIONS REFERENCE BOARDS FILES DRAWINGS DIAGNOSTICS LISTS AND OTHER DOCUMENTS TOGETHER AND SEPARATELY MATERI ALS ARE BEING PROVIDED AS IS NVIDIA MAKES NO WARRANTIES EXPRESSED IMPLI ED STATUTORY OR OTHERWISE WITH RESPECT TO THE MATERIALS AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE Information furnished is believed to be accurate and reliable However NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation Specifications mentioned in this publication are subject to change without notice This publication supersedes and replaces all information previously supplied NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation Trademarks NVIDIA and the NVIDIA logo are registered trademarks of NVIDIA Corpor
38. rwiggle Fx dee 4 X Properties x R TAO Glow po OutCol tex2D GlowSamp2 IN TexCoordz UTS Of WTS NORMALIZE N be OutCol tex2D GlowSamp2 IN TexCoord3 WTS 1 WT5 NORMALIZE 94 El OutCol tex2D Glov3amp2 IN TexCoord4 WTS 2 WT5S NORMALIZE E Texture EEE OE ER ModelT ex C devrel NVSDKACommon media models x FE E Lotor f f just drawn model itself diffusem aterial El fe057 gt float4 PS Model VS OUTPUT IN COLOR El Parameter lightdir 1 00 0 00 1 00 float4 Col IN Diffuse tex2D ModelTexSamp float2 IN TexCoor Source Texture Brightness 1 000000 R Wipes 1 67 0 39 0 13 0 13 0 16 1 31 0 66 0 65 0 Worldl gt f 1 00 0 00 0 00 0 00 1 00 0 00 0 00 0 00 1 00 f f add glow on top of model Texel Stride for Blur 0 007813 float4 PS GlowPass V3 OUTPUT IN COLOR a FR gt float4 tex tex2D GlowSamp1 float2 IN Te BER Led DE return tex Frame 0 AEREA AAA RARA AAA AA ERAS Perspective EMM LAMA LALALA AA AAA LALALA LLL ALA techn PS O O A ERE technique ke pass GlowBuffer lt string rendertarget GlowMapi float cleardepth 1 0f adword clearcolor 0x0 Shader Perf Glow_9Tap GlowBuffer Pixel Shader v GeForce 6800 Pixel Shader 255 255 Instructions 8 Scene Graph x del t0 rg del 2d so ma Scene z texld r0 tO s0 mul r0 r0 a rO Ea poo Transform mul rO rO cO r 08 Frame World mov oCO rO M2 Frame polySurface530 end MS Frame Disc Scheduling
39. that are relevant to the panel operation Table 1 lists the icons and their meaning Table 2 1 Panel Tool Icons Tool Icon Description Select Object Selects an object in the panel Rotate Scene Rotates the scene in the direction you drag Pan Scene Pans the scene in the Scene panel Dolly Scene Zooms the camera in and out on the scene Zoom Extents Resets the camera so that everything fits in the scene Apply Material Applies the selected material to the currently mesh selection Delete Material Removes this material and close the corresponding fx file New Material Creates new materials and corresponding fx file Zoom Zooms in on a material or texture Use Shift Click to zoom out Actual Size Displays texture at its actual size Save Saves the current selection Rotate Scene Rotates all objects in the window in the direction you drag CTRL L mouse Pan Scene Moves the camera up down or left right SHIFT L mouse Zoom Scene Moves the camera closer or further away CTRL SHIFT L mouse Stop Start Animation Controls playback of scene animation CTRL G Start CTRL H Stop Red Green Blue Alpha Toggles display of color channel for all textures in the panel From Scene Shows textures as used in Scene panel From Material Shows textures as used in Materials panel DA 01057 001 v04 5 April 2005 DA 01057 001 v04 April 2005 Using FX Composer Table 2 2 lists t
40. use flosr salsularions ep fres del w1 del normal ya fice PLT st mere r r Cd o ff Compile time flags KA BTS v2 CA if fembuce flapa d d ra ro c7 Mdeline DD COLORTER Bag OT We CS H define DO BURP add ria Ti oui CL WWA fideting DO GLOSSKAP d d ray r o8 H dezine DO QUADRATIC del ez r cd j Wdezine DO REFLECTION add ry Ty LL wars addr La 17 277 CL wiara iy pertotcmance I lage Bdeline OSE NORHALIGATIOM CUBERAF CYFropertes Ci Shader Perf re UN IWEAKABLES TRACKED DT Sene ilcat z WocidiTXE i VorldinvecseTranapose 11 TED G 155 floards4 WypIf 1 VorldViewProjection 210843434 Wocldxz i Worlds floarixti ViewIXf Vieulnverse Z l t J PELDELL SKEPSS POSITION srrisg UlNese Poise Poss string Uo ect PFointLight i string Space World ss 10 06 10 06 10 08 Flaat PointLigktColor ESPECULAR lt Log tog Pound valid technique Orefaza Cried HLSL Effect from Eflecrcompier Ose NG kanan kb pr ALS PG Tur fa Found valid technique Dref ass d oy Example 1 perftutor fx The PerfTutor fx file contains a number of compile time define flags that let you change the way the code functions with a minimum of typing These flags can turn on and off specific features of the shader or control the way shading is calculated The flags are right at the head of the shader code Compile time flags feature flags define DO_COLORTEX
41. w useful configuration files that can be changed All files are XML and should be backed up before you tweak fxcomposer config xml Contains the list of standard materials offered when you click the new material button You can add your own standard materials along with text descriptions here useful to give your artists a game specific list of effects to use fxedit xml Contains rules for syntax highlighting You can change the keywords that get highlighted and the colors used to highlight them fxmapping xml Lists the standard set of semantics and annotations supported by FX Composer The lt semantic name foo gt field represents FX Composer s standard internal names for these values Optional lt mapping name foo gt fields enable you to remap your semantic annotation names to those used by FX Composer defaultscene fx This is FX Composer s default scene command list It is a very simple instruction list which simply clears the background to grey and draws all the elements in the scene You can change the contents of this file and recompile it just like other scene command materials the advantage being that you will permanently change the default rendering method of FX Composer Use with care plugins inf Lists the plugins FX Composer should load including ShaderPerf and geometry import plugins for NVB and x files A future FX Composer SDK will allow developers to create their own plugins DA 01057 001 v04 23 Apri
42. x is a very generic shader using per pixel lighting two different kinds of lamps and a variety of options set by define flags that permit you to try different methods to get the same or nearly the same results and see the effects on final image and scene performance Use the following steps to create the scene in the example shown in Example 1 1 Start FX Composer Make sure that the Scene panel is visible and the Shader Perf panel is available From the File menu select File Load Project Open MEDIA fxcomoser tutorials perftutor fxcomposer 2 3 4 5 Right click on the Scene panel and select New Scene From Shape Teapot 6 Select the teapot geometry in the Scene panel 7 Select the Perf Tutor material in the Materials panel 8 Right click on the material and select Apply to Selection to assign the PerfTutor material to the teapot Your display should look something like the shown in Example 1 26 Measuring and Managing Shader Performance with FX Composer s8 NVIDIA FX Composer PerfTutor fx Eie Edt Wew Bulk animation Took Mondow Hop a4 A Fog XO paw material bo Perflutor ts tx Shader Perf aRNAPELGE member namna start with Capa M One aaa p Weriez Shader Local shader variable names generally Starte Vortin Shude 255 255 mann 5 Fa Mi Vare typical Light vector Point P def cl4 10000000 00000000 0 000000 0 000000 Vectore Chot ate normalized have names that t gel posibond O men possible
Download Pdf Manuals
Related Search
Related Contents
LOGON LCR001 63 in 1 R525P Single Axis Driver, Closed-Loop Driver Targus TSM080US NEC NP-L50W data projector DH1011 - o DMI 802-2008-0099 Instructions / Assembly Sony HKJ-101 User's Manual EHF6547FOK .................................................. ......... 取扱説明書 - OS Engines Copyright © All rights reserved.
Failed to retrieve file