Поделиться через


texm3x2tex — ps

Выполняет последнюю строку умножения матрицы 3x2 и использует результат для поиска текстуры. texm3x2tex необходимо использовать вместе с инструкцией texm3x2pad - ps .

Синтаксис

texm3x2tex dst, src

 

where

  • dst — регистр назначения.
  • src — это регистр источника.

Комментарии

Версии шейдера пикселей 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texm3x2tex x x x

 

Инструкция используется в качестве одной из двух инструкций, представляющих операцию умножения матрицы 3x2. Эту инструкцию необходимо использовать с инструкцией texm3x2pad - ps .

При использовании этих двух инструкций регистры текстур должны использовать следующую последовательность.

 
tex t(n)                      // Define tn as a standard 3-vector (tn must 
                              // be defined in some way before it is used)
texm3x2pad  t(m),   t(n)      // where m > n
                              // Perform first row of matrix multiply
texm3x2tex  t(m+1), t(n)      // Perform second row of matrix multiply 
                              // to get (u,v) to sample texture 
                              // associated with stage m+1

Ниже приведены более подробные сведения о том, как выполняется умножение 3x2.

Инструкция texm3x2pad выполняет первую строку умножения, чтобы найти u'.

u' = t(n)RGB * TextureCoordinates(stage m)UVW

Инструкция texm3x2tex выполняет вторую строку умножения для поиска v'.

v' = t(n)RGB * TextureCoordinates(stage m+1)UVW

Инструкция texm3x2tex образцы текстуры на сцене (m+1) с помощью (u',v') и сохраняет результат в t(m+1).

t(m+1)RGB = TextureSample(stage m+1)RGB с использованием (u', v' ) в качестве координат

Примеры

Ниже приведен пример шейдера с картами текстур и определенными этапами текстуры.

ps_1_1
tex t0                // Bind texture in stage 0 to register t0
texm3x2pad  t1,  t0   // First row of matrix multiply
texm3x2tex  t2,  t0   // Second row of matrix multiply to get (u,v)
                      // with which to sample texture in stage 2
mov r0, t2            // Output result

В этом примере требуются следующие текстуры на следующих этапах текстуры.

  • Этап 0 принимает карту с данными о возмущении (x, y, z).
  • Этап 1 содержит координаты текстуры. Текстура не требуется на этапе текстуры.
  • Этап 2 содержит как координаты текстуры, так и двухd текстуры, заданные на этом этапе текстуры.

Инструкции по шейдеру пикселей