home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2002 April
/
GSSH42002.iso
/
EDITOREN
/
DS
/
gmax
/
gmaxinst_1-1.exe
/
gmaxsetup11.cab
/
cubemap.njv
< prev
next >
Wrap
Text File
|
2002-02-13
|
2KB
|
78 lines
; Generates texture coordinates based
; on the input normal. The texture coordinates
; represent a ray from the eye reflected from the object,
; based on the normal.
; This is an implementation of D3D's CAMERASPACEREFLECTIONVECTOR
; Shader version
vs.1.0
;#include "reflect.h"
;#define CV_ZERO 0
;#define CV_ONE 1
;#define CV_WORLDVIEWPROJ_0 2
;#define CV_WORLDVIEWPROJ_1 3
;#define CV_WORLDVIEWPROJ_2 4
;#define CV_WORLDVIEWPROJ_3 5
;#define CV_WORLDVIEWIT_0 6
;#define CV_WORLDVIEWIT_1 7
;#define CV_WORLDVIEWIT_2 8
;#define CV_VECA 10
;#define CV_VECD 11
;#define CV_VECSIN 12
;#define CV_VECCOS 13
;#define CV_HALF 14
;#define CV_LIGHT1_DIRECTION 15
;#define CV_WORLDVIEW_0 16
;#define CV_WORLDVIEW_1 17
;#define CV_WORLDVIEW_2 18
;#define CV_WORLDVIEW_3 19
;;;
;#define R_EYE_VERTEX r8
;#define R_EYE_NORMAL r9
;#define R_EYE_VECTOR r3
;#define R_DOT2 r4
; Transform position
dp4 oPos.x, v0, c2
dp4 oPos.y, v0, c3
dp4 oPos.z, v0, c4
dp4 oPos.w, v0, c5
dp4 r8.x, v0, c16
dp4 r8.y, v0, c17
dp4 r8.z, v0, c18
dp4 r8.w, v0, c19
; Create r3, the normalized vector from the eye to the vertex
dp3 r3.w, r8, r8
rsq r3.w, r3.w
mul r3, r8, r3.w
; Transform normal to eye-space
; We use the inverse transpose of the worldview
; matrix to do this
dp3 r9.x, v1, c6
dp3 r9.y, v1, c7
dp3 r9.z, v1, c8
; Need to re-normalize normal
dp3 r9.w, r9, r9
rsq r9.w, r9.w
mul r9, r9, r9.w
; Calculate E - 2*(E dot N)*N
dp3 r4, r3, r9
add r4, r4, r4
mul r9, r9, r4
add oT0, r3, -r9
mov oT0.w, c1.x