<HTML> <HEAD> <TITLE>ps_4_0</TITLE> <STYLE TYPE="text/css" MEDIA=screen> <!-- BODY { font-family: Arial,Helvetica; } BLOCKQUOTE { margin: 10pt; } H1,A { color: #336699; } /*** Top menu style ****/ .mmenuon { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ff6600; font-size: 10pt; } .mmenuoff { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: 10pt; } .cpyright { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .cpyrightText { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .sections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 11pt; } .dsections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 12pt; } .slink { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #336699; font-size: 9pt; } .slink2 { font-family: Arial,Helvetica; text-decoration: none; color: #336699; } .maintitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 18pt; } .dblArrow { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .menuSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .newstext { font-family: Arial,Helvetica; font-size: small; } .linkmenu { font-family: Arial,Helvetica; color: #000000; font-weight: bold; text-decoration: none; } P { font-family: Arial,Helvetica; } PRE { font-family: monospace; white-space: pre; font-color: #333333; font-weight: 100; background-color: #eeeeee; padding: 5px; width: 90%; border-style: solid; border-width: 2px; border-color: #bebebe; } .quote { font-family: Times; text-decoration: none; color: #000000; font-size: 9pt; font-style: italic; } .smstd { font-family: Arial,Helvetica; color: #000000; font-size: x-small; } .std { font-family: Arial,Helvetica; color: #000000; } .meerkatTitle { font-family: sans-serif; font-size: x-small; color: black; } .meerkatDescription { font-family: sans-serif; font-size: 10pt; color: black } .meerkatCategory { font-family: sans-serif; font-size: 9pt; font-weight: bold; font-style: italic; color: brown; } .meerkatChannel { font-family: sans-serif; font-size: 9pt; font-style: italic; color: brown; } .meerkatDate { font-family: sans-serif; font-size: xx-small; color: #336699; } .tocTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 10pt; } .toc-item { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: underline; } .perlVersion { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: none; } .docTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #000000; font-size: 10pt; } .dotDot { font-family: Arial,Helvetica; font-weight: bold; color: #000000; font-size: 9pt; } .docSec { font-family: Arial,Helvetica; font-weight: normal; color: #333333; font-size: 9pt; } .docVersion { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .docSecs-on { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #ff0000; font-size: 10pt; } .docSecs-off { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } h3 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } h2 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: medium; } h1 { font-family: Verdana,Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: large; } DL { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } UL > LI > A { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; } .moduleInfo { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 11pt; } .moduleInfoSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .moduleInfoVal { font-family: Arial,Helvetica; font-weight: normal; text-decoration: underline; color: #000000; font-size: 10pt; } .cpanNavTitle { font-family: Arial,Helvetica; font-weight: bold; color: #ffffff; font-size: 10pt; } .cpanNavLetter { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 9pt; } .cpanCat { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 9pt; } --> </STYLE> </HEAD> <BODY> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> </object> <BLOCKQUOTE> <H1><A NAME="NAME"><A NAME="1">NAME </A></A></H1> <P> <B>ps_4_0</B> - Translation profile to DirectX 10's High Level Shader Language for pixel shaders. </P> <H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS </A></A></H1> <PRE> ps_4_0 </PRE> <H1><A NAME="DESCRIPTION"><A NAME="3">DESCRIPTION </A></A></H1> <P> This Direct3D profile translates Cg into DirectX 10's High Level Shader Language (HLSL10) for pixel shaders. </P> <P> The compiler output for this profile conforms to the textual high-level language defined by DirectX 10's High Level Shading Language. </P> <P> The limitations of the <B>ps_4_0</B> profile depend on what HLSL10 profile to which the translated HLSL code is compiled. </P> <H1><A NAME="3D_API_DEPENDENCIES"><A NAME="4">3D API DEPENDENCIES </A></A></H1> <P> Requires Direct3D 10 support. </P> <PRE> <A HREF="http://msdn.microsoft.com/en-us/library/bb509657.aspx">msdn.microsoft.com/en-us/library/bb509657.aspx</A> </PRE> <H1><A NAME="PROFILE_OPTIONS"><A NAME="5">PROFILE OPTIONS </A></A></H1> <P> -po pad16 This will add padding variables to the cbuffer declarations to match the 16 byte padding the GP4 OpenGL profiles use. This makes sure each variable in the cbuffer uses an entire float4 constant instead of the tight packing HLSL10 normally uses. </P> <H1><A NAME="DATA_TYPES"><A NAME="6">DATA TYPES </A></A></H1> <P> In general, the Cg data types translate to the HLSL10 data types with the same name. </P> <DL> <DT><STRONG>half </STRONG></DT> <DD> <P> NVIDIA GPUs may use half-precision floating-point when the Partial Precision instruction modifier is specified. Half-precision floating-point is encoded with a sign bit, 10 mantissa bits, and 5 exponent bits (biased by 16), sometimes called <I>s10e5</I>. </P> <DT><STRONG>float </STRONG></DT> <DD> <P> The <B>float</B> data type corresponds to a floating-point representation with at least 24 bits. </P> <P> NVIDIA GPUs supporting <B>ps_4_0</B> use standard IEEE 754 single-precision floating-point encoding with a sign bit, 23 mantissa bits, and 8 exponent bits (biased by 128), sometimes called <I>s10e5</I>. </P> <P> Older ATI GPUs use 24-bit floating-point. </P> <DT><STRONG>fixed </STRONG></DT> <DD> <P> The <B>fixed</B> data type is treated like <B>half</B>. </P> </DD></DL> <H1><A NAME="SEMANTICS"><A NAME="7">SEMANTICS </A></A></H1> <H2><A NAME="INPUT_SEMANTICS"><A NAME="8">INPUT SEMANTICS </A></A></H2> <P> The varying input semantics in the <B>ps_4_0</B> profile correspond to the respectively named varying output semantics of the <B>vs_4_0</B> profile. </P> <PRE> Binding Semantics Name Corresponding Data COLOR Input primary color COLOR0 COL COL0 COLOR1 Input secondary color COL1 TEX0 Input texture coordinate sets 0 TEXCOORD0 TEX# translates to TEXCOORD# TEX1 Input texture coordinate sets 1 TEXCOORD1 TEX# translates to TEXCOORD# TEX2 Input texture coordinate sets 2 TEXCOORD2 TEX# translates to TEXCOORD# TEX3 Input texture coordinate sets 3 TEXCOORD3 TEX# translates to TEXCOORD# TEX4 Input texture coordinate sets 4 TEXCOORD4 TEX# translates to TEXCOORD# TEX5 Input texture coordinate sets 5 TEXCOORD5 TEX# translates to TEXCOORD# TEX6 Input texture coordinate sets 6 TEXCOORD6 TEX# translates to TEXCOORD# TEX7 Input texture coordinate sets 7 TEXCOORD7 TEX# translates to TEXCOORD# FOGP Input fog color (XYZ) and factor (W) FOG </PRE> <H2><A NAME="UNIFORM_INPUT_SEMANTICS"><A NAME="9">UNIFORM INPUT SEMANTICS </A></A></H2> <P> Sixteen texture units are supported: </P> <PRE> Binding Semantic Name Corresponding Data TEXUNIT0 Texture unit 0 TEXUNIT1 Texture unit 1 ... TEXUNIT15 Texture unit 15 </PRE> <H2><A NAME="OUTPUT_SEMANTICS"><A NAME="10">OUTPUT SEMANTICS </A></A></H2> <PRE> COLOR Output color (float4) COLOR0 COL0 COL DEPTH Output depth (float) DEPR </PRE> <H1><A NAME="STANDARD_LIBRARY_ISSUES"><A NAME="11">STANDARD LIBRARY ISSUES </A></A></H1> <P> This profile is limited to standard library support available in HLSL10. In general, the Cg and HLSL10 standard libraries are very similar. </P> <H1><A NAME="SEE_ALSO"><A NAME="12">SEE ALSO </A></A></H1> <P> <A HREF="vs_4_0.html">vs_4_0</A>, <A HREF="gs_4_0.html">gs_4_0</A> </P> </BLOCKQUOTE> </BODY>