Initial commit.
This commit is contained in:
30
code/x_shaders/shadow.vsh
Normal file
30
code/x_shaders/shadow.vsh
Normal file
@@ -0,0 +1,30 @@
|
||||
;------------------------------------------------------------------------------
|
||||
; Vertex components (as specified in the vertex DECL)
|
||||
; v0 = pVertex[i].p
|
||||
; v1 = extrusion determinant
|
||||
;------------------------------------------------------------------------------
|
||||
xvs.1.1
|
||||
|
||||
#include "../win32/shader_constants.h"
|
||||
|
||||
#pragma screenspace
|
||||
|
||||
; Determine the distance to the ground
|
||||
add r4, v0, c[CV_SHADOW_FACTORS]
|
||||
sub r5, r4, c[CV_SHADOW_PLANE]
|
||||
|
||||
; Factor in the extrusion determinant
|
||||
; r3 will either be the distance to the ground, or 0
|
||||
mul r3, v1.x, -r5
|
||||
|
||||
; Extrude the vertex if necessary
|
||||
mad r0, r3.z, c[CV_LIGHT_DIRECTION].xyz, v0.xyz
|
||||
mov r0.w, v0.w
|
||||
|
||||
; transform to hclip space
|
||||
m4x4 oPos, r0, c[CV_WORLDVIEWPROJ_0]
|
||||
|
||||
; Multiply by 1/w and add viewport offset.
|
||||
; r12 is a read-only alias for oPos.
|
||||
rcc r1.x, r12.w
|
||||
mad oPos.xyz, r12, r1.x, c[CV_VIEWPORT_OFFSETS]
|
||||
Reference in New Issue
Block a user