Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
216
GameTools/Zallad3D SceneClass/Shaders/1_BumpDiffSpec.vsh1
Normal file
216
GameTools/Zallad3D SceneClass/Shaders/1_BumpDiffSpec.vsh1
Normal file
@@ -0,0 +1,216 @@
|
||||
|
||||
;#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_WORLDVIEW_0 6
|
||||
;#define CV_WORLDVIEW_1 7
|
||||
;#define CV_WORLDVIEW_2 8
|
||||
;#define CV_WORLDVIEW_3 9
|
||||
|
||||
;#define CV_WORLDVIEWIT_0 10
|
||||
;#define CV_WORLDVIEWIT_1 11
|
||||
;#define CV_WORLDVIEWIT_2 12
|
||||
|
||||
;#define CV_WORLD_0 13
|
||||
;#define CV_WORLD_1 14
|
||||
;#define CV_WORLD_2 15
|
||||
;#define CV_WORLD_3 16
|
||||
|
||||
;#define CV_HALF 18
|
||||
|
||||
;#define CV_LIGHT_COLOR 19
|
||||
;#define CV_ONE_OVER_LIGHT_RANGE 20
|
||||
|
||||
;#define CV_LIGHT_POSITION 21
|
||||
;#define CV_LIGHT_POSITION 22
|
||||
|
||||
;#define CV_BUMP_SCALE 23
|
||||
|
||||
;#define CV_EYE_POS_WORLD 24
|
||||
|
||||
;#define V_POSITION v0
|
||||
;#define V_NORMAL v1
|
||||
;#define V_DIFFUSE v2
|
||||
;#define V_TEXTURE v3
|
||||
;#define V_SxT v4
|
||||
;#define V_S v5
|
||||
;#define V_T v6
|
||||
|
||||
|
||||
;#define S_WORLD r0
|
||||
;#define T_WORLD r1
|
||||
;#define SxT_WORLD r2
|
||||
;#define LIGHT_LOCAL r3
|
||||
;#define VERTEX_WORLD r4
|
||||
;#define EYE_VECTOR r5
|
||||
;#define LIGHTPOSITION r6
|
||||
;#define HALF_ANGLE r7
|
||||
|
||||
|
||||
vs.1.0
|
||||
; Transform position to clip space and output it
|
||||
dp4 oPos.x, v0, c[2]
|
||||
dp4 oPos.y, v0, c[3]
|
||||
dp4 oPos.z, v0, c[4]
|
||||
dp4 oPos.w, v0, c[5]
|
||||
|
||||
; Transform basis vectors to world space
|
||||
dp3 r0.x, v5, c[13]
|
||||
dp3 r0.y, v5, c[14]
|
||||
dp3 r0.z, v5, c[15]
|
||||
|
||||
dp3 r1.x, v6, c[13]
|
||||
dp3 r1.y, v6, c[14]
|
||||
dp3 r1.z, v6, c[15]
|
||||
|
||||
dp3 r2.x, v1, c[13]
|
||||
dp3 r2.y, v1, c[14]
|
||||
dp3 r2.z, v1, c[15]
|
||||
|
||||
// transform vertex position to world space
|
||||
// to calculate V, vector to viewer in world
|
||||
// space.
|
||||
// world space <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> point
|
||||
dp4 r4.x, v0, c[13]
|
||||
dp4 r4.y, v0, c[14]
|
||||
dp4 r4.z, v0, c[15]
|
||||
|
||||
|
||||
add r6, c[21], c[0]
|
||||
|
||||
// Bump Scale Setting
|
||||
mul r0.xyz, r0.xyz, c[23].w
|
||||
mul r1.xyz, r1.xyz, c[23].w
|
||||
|
||||
; transform light by basis vectors to put it
|
||||
; into texture space
|
||||
;;dp3 r3.x, r0.xyz, c[21]
|
||||
;;dp3 r3.y, r1.xyz, c[21]
|
||||
;;dp3 r3.z, r2.xyz, c[21]
|
||||
dp3 r3.x, r0.xyz, r6
|
||||
dp3 r3.y, r1.xyz, r6
|
||||
dp3 r3.z, r2.xyz, r6
|
||||
|
||||
|
||||
; Normalize the light vector
|
||||
dp3 r3.w, r3, r3
|
||||
rsq r3.w, r3.w
|
||||
mul r3, r3, r3.w
|
||||
|
||||
|
||||
/////////////////////////////////////
|
||||
// Calculate half angle vector
|
||||
|
||||
; Half angle vector is (L+V)/||L+V|| or Normalize( L+V )
|
||||
; ||a|| is magnitude of a
|
||||
; L = vec to light from vertex point
|
||||
; V = vec to viewer from vertex point
|
||||
|
||||
// vertex position - eye position
|
||||
// eye position - vertex position
|
||||
add r5, c[ 24 ], -r4.xyz
|
||||
;mov r5,-v1
|
||||
; Normalize eye vec
|
||||
dp3 r5.w, r5, r5
|
||||
rsq r5.w, r5.w
|
||||
mul r5, r5, r5.w
|
||||
|
||||
// Add them to average & create half angle vector
|
||||
;;add r7, c[21], r5
|
||||
add r7, r6, r5
|
||||
|
||||
; Normalize it
|
||||
dp3 r7.w, r7, r7
|
||||
rsq r7.w, r7.w
|
||||
mul r7, r7, r7.w
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
; Transform half angle vector to local space and
|
||||
; output to tex coord set 3 for specular calc
|
||||
|
||||
// Write result to a temporary r2 and use 1 extra
|
||||
// instruction for the mov so that we can output
|
||||
// it to diffuse color also. Normaly, you should
|
||||
// write the result directly to oTn and save yourself
|
||||
// the mov instruction
|
||||
|
||||
;dp3 r2.x, r7, r0
|
||||
;dp3 r2.y, r7, r1
|
||||
;dp3 r2.z, r7, r2
|
||||
;mov r2.w, c[ 1 ]
|
||||
|
||||
;mov oT3.x, r2.x
|
||||
;mov oT3.y, r2.y
|
||||
;mov oT3.z, r2.z
|
||||
;mov oT3.w, r2.w
|
||||
|
||||
|
||||
//@@@@@@@@@
|
||||
|
||||
;mov oT3.xyz, r2.xyz
|
||||
;mov oT3.w, c[ 1 ]
|
||||
|
||||
;dp3 r2.x, r7, r0
|
||||
;dp3 r2.y, r7, r1
|
||||
;dp3 r2.z, r7, r2
|
||||
;mov r2.w, c[ 1 ]
|
||||
;mov oT3.xyzw, r2.xyzw
|
||||
|
||||
;dp3 r2.x, r7, r0
|
||||
;dp3 r2.y, r7, r1
|
||||
;dp3 r2.z, r7, r2
|
||||
;mov r2.w, c[ 1 ]
|
||||
;mov oT3.xyzw, r2.xyzw
|
||||
|
||||
|
||||
|
||||
|
||||
dp3 oT3.x, r7, r0
|
||||
dp3 oT3.y, r7, r1
|
||||
dp3 oT3.z, r7, r2
|
||||
mov oT3.w, c[ 1 ]
|
||||
|
||||
|
||||
/////////////////////////////////////
|
||||
// move light vector to TC 2
|
||||
|
||||
|
||||
mov oT2, r3
|
||||
mov oT2.w, c[1].w // w to 0
|
||||
|
||||
|
||||
; output tex coords
|
||||
mov oT0, v3
|
||||
mov oT1, v3
|
||||
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Additional output of light vector to
|
||||
// diffuse color for visualization in the
|
||||
// demo
|
||||
|
||||
;mul r1, r3, c[18]
|
||||
;add oD0, r1, c[18]
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// move half angle vector to unsigned diffuse
|
||||
// color for visualization in the demo
|
||||
// Bias from [-1,1] to the range [0,1]
|
||||
|
||||
//@@@@@@@@@ turn this off - debug only!
|
||||
|
||||
dp3 r2.x, r7, r0
|
||||
dp3 r2.y, r7, r1
|
||||
dp3 r2.z, r7, r2
|
||||
mov r2.w, c[ 1 ]
|
||||
|
||||
mul r2, r2, c[18]
|
||||
add oD0, r2, c[18]
|
||||
|
||||
//////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user