aniso.nvv

来自「游戏编程精华02-含有几十个游戏编程例子」· NVV 代码 · 共 58 行

NVV
58
字号
; v0  -- position
; v3  -- normal
; v7  -- tex coord
; v8 -- tex coord1
;
; c0-3   -- world/view/proj matrix
; c4     -- light vector
; c5-8   -- inverse/transpose world matrix
; c9     -- {0.0, 0.5, 1.0, -1.0}
; c10    -- eye point
; c11-14 -- world matrix

vs.1.0

;transform position
dp4 oPos.x, v0, c0
dp4 oPos.y, v0, c1
dp4 oPos.z, v0, c2
dp4 oPos.w, v0, c3

;transform normal
dp3 r0.x, v3, c5
dp3 r0.y, v3, c6
dp3 r0.z, v3, c7

;normalize normal
dp3 r0.w, r0, r0
rsq r0.w, r0.w
mul r0, r0, r0.w

;compute world space position
dp4 r1.x, v0, c11
dp4 r1.y, v0, c12
dp4 r1.z, v0, c13
dp4 r1.w, v0, c14

;vector from point to eye
add r2, c10, -r1

;normalize e
dp3 r2.w, r2, r2
rsq r2.w, r2.w
mul r2, r2, r2.w

;h = Normalize( l + e )
add r1, r2, c4

;normalize h
dp3 r1.w, r1, r1
rsq r1.w, r1.w
mul r1, r1, r1.w

;l dot n
dp3 oT0.x, r0, c4

;h dot n
dp3 oT0.y, r1, r0

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?