1.
It is necessary to distinguish which are instruction and which are macroinstruction. For macroinstruction, after compilation, it will actually create a series of instruction,
Therefore, when using macroinstruction, it is best not to use the same register as the source register and destination register,
After the macro is expanded, the statements for modifying the source register may appear before these statements,
In the latter part, the source register is obviously not expected to be modified, which leads to an error.
A typical example is the m4x4 macro command, which is actually a series of dot-product operation commands, so this error occurs.
2. In PS, only one color register VN can appear in one instruction,
If you can access multiple registers, you must use an intermediate register. For example, you can add diffuse color to specular color.
MoV r0, V1
Add r0, V0, R0
Similarly, constant
The same is true for registers.
3. The value of d3dcaps. maxvertexblendmatrixindex in nv8600 is 0, indicating that indexed vertex blending is not supported.
It is better not to use the matrix palette in the fixed funtion mode.