Constant float register (HLSL PS-Referenz)
Pixel-Shader-Eingaberegister für eine 4D-Gleitkommakonstige.
Sie können mit def - ps oder SetPixelShaderConstantF festgelegt werden.
Das Verhalten von Shaderkonst constants hat sich zwischen Direct3D 8 und Direct3D 9 geändert.
- Bei Direct3D 9 weisen konstanten Konstanten, die mit defx festgelegt wurden, Werte dem konstanten Shaderraum zu. Die Lebensdauer einer mit defx deklarierten Konstante ist auf die Ausführung dieses Shaders beschränkt. Umgekehrt initialisieren Konstanten, die mithilfe der APIs SetXXXShaderConstantX festgelegt werden, Konstanten im globalen Raum. Konstanten im globalen Raum werden erst dann in den lokalen Raum kopiert (für den Shader sichtbar), wenn SetxxxShaderConstants aufgerufen wird.
- Bei Direct3D 8 weisen Konstanten, die mit defx oder den APIs festgelegt wurden, Werte dem konstanten Shaderraum zu. Jedes Mal, wenn der Shader ausgeführt wird, werden die Konstanten vom aktuellen Shader verwendet, unabhängig von der Technik, mit der sie festgelegt wurden.
Beispiele
Hier ist ein Beispiel, in dem zwei Gleitkommakonst constants innerhalb eines Shaders deklariert werden.
def c40, 0.0f,0.0f,0.0f,0.0f;
Diese Konstanten werden jedes Mal geladen, wenn SetPixelShader aufgerufen wird.
Wenn Sie konstante Werte mit der API festlegen, ist keine Shaderdeklaration erforderlich.