mirror of
https://github.com/dhewm/dhewm3.git
synced 2025-03-19 01:01:47 +00:00
Add StormEngine2 shaders and materials, mention it in README
This commit is contained in:
parent
944ff12aab
commit
056fb2c30d
56 changed files with 5610 additions and 0 deletions
26
README.md
26
README.md
|
@ -1,3 +1,29 @@
|
|||
# dhewm3 branch of StormEngine2
|
||||
|
||||
Before StormEngine2 switched to (RB)Doom3BFG, it was based on dhewm3.
|
||||
|
||||
This branch contains all the changes, based on the same old dhewm3 commit it (apparently) used.
|
||||
|
||||
Furthermore, in `base/` you can find its materials and shaders.
|
||||
* The shaders (`base/glprogs/*`) are released under GPLv3 (same as Doom3 sourcecode).
|
||||
* The materials (`base/materials/*`) are released under
|
||||
[*CreativeCommons Attribution-ShareAlike*](https://creativecommons.org/licenses/by-sa/4.0/) (**CC BY-SA 4.0**).
|
||||
|
||||
Thanks a lot to **motorsep** for donating this code and game data!
|
||||
|
||||
Some features this code (together with the shaders) have, that standard Doom3 and dhewm3 don't:
|
||||
- soft particles with custom translucency sorting and fogging
|
||||
- ink/cel shading
|
||||
- image-based bloom
|
||||
- blurry reflections
|
||||
- Fresnel
|
||||
- *maybe* improved heat haze
|
||||
- improved vehicles
|
||||
- LODs
|
||||
|
||||
--------------------
|
||||
Below: original dhewm3 ReadMe:
|
||||
|
||||
# ABOUT
|
||||
|
||||
_dhewm 3_ is a _Doom 3_ GPL source modification.
|
||||
|
|
3
base/glprogs/_description.txt
Normal file
3
base/glprogs/_description.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
interaction.vfp : Toon + Specular (needs to be controlled by the materials) + Improved ambient
|
||||
interaction_nospecular.vfp : Toon with no Specular
|
||||
interaction_original.vfp : Original shader compatible with Doom 3
|
83
base/glprogs/bumpyEnvironment.vfp
Normal file
83
base/glprogs/bumpyEnvironment.vfp
Normal file
|
@ -0,0 +1,83 @@
|
|||
# Normal-Mapped CubeMap Lookup Vertex Program
|
||||
#
|
||||
# Vertex Attributes
|
||||
# 9 tangent(?)
|
||||
# 10 bitangent(?)
|
||||
#
|
||||
# Environment Values
|
||||
# 5 local view position
|
||||
# 6 modelMatrix[0]
|
||||
# 7 modelMatrix[1]
|
||||
# 8 modelMatrix[2]
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
TEMP R0;
|
||||
|
||||
# tc0 : normal-map UV
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
|
||||
SUB R0, program.env[5], vertex.position;
|
||||
|
||||
# tc1 : view vector in global space
|
||||
DP3 result.texcoord[1].x, program.env[6], R0;
|
||||
DP3 result.texcoord[1].y, program.env[7], R0;
|
||||
DP3 result.texcoord[1].z, program.env[8], R0;
|
||||
|
||||
# tc2-4 : tangent-space to global-space matrix
|
||||
DP3 result.texcoord[2].x, program.env[6], vertex.attrib[9];
|
||||
DP3 result.texcoord[3].x, program.env[7], vertex.attrib[9];
|
||||
DP3 result.texcoord[4].x, program.env[8], vertex.attrib[9];
|
||||
|
||||
DP3 result.texcoord[2].y, program.env[6], vertex.attrib[10];
|
||||
DP3 result.texcoord[3].y, program.env[7], vertex.attrib[10];
|
||||
DP3 result.texcoord[4].y, program.env[8], vertex.attrib[10];
|
||||
|
||||
DP3 result.texcoord[2].z, program.env[6], vertex.normal;
|
||||
DP3 result.texcoord[3].z, program.env[7], vertex.normal;
|
||||
DP3 result.texcoord[4].z, program.env[8], vertex.normal;
|
||||
|
||||
MOV result.color, vertex.color;
|
||||
|
||||
END
|
||||
|
||||
# Normal-Mapped CubeMap Lookup Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 environment cubemap
|
||||
# 1 normalmap
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
TEMP globalEye, localNormal, globalNormal, reflVec, R0;
|
||||
|
||||
# load normal map and normalize
|
||||
TEX localNormal, fragment.texcoord[0], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
|
||||
DP3 R0.x, localNormal, localNormal;
|
||||
RSQ R0.x, R0.x;
|
||||
MUL localNormal.xyz, R0.x, localNormal;
|
||||
|
||||
# normalize global view vector
|
||||
DP3 R0.x, fragment.texcoord[1], fragment.texcoord[1];
|
||||
RSQ R0.x, R0.x;
|
||||
MUL globalEye, R0.x, fragment.texcoord[1];
|
||||
|
||||
# transform local normal to global space
|
||||
DP3 globalNormal.x, fragment.texcoord[2], localNormal;
|
||||
DP3 globalNormal.y, fragment.texcoord[3], localNormal;
|
||||
DP3 globalNormal.z, fragment.texcoord[4], localNormal;
|
||||
|
||||
# construct reflection vector and look up cubemap
|
||||
DP3 R0.x, globalNormal, globalEye;
|
||||
MUL reflVec, R0.x, globalNormal;
|
||||
MAD reflVec, reflVec, 2.0, -globalEye;
|
||||
|
||||
TEX result.color.xyz, reflVec, texture[0], CUBE;
|
||||
|
||||
END
|
120
base/glprogs/bumpyMirror.vfp
Normal file
120
base/glprogs/bumpyMirror.vfp
Normal file
|
@ -0,0 +1,120 @@
|
|||
# Normal-Mapped Refraction Vertex Program
|
||||
#
|
||||
# Local Values
|
||||
# 0 UV scrolling values
|
||||
# 1 magnitude of deformation
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
PARAM clearVec = { 1.0, 0.0, 0.0, 1.0 };
|
||||
TEMP R0, R1;
|
||||
|
||||
# tc0 : scrolled texture coordinates
|
||||
ADD result.texcoord[0].xy, vertex.texcoord[0], program.local[0];
|
||||
|
||||
# tc1 : deformation magnitude scaled by projection distance
|
||||
MOV R0, clearVec;
|
||||
DP4 R0.z, state.matrix.modelview.row[2], vertex.position;
|
||||
|
||||
DP4 R1.x, state.matrix.projection.row[0], R0;
|
||||
DP4 R1.y, state.matrix.projection.row[3], R0;
|
||||
|
||||
MAX R1.y, R1, 1.0;
|
||||
RCP R1.y, R1.y;
|
||||
MUL R1.x, R1.x, R1.y;
|
||||
MIN R1.x, R1, 0.02;
|
||||
|
||||
MUL result.texcoord[1], R1.x, program.local[1];
|
||||
|
||||
MOV result.texcoord[2], program.local[2];
|
||||
MOV result.texcoord[3], program.local[3];
|
||||
|
||||
END
|
||||
|
||||
# Normal-Mapped Refraction Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 _currentRender
|
||||
# 1 normalmap
|
||||
#
|
||||
# Environment Values
|
||||
# 0 screen non power of two adjust
|
||||
# 1 fragment.position to 0.0-1.0 screen coordinates factor
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
TEMP R0, localNormal, basePos, sPos, outCol;
|
||||
|
||||
PARAM off1 = { -1.0, 0.0, 1.0, 1.0 };
|
||||
|
||||
# load normalmap
|
||||
TEX localNormal, fragment.texcoord[0], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
|
||||
PARAM weight = { 0.1111111,1,1,1 };
|
||||
|
||||
# offset normalized screen coordinates by scaled normal, then apply npot adjustment
|
||||
MUL basePos.xy, fragment.position, program.env[1];
|
||||
MAD_SAT basePos.xy, localNormal, fragment.texcoord[1], basePos;
|
||||
TEX outCol.xyz, basePos, texture[0], 2D;
|
||||
MUL outCol.xyz, outCol, weight.x;
|
||||
|
||||
TEMP offs;
|
||||
|
||||
MUL offs.xy, fragment.texcoord[2].xyyy, fragment.texcoord[2].z;
|
||||
|
||||
MOV sPos.z, 0;
|
||||
MOV sPos.w, fragment.texcoord[2].w;
|
||||
|
||||
# everything's a blur ( 3x3 box )
|
||||
# 1
|
||||
MAD sPos.xy, off1.xxxx, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
# 2
|
||||
MAD sPos.xy, off1.xyyy, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
# 3
|
||||
MAD sPos.xy, off1.xzzz, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
# 4
|
||||
MAD sPos.xy, off1.yxxx, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
# 5
|
||||
MAD sPos.xy, off1.yzzz, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
# 6
|
||||
MAD sPos.xy, off1.zxxx, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
# 7
|
||||
MAD sPos.xy, off1.zyyy, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
# 8
|
||||
MAD sPos.xy, off1.zzzz, offs, basePos;
|
||||
#TEX R0.xyz, sPos, texture[0], 2D;
|
||||
TXB R0.xyz, sPos, texture[0], 2D;
|
||||
MAD outCol.xyz, R0, weight.x, outCol;
|
||||
|
||||
MUL outCol.xyz, outCol, fragment.texcoord[3].x;
|
||||
|
||||
MOV result.color.xyz, outCol;
|
||||
|
||||
|
||||
END
|
115
base/glprogs/depthTest.vfp
Normal file
115
base/glprogs/depthTest.vfp
Normal file
|
@ -0,0 +1,115 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
# cgc version 3.1.0013, build date Apr 18 2012
|
||||
# command line args: -profile arbvp1 -posinv
|
||||
# source file: inkCustom_vert.cg
|
||||
#vendor NVIDIA Corporation
|
||||
#version 3.1.0.13
|
||||
#profile arbvp1
|
||||
#program main
|
||||
#semantic main.inParms : C0
|
||||
#semantic main.inParms2 : C1
|
||||
#semantic main.inParms3 : C2
|
||||
#semantic main.inParms4 : C3
|
||||
#var float4 inParms : C0 : c[0] : 0 : 1
|
||||
#var float4 inParms2 : C1 : c[1] : 1 : 1
|
||||
#var float4 inParms3 : C2 : c[2] : 2 : 1
|
||||
#var float4 inParms4 : C3 : c[3] : 3 : 1
|
||||
#var float4 genParms : $vout.TEXCOORD4 : TEX4 : 4 : 1
|
||||
#var float4 genParms2 : $vout.TEXCOORD5 : TEX5 : 5 : 1
|
||||
#var float4 genParms3 : $vout.TEXCOORD6 : TEX6 : 6 : 1
|
||||
#var float4 genParms4 : $vout.TEXCOORD7 : TEX7 : 7 : 1
|
||||
PARAM c[4] = { program.local[0..3] };
|
||||
MOV result.texcoord[4], c[0];
|
||||
MOV result.texcoord[5], c[1];
|
||||
MOV result.texcoord[6], c[2];
|
||||
MOV result.texcoord[7], c[3];
|
||||
END
|
||||
# 4 instructions, 0 R-regs
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
# cgc version 3.1.0013, build date Apr 18 2012
|
||||
# command line args: -profile arbfp1 -fastmath -fastprecision
|
||||
# source file: inkCustom_frag.cg
|
||||
#vendor NVIDIA Corporation
|
||||
#version 3.1.0.13
|
||||
#profile arbfp1
|
||||
#program main
|
||||
#semantic main.screenAdjust : ENV1
|
||||
#semantic main.depthImage : TEXUNIT0
|
||||
#var float4 screenAdjust : ENV1 : env[1] : 0 : 1
|
||||
#var sampler2D depthImage : TEXUNIT0 : texunit 0 : 1 : 1
|
||||
#var float4 genParms : $vin.TEXCOORD4 : TEX4 : 2 : 1
|
||||
#var float4 genParms2 : $vin.TEXCOORD5 : : 3 : 0
|
||||
#var float4 genParms3 : $vin.TEXCOORD6 : : 4 : 0
|
||||
#var float4 genParms4 : $vin.TEXCOORD7 : TEX7 : 5 : 1
|
||||
#var float2 fragPos : $vin.WPOS : WPOS : 6 : 1
|
||||
#var float4 outColor : $vout.COLOR : COL : 7 : 1
|
||||
#const c[0] = 1 2995 3000 -15000
|
||||
#const c[1] = 256 0.0078125 -1 0
|
||||
#const c[2] = 1 0 2 -1
|
||||
#const c[3] = 0.25
|
||||
PARAM c[4] = { { 1, 2995, 3000, -15000 },
|
||||
{ 256, 0.0078125, -1, 0 },
|
||||
{ 1, 0, 2, -1 },
|
||||
{ 0.25 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
MUL R0.zw, fragment.position.xyxy, env[1].xyxy;
|
||||
TEX R0.x, R0.zwzw, texture[0], 2D;
|
||||
MAD R0.y, R0.x, c[0], -c[0].z;
|
||||
RCP R0.y, R0.y;
|
||||
MOV R1.z, fragment.texcoord[4].x;
|
||||
MAD R1.x, R0.y, c[0].w, -fragment.texcoord[7].y;
|
||||
RCP R1.y, fragment.texcoord[7].z;
|
||||
MUL_SAT R1.x, R1, R1.y;
|
||||
ADD R1.z, fragment.texcoord[7].x, -R1;
|
||||
MAD R1.y, R1.x, R1.z, fragment.texcoord[4].x;
|
||||
MAD R2.xy, R1.y, c[1].wzzw, R0.zwzw;
|
||||
MAD R1.zw, R1.y, c[2].xyyx, R0;
|
||||
TEX R1.x, R2, texture[0], 2D;
|
||||
TEX R2.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R1.z, -R0.x, R1.x;
|
||||
ADD R1.x, R0, -R2;
|
||||
ADD R2.z, R1.x, -R1;
|
||||
MAD R2.xy, R1.y, c[2], R0.zwzw;
|
||||
MAD R1.zw, R1.y, c[1], R0;
|
||||
TEX R1.x, R2, texture[0], 2D;
|
||||
TEX R2.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R1.z, -R0.x, R1.x;
|
||||
ADD R1.x, R0, -R2;
|
||||
ADD R1.x, R1, -R1.z;
|
||||
MAD R2.xy, R1.y, c[2].xwzw, R0.zwzw;
|
||||
MAD_SAT R1.z, -R2, c[2], fragment.texcoord[7].w;
|
||||
MAD_SAT R1.x, -R1, c[2].z, fragment.texcoord[7].w;
|
||||
ADD R2.z, R1.x, R1;
|
||||
MAD R1.zw, R1.y, c[2].xywx, R0;
|
||||
TEX R1.x, R2, texture[0], 2D;
|
||||
TEX R2.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R1.z, -R0.x, R1.x;
|
||||
ADD R1.x, R0, -R2;
|
||||
ADD R2.y, R1.x, -R1.z;
|
||||
ADD R1.zw, R0, R1.y;
|
||||
ADD R0.zw, R0, -R1.y;
|
||||
TEX R2.x, R0.zwzw, texture[0], 2D;
|
||||
TEX R1.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R0.z, -R0.x, R1.x;
|
||||
ADD R0.x, R0, -R2;
|
||||
ADD R0.z, R0.x, -R0;
|
||||
MAD_SAT R0.x, -R2.y, c[2].z, fragment.texcoord[7].w;
|
||||
ADD R0.x, R2.z, R0;
|
||||
MAD_SAT R0.z, -R0, c[2], fragment.texcoord[7].w;
|
||||
ADD R0.z, R0.x, R0;
|
||||
MUL R0.x, R0.y, c[0].w;
|
||||
MAD R0.y, -R0.z, c[3].x, R0.z;
|
||||
ADD R0.x, R0, -c[1];
|
||||
MUL R0.z, R0, c[3].x;
|
||||
MUL_SAT R0.x, R0, c[1].y;
|
||||
MAD R0.x, R0, R0.y, R0.z;
|
||||
MUL_SAT R0.x, R0, fragment.texcoord[4].z;
|
||||
MAD result.color.xyz, -R0.x, fragment.texcoord[4].y, c[0].x;
|
||||
MOV result.color.w, c[0].x;
|
||||
END
|
||||
# 54 instructions, 3 R-regs
|
22
base/glprogs/foggedAdd.vfp
Normal file
22
base/glprogs/foggedAdd.vfp
Normal file
|
@ -0,0 +1,22 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[6] = { program.local[0..5] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { 1 } };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
RCP R0.x, fragment.position.w;
|
||||
MUL R0.x, fragment.position.z, R0;
|
||||
MAD_SAT R1.x, R0, fragment.texcoord[2], fragment.texcoord[2].y;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
ADD R1.x, -R1, c[0];
|
||||
MUL result.color.xyz, R0, R1.x;
|
||||
MOV result.color.w, R0;
|
||||
END
|
34
base/glprogs/foggedAddSoft.vfp
Normal file
34
base/glprogs/foggedAddSoft.vfp
Normal file
|
@ -0,0 +1,34 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[7] = { program.local[0..6] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.texcoord[3], c[2];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { -15000, 1, 2995, 3000 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
MUL R0.xy, fragment.position, env[1];
|
||||
TEX R1.x, R0, texture[1], 2D;
|
||||
MAD R1.x, R1, c[0].z, -c[0].w;
|
||||
RCP R1.y, R1.x;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
MAD R1.z, fragment.position, c[0], -c[0].w;
|
||||
RCP R1.z, R1.z;
|
||||
ADD R1.y, R1, -R1.z;
|
||||
RCP R1.x, fragment.position.w;
|
||||
MUL R1.x, fragment.position.z, R1;
|
||||
MUL R1.y, R1, fragment.texcoord[3].x;
|
||||
MAD_SAT R1.z, R1.x, fragment.texcoord[2].x, fragment.texcoord[2].y;
|
||||
MUL_SAT R1.x, R1.y, c[0];
|
||||
ADD R1.y, -R1.z, c[0];
|
||||
MUL R1.x, R1.y, R1;
|
||||
MUL result.color.xyz, R0, R1.x;
|
||||
MOV result.color.w, R0;
|
||||
END
|
37
base/glprogs/foggedAddSoftDist.vfp
Normal file
37
base/glprogs/foggedAddSoftDist.vfp
Normal file
|
@ -0,0 +1,37 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[8] = { program.local[0..7] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.texcoord[3], c[2];
|
||||
MOV result.texcoord[4], c[3];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { -15000, 1, 2995, 3000 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
MUL R1.xy, fragment.position, env[1];
|
||||
TEX R1.x, R1, texture[1], 2D;
|
||||
MAD R1.x, R1, c[0].z, -c[0].w;
|
||||
RCP R1.y, R1.x;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
MAD R1.z, fragment.position, c[0], -c[0].w;
|
||||
RCP R1.z, R1.z;
|
||||
ADD R1.y, R1, -R1.z;
|
||||
RCP R1.x, fragment.position.w;
|
||||
MUL R1.x, fragment.position.z, R1;
|
||||
MAD_SAT R1.z, R1.x, fragment.texcoord[2].x, fragment.texcoord[2].y;
|
||||
MUL R1.y, R1, fragment.texcoord[3].x;
|
||||
MUL_SAT R1.y, R1, c[0].x;
|
||||
ADD R1.z, -R1, c[0].y;
|
||||
MUL R1.y, R1.z, R1;
|
||||
MAD_SAT R1.x, R1, fragment.texcoord[4], fragment.texcoord[4].y;
|
||||
MUL R0.xyz, R0, R1.y;
|
||||
MUL result.color.xyz, R0, R1.x;
|
||||
MOV result.color.w, R0;
|
||||
END
|
21
base/glprogs/foggedBlend.vfp
Normal file
21
base/glprogs/foggedBlend.vfp
Normal file
|
@ -0,0 +1,21 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[6] = { program.local[0..5] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
RCP R1.x, fragment.position.w;
|
||||
MUL R1.w, fragment.position.z, R1.x;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
ADD R1.xyz, fragment.texcoord[1], -R0;
|
||||
MAD_SAT R1.w, R1, fragment.texcoord[2].x, fragment.texcoord[2].y;
|
||||
MAD result.color.xyz, R1.w, R1, R0;
|
||||
MOV result.color.w, R0;
|
||||
END
|
34
base/glprogs/foggedBlendSoft.vfp
Normal file
34
base/glprogs/foggedBlendSoft.vfp
Normal file
|
@ -0,0 +1,34 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[7] = { program.local[0..6] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.texcoord[3], c[2];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { -15000, 2995, 3000 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
MUL R2.xy, fragment.position, env[1];
|
||||
TEX R2.x, R2, texture[1], 2D;
|
||||
MAD R1.w, R2.x, c[0].y, -c[0].z;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
MAD R2.y, fragment.position.z, c[0], -c[0].z;
|
||||
RCP R1.w, R1.w;
|
||||
RCP R2.x, R2.y;
|
||||
ADD R2.x, R1.w, -R2;
|
||||
RCP R1.w, fragment.position.w;
|
||||
MUL R2.x, R2, fragment.texcoord[3];
|
||||
MUL R1.w, fragment.position.z, R1;
|
||||
MUL_SAT R2.x, R2, c[0];
|
||||
ADD R1.xyz, -R0, fragment.texcoord[1];
|
||||
MAD_SAT R1.w, R1, fragment.texcoord[2].x, fragment.texcoord[2].y;
|
||||
MAD result.color.xyz, R1.w, R1, R0;
|
||||
MUL result.color.w, R0, R2.x;
|
||||
END
|
37
base/glprogs/foggedBlendSoftDist.vfp
Normal file
37
base/glprogs/foggedBlendSoftDist.vfp
Normal file
|
@ -0,0 +1,37 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[8] = { program.local[0..7] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.texcoord[3], c[2];
|
||||
MOV result.texcoord[4], c[3];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { -15000, 2995, 3000 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
MUL R1.xy, fragment.position, env[1];
|
||||
TEX R2.x, R1, texture[1], 2D;
|
||||
MAD R1.w, R2.x, c[0].y, -c[0].z;
|
||||
RCP R2.x, R1.w;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
MAD R2.y, fragment.position.z, c[0], -c[0].z;
|
||||
RCP R2.y, R2.y;
|
||||
ADD R2.x, R2, -R2.y;
|
||||
RCP R1.w, fragment.position.w;
|
||||
MUL R1.w, fragment.position.z, R1;
|
||||
ADD R1.xyz, -R0, fragment.texcoord[1];
|
||||
MAD_SAT R2.y, R1.w, fragment.texcoord[2].x, fragment.texcoord[2];
|
||||
MAD result.color.xyz, R2.y, R1, R0;
|
||||
MUL R2.x, R2, fragment.texcoord[3];
|
||||
MUL_SAT R0.x, R2, c[0];
|
||||
MAD_SAT R0.y, R1.w, fragment.texcoord[4].x, fragment.texcoord[4];
|
||||
MUL R0.x, R0.w, R0;
|
||||
MUL result.color.w, R0.x, R0.y;
|
||||
END
|
22
base/glprogs/foggedMul.vfp
Normal file
22
base/glprogs/foggedMul.vfp
Normal file
|
@ -0,0 +1,22 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[6] = { program.local[0..5] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { 1 } };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
RCP R1.x, fragment.position.w;
|
||||
MUL R1.w, fragment.position.z, R1.x;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
ADD R1.xyz, -R0, c[0].x;
|
||||
MAD_SAT R1.w, R1, fragment.texcoord[2].x, fragment.texcoord[2].y;
|
||||
MAD result.color.xyz, R1.w, R1, R0;
|
||||
MOV result.color.w, R0;
|
||||
END
|
35
base/glprogs/foggedMulSoft.vfp
Normal file
35
base/glprogs/foggedMulSoft.vfp
Normal file
|
@ -0,0 +1,35 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[7] = { program.local[0..6] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.texcoord[3], c[2];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { -15000, 2995, 3000, 1 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
MUL R2.xy, fragment.position, env[1];
|
||||
TEX R2.x, R2, texture[1], 2D;
|
||||
MAD R1.w, R2.x, c[0].y, -c[0].z;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
MAD R2.y, fragment.position.z, c[0], -c[0].z;
|
||||
RCP R1.w, R1.w;
|
||||
RCP R2.x, R2.y;
|
||||
ADD R2.x, R1.w, -R2;
|
||||
RCP R1.w, fragment.position.w;
|
||||
MUL R2.x, R2, fragment.texcoord[3];
|
||||
MUL R1.w, fragment.position.z, R1;
|
||||
ADD R1.xyz, -R0, c[0].w;
|
||||
MUL_SAT R2.x, R2, c[0];
|
||||
MAD_SAT R1.w, R1, fragment.texcoord[2].x, fragment.texcoord[2].y;
|
||||
MUL R1.w, R1, R2.x;
|
||||
MAD result.color.xyz, R1.w, R1, R0;
|
||||
MOV result.color.w, R0;
|
||||
END
|
39
base/glprogs/foggedMulSoftDist.vfp
Normal file
39
base/glprogs/foggedMulSoftDist.vfp
Normal file
|
@ -0,0 +1,39 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[8] = { program.local[0..7] };
|
||||
MOV result.texcoord[1], c[0];
|
||||
MOV result.texcoord[2], c[1];
|
||||
MOV result.texcoord[3], c[2];
|
||||
MOV result.texcoord[4], c[3];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { -15000, 2995, 3000, 1 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
MUL R1.xy, fragment.position, env[1];
|
||||
TEX R2.x, R1, texture[1], 2D;
|
||||
MAD R1.w, R2.x, c[0].y, -c[0].z;
|
||||
RCP R2.x, R1.w;
|
||||
TEX R0, fragment.texcoord[0], texture[0], 2D;
|
||||
MUL R0, R0, fragment.color.primary;
|
||||
MAD R2.y, fragment.position.z, c[0], -c[0].z;
|
||||
RCP R2.y, R2.y;
|
||||
ADD R2.x, R2, -R2.y;
|
||||
RCP R1.w, fragment.position.w;
|
||||
MUL R1.w, fragment.position.z, R1;
|
||||
MAD_SAT R2.y, R1.w, fragment.texcoord[4].x, fragment.texcoord[4];
|
||||
MUL R2.x, R2, fragment.texcoord[3];
|
||||
ADD R1.xyz, -R0, c[0].w;
|
||||
MUL_SAT R2.x, R2, c[0];
|
||||
MAD_SAT R1.w, R1, fragment.texcoord[2].x, fragment.texcoord[2].y;
|
||||
ADD R2.y, -R2, c[0].w;
|
||||
MUL R1.w, R1, R2.x;
|
||||
MAX R1.w, R1, R2.y;
|
||||
MAD result.color.xyz, R1.w, R1, R0;
|
||||
MOV result.color.w, R0;
|
||||
END
|
69
base/glprogs/gaussBlurX_15.vfp
Normal file
69
base/glprogs/gaussBlurX_15.vfp
Normal file
|
@ -0,0 +1,69 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[5] = { program.local[0..3],
|
||||
{ 0.14285715 } };
|
||||
TEMP R0;
|
||||
MOV R0.x, c[0];
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
MOV result.texcoord[4].xzw, c[0];
|
||||
MUL result.texcoord[4].y, R0.x, c[4].x;
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[3] = { { 0, 0.015625, 0.03125, 0.046875 },
|
||||
{ 0.0625, 0.078125, 0.09375, 0.109375 },
|
||||
{ 0.125 } };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
TEMP R3;
|
||||
MOV R2.y, c[0].x;
|
||||
MOV R2.x, fragment.texcoord[4].y;
|
||||
MOV R0.y, c[0].x;
|
||||
MOV R0.x, fragment.texcoord[4];
|
||||
ADD R3.xy, fragment.texcoord[0], -R0;
|
||||
ADD R1.xy, R3, R2;
|
||||
ADD R2.zw, R1.xyxy, R2.xyxy;
|
||||
TEX R0.xyz, R1, texture[0], 2D;
|
||||
MUL R1.xyz, R0, c[0].z;
|
||||
TEX R0.xyz, R3, texture[0], 2D;
|
||||
MAD R0.xyz, R0, c[0].y, R1;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[0].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[1].x, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].y, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[1].z, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[2].x, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[1].z, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].y, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].x, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
MAD R0.xyz, R1, c[0].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
MAD R0.xyz, R1, c[0].z, R0;
|
||||
ADD R2.xy, R3, R2;
|
||||
TEX R1.xyz, R2, texture[0], 2D;
|
||||
MAD result.color.xyz, R1, c[0].y, R0;
|
||||
END
|
69
base/glprogs/gaussBlurY_15.vfp
Normal file
69
base/glprogs/gaussBlurY_15.vfp
Normal file
|
@ -0,0 +1,69 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[5] = { program.local[0..3],
|
||||
{ 0.14285715 } };
|
||||
TEMP R0;
|
||||
MOV R0.x, c[0];
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
MUL result.texcoord[4].y, R0.x, c[4].x;
|
||||
MOV result.texcoord[4].x, c[0];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[3] = { { 0, 0.015625, 0.03125, 0.046875 },
|
||||
{ 0.0625, 0.078125, 0.09375, 0.109375 },
|
||||
{ 0.125 } };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
TEMP R3;
|
||||
MOV R2.y, fragment.texcoord[4];
|
||||
MOV R2.x, c[0];
|
||||
MOV R0.y, fragment.texcoord[4].x;
|
||||
MOV R0.x, c[0];
|
||||
ADD R3.xy, fragment.texcoord[0], -R0;
|
||||
ADD R1.xy, R3, R2;
|
||||
ADD R2.zw, R1.xyxy, R2.xyxy;
|
||||
TEX R0.xyz, R1, texture[0], 2D;
|
||||
MUL R1.xyz, R0, c[0].z;
|
||||
TEX R0.xyz, R3, texture[0], 2D;
|
||||
MAD R0.xyz, R0, c[0].y, R1;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[0].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[1].x, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].y, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[1].z, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[2].x, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
MAD R0.xyz, R1, c[1].z, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].y, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
ADD R2.zw, R3.xyxy, R2.xyxy;
|
||||
ADD R3.xy, R2.zwzw, R2;
|
||||
MAD R0.xyz, R1, c[1].x, R0;
|
||||
TEX R1.xyz, R2.zwzw, texture[0], 2D;
|
||||
MAD R0.xyz, R1, c[0].w, R0;
|
||||
TEX R1.xyz, R3, texture[0], 2D;
|
||||
MAD R0.xyz, R1, c[0].z, R0;
|
||||
ADD R2.xy, R3, R2;
|
||||
TEX R1.xyz, R2, texture[0], 2D;
|
||||
MAD result.color.xyz, R1, c[0].y, R0;
|
||||
END
|
24
base/glprogs/glowComp.vfp
Normal file
24
base/glprogs/glowComp.vfp
Normal file
|
@ -0,0 +1,24 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[4] = { program.local[0..3] };
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
MOV result.texcoord[4], c[0];
|
||||
MOV result.texcoord[5], c[1];
|
||||
MOV result.texcoord[6], c[2];
|
||||
MOV result.texcoord[7], c[3];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { 1 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
MUL R0.xy, fragment.position, env[0];
|
||||
MUL R0.xy, R0, env[1];
|
||||
TEX R0.xyz, R0, texture[0], 2D;
|
||||
TEX R1.xyz, fragment.texcoord[0], texture[1], 2D;
|
||||
MAD R1.xyz, fragment.texcoord[4].x, R1, R0;
|
||||
TEX R0.xyz, fragment.texcoord[0], texture[2], 2D;
|
||||
MAD result.color.xyz, R0, fragment.texcoord[4].y, R1;
|
||||
MOV result.color.w, c[0].x;
|
||||
END
|
61
base/glprogs/heatHaze.vfp
Normal file
61
base/glprogs/heatHaze.vfp
Normal file
|
@ -0,0 +1,61 @@
|
|||
# Normal-Mapped Refraction Vertex Program
|
||||
#
|
||||
# Local Values
|
||||
# 0 UV scrolling values
|
||||
# 1 magnitude of deformation
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
PARAM clearVec = { 1.0, 0.0, 0.0, 1.0 };
|
||||
TEMP R0, R1, R2;
|
||||
|
||||
# tc0 : scrolled texture coordinates
|
||||
ADD result.texcoord[0].xy, vertex.texcoord[0], program.local[0];
|
||||
|
||||
# tc1 : deformation magnitude scaled by projection distance
|
||||
MOV R0, clearVec;
|
||||
DP4 R0.z, state.matrix.modelview.row[2], vertex.position;
|
||||
|
||||
DP4 R1.x, state.matrix.projection.row[0], R0;
|
||||
DP4 R1.y, state.matrix.projection.row[3], R0;
|
||||
|
||||
MAX R1.y, R1, 1.0;
|
||||
RCP R1.y, R1.y;
|
||||
MUL R1.x, R1.x, R1.y;
|
||||
MIN R1.x, R1, 0.02;
|
||||
|
||||
MUL result.texcoord[1], R1.x, program.local[1];
|
||||
|
||||
END
|
||||
|
||||
# Normal-Mapped Refraction Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 _currentRender
|
||||
# 1 normalmap
|
||||
#
|
||||
# Environment Values
|
||||
# 0 screen non power of two adjust
|
||||
# 1 fragment.position to 0.0-1.0 screen coordinates factor
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
TEMP R0, localNormal;
|
||||
|
||||
# load normalmap
|
||||
TEX localNormal, fragment.texcoord[0], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
|
||||
# offset normalized screen coordinates by scaled normal, then apply npot adjustment
|
||||
MUL R0.xy, fragment.position, program.env[1];
|
||||
MAD_SAT R0.xy, localNormal, fragment.texcoord[1], R0;
|
||||
MUL R0.xy, R0, program.env[0];
|
||||
|
||||
# look up _currentRender
|
||||
TEX result.color.xyz, R0, texture[0], 2D;
|
||||
|
||||
END
|
74
base/glprogs/heatHazeWithMask.vfp
Normal file
74
base/glprogs/heatHazeWithMask.vfp
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Normal-Mapped Masked Refraction Vertex Program
|
||||
#
|
||||
# Local Values
|
||||
# 0 UV scrolling values
|
||||
# 1 magnitude of deformation
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
PARAM clearVec = { 1.0, 0.0, 0.0, 1.0 };
|
||||
TEMP R0, R1, R2;
|
||||
|
||||
# tc0 : unmodified UV
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
|
||||
# tc1 : scrolled UV
|
||||
ADD result.texcoord[1].xy, vertex.texcoord[0], program.local[0];
|
||||
|
||||
# tc2 : deformation magnitude scaled by projection distance
|
||||
MOV R0, clearVec;
|
||||
DP4 R0.z, state.matrix.modelview.row[2], vertex.position;
|
||||
|
||||
DP4 R1.x, state.matrix.projection.row[0], R0;
|
||||
DP4 R1.y, state.matrix.projection.row[3], R0;
|
||||
|
||||
MAX R1.y, R1, 1.0;
|
||||
RCP R1.y, R1.y;
|
||||
MUL R1.x, R1.x, R1.y;
|
||||
MIN R1.x, R1, 0.02;
|
||||
|
||||
MUL result.texcoord[2], R1.x, program.local[1];
|
||||
|
||||
END
|
||||
|
||||
# Normal-Mapped Masked Refraction Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 _currentRender
|
||||
# 1 normalmap
|
||||
# 2 mask texture
|
||||
#
|
||||
# Environment Values
|
||||
# 0 screen non power of two adjust
|
||||
# 1 fragment.position to 0.0-1.0 screen coordinates factor
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
TEMP R0, localNormal, maskTex;
|
||||
|
||||
PARAM subOne = { -1, -1, -1, -1 };
|
||||
PARAM scaleTwo = { 2, 2, 2, 2 };
|
||||
|
||||
# load mask texture, skip pixel if value too low
|
||||
TEX maskTex.xy, fragment.texcoord[0], texture[2], 2D;
|
||||
SUB maskTex.xy, maskTex, 0.01;
|
||||
KIL maskTex;
|
||||
|
||||
# load normalmap and adjust by mask
|
||||
TEX localNormal, fragment.texcoord[1], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
MUL localNormal, localNormal, maskTex;
|
||||
|
||||
# offset normalized screen coordinates by scaled normal, then apply npot adjustment
|
||||
MUL R0.xy, fragment.position, program.env[1];
|
||||
MAD_SAT R0.xy, localNormal, fragment.texcoord[2], R0;
|
||||
MUL R0.xy, R0, program.env[0];
|
||||
|
||||
# look up _currentRender
|
||||
TEX result.color.xyz, R0, texture[0], 2D;
|
||||
|
||||
END
|
77
base/glprogs/heatHazeWithMaskAndVertex.vfp
Normal file
77
base/glprogs/heatHazeWithMaskAndVertex.vfp
Normal file
|
@ -0,0 +1,77 @@
|
|||
# Normal-Mapped Masked ( Texture and Vertex Color ) Refraction Vertex Program
|
||||
#
|
||||
# Local Values
|
||||
# 0 UV scrolling values
|
||||
# 1 magnitude of deformation
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
PARAM clearVec = { 1.0, 0.0, 0.0, 1.0 };
|
||||
TEMP R0, R1, R2;
|
||||
|
||||
# tc0 : unmodified UV
|
||||
MOV result.texcoord[0].xy, vertex.texcoord[0];
|
||||
|
||||
# tc1 : scrolled UV
|
||||
ADD result.texcoord[1].xy, vertex.texcoord[0], program.local[0];
|
||||
|
||||
# tc2 : deformation magnitude scaled by projection distance
|
||||
MOV R0, clearVec;
|
||||
DP4 R0.z, state.matrix.modelview.row[2], vertex.position;
|
||||
|
||||
DP4 R1.x, state.matrix.projection.row[0], R0;
|
||||
DP4 R1.y, state.matrix.projection.row[3], R0;
|
||||
|
||||
MAX R1.y, R1, 1.0;
|
||||
RCP R1.y, R1.y;
|
||||
MUL R1.x, R1.x, R1.y;
|
||||
MIN R1.x, R1, 0.02;
|
||||
|
||||
MUL result.texcoord[2], R1.x, program.local[1];
|
||||
|
||||
MOV result.color, vertex.color;
|
||||
|
||||
END
|
||||
|
||||
# Normal-Mapped Masked ( Texture and Vertex Color ) Refraction Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 _currentRender
|
||||
# 1 normalmap
|
||||
# 2 mask texture
|
||||
#
|
||||
# Environment Values
|
||||
# 0 screen non power of two adjust
|
||||
# 1 fragment.position to 0.0-1.0 screen coordinates factor
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
TEMP R0, localNormal, maskTex;
|
||||
|
||||
PARAM subOne = { -1, -1, -1, -1 };
|
||||
PARAM scaleTwo = { 2, 2, 2, 2 };
|
||||
|
||||
# load mask texture, skip pixel if value too low
|
||||
TEX maskTex.xy, fragment.texcoord[0], texture[2], 2D;
|
||||
MUL maskTex.xy, maskTex, fragment.color;
|
||||
SUB maskTex.xy, maskTex, 0.01;
|
||||
KIL maskTex;
|
||||
|
||||
# load normalmap and adjust by mask
|
||||
TEX localNormal, fragment.texcoord[1], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
MUL localNormal, localNormal, maskTex;
|
||||
|
||||
# offset normalized screen coordinates by scaled normal, then apply npot adjustment
|
||||
MUL R0.xy, fragment.position, program.env[1];
|
||||
MAD_SAT R0.xy, localNormal, fragment.texcoord[2], R0;
|
||||
MUL R0.xy, R0, program.env[0];
|
||||
|
||||
# look up _currentRender
|
||||
TEX result.color.xyz, R0, texture[0], 2D;
|
||||
|
||||
END
|
83
base/glprogs/inkEffect.vfp
Normal file
83
base/glprogs/inkEffect.vfp
Normal file
|
@ -0,0 +1,83 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[4] = { program.local[0..3] };
|
||||
MOV result.texcoord[4], c[0];
|
||||
MOV result.texcoord[5], c[1];
|
||||
MOV result.texcoord[6], c[2];
|
||||
MOV result.texcoord[7], c[3];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[3] = { { 1, 9995, 10000, -50000 },
|
||||
{ -1, 0, 1, 2 },
|
||||
{ 0.25 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
TEMP R3;
|
||||
MUL R0.zw, fragment.position.xyxy, env[1].xyxy;
|
||||
TEX R0.x, R0.zwzw, texture[0], 2D;
|
||||
MAD R0.y, R0.x, c[0], -c[0].z;
|
||||
RCP R0.y, R0.y;
|
||||
RCP R1.y, fragment.texcoord[4].w;
|
||||
MAD R1.x, R0.y, c[0].w, -fragment.texcoord[4].z;
|
||||
MUL_SAT R1.x, R1, R1.y;
|
||||
ADD R1.z, fragment.texcoord[4].y, -fragment.texcoord[4].x;
|
||||
MAD R1.y, R1.x, R1.z, fragment.texcoord[4].x;
|
||||
MAD R2.xy, R1.y, c[1], R0.zwzw;
|
||||
TEX R1.x, R2, texture[0], 2D;
|
||||
MAD R1.zw, R1.y, c[1].xyzy, R0;
|
||||
TEX R2.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R1.z, -R0.x, R2.x;
|
||||
ADD R1.x, R0, -R1;
|
||||
ADD R1.x, R1, -R1.z;
|
||||
MAD R1.w, R0.y, c[0], -fragment.texcoord[6].x;
|
||||
RCP R2.x, fragment.texcoord[6].y;
|
||||
MUL_SAT R2.w, R1, R2.x;
|
||||
MAD R2.y, fragment.texcoord[7], fragment.texcoord[7].z, -fragment.texcoord[7];
|
||||
MAD R2.z, R2.w, R2.y, fragment.texcoord[7].y;
|
||||
MAD R2.xy, R1.y, c[1].yzzw, R0.zwzw;
|
||||
MUL R3.x, -R1, R2.z;
|
||||
MAD R1.zw, R1.y, c[1].xyyx, R0;
|
||||
TEX R1.x, R2, texture[0], 2D;
|
||||
TEX R2.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R1.w, -R0.x, R2.x;
|
||||
ADD R1.z, R0.x, -R1.x;
|
||||
MAD R1.x, fragment.texcoord[5].z, fragment.texcoord[5].w, -fragment.texcoord[5].z;
|
||||
MAD R2.w, R2, R1.x, fragment.texcoord[5].z;
|
||||
ADD R1.z, R1, -R1.w;
|
||||
MUL R1.x, R2.z, -R1.z;
|
||||
MAD_SAT R1.z, R1.x, c[1].w, R2.w;
|
||||
MAD_SAT R1.x, R3, c[1].w, R2.w;
|
||||
ADD R3.x, R1, R1.z;
|
||||
MAD R2.xy, R1.y, c[1].zxzw, R0.zwzw;
|
||||
MAD R1.zw, R1.y, c[1].xyxz, R0;
|
||||
TEX R1.x, R2, texture[0], 2D;
|
||||
TEX R2.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R1.z, -R0.x, R1.x;
|
||||
ADD R1.x, R0, -R2;
|
||||
ADD R2.y, R1.x, -R1.z;
|
||||
ADD R1.zw, R0, R1.y;
|
||||
ADD R0.zw, R0, -R1.y;
|
||||
TEX R2.x, R0.zwzw, texture[0], 2D;
|
||||
TEX R1.x, R1.zwzw, texture[0], 2D;
|
||||
ADD R0.z, -R0.x, R1.x;
|
||||
ADD R0.x, R0, -R2;
|
||||
ADD R0.z, R0.x, -R0;
|
||||
MUL R0.x, R2.z, -R2.y;
|
||||
MUL R0.z, R2, -R0;
|
||||
MAD_SAT R0.x, R0, c[1].w, R2.w;
|
||||
MAD_SAT R0.z, R0, c[1].w, R2.w;
|
||||
ADD R0.x, R3, R0;
|
||||
ADD R0.x, R0, R0.z;
|
||||
MUL R0.w, R0.x, c[2].x;
|
||||
MAD R1.x, fragment.texcoord[6].z, R0.w, -R0.w;
|
||||
RCP R0.z, fragment.texcoord[7].x;
|
||||
MAD R0.x, R0.y, c[0].w, -fragment.texcoord[6].w;
|
||||
MUL_SAT R0.x, R0, R0.z;
|
||||
MAD R0.x, R0, R1, R0.w;
|
||||
MUL_SAT R0.x, R0, fragment.texcoord[5];
|
||||
MAD result.color.xyz, -R0.x, fragment.texcoord[5].y, c[0].x;
|
||||
MOV result.color.w, c[0].x;
|
||||
END
|
99
base/glprogs/inkEffectLinear.vfp
Normal file
99
base/glprogs/inkEffectLinear.vfp
Normal file
|
@ -0,0 +1,99 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[4] = { program.local[0..3] };
|
||||
MOV result.texcoord[4], c[0];
|
||||
MOV result.texcoord[5], c[1];
|
||||
MOV result.texcoord[6], c[2];
|
||||
MOV result.texcoord[7], c[3];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[3] = { { 1, 9995, 10000, -50000 },
|
||||
{ -1, 0, 1, 2 },
|
||||
{ 0.25 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
TEMP R2;
|
||||
MUL R0.zw, fragment.position.xyxy, env[1].xyxy;
|
||||
TEX R0.x, R0.zwzw, texture[0], 2D;
|
||||
MAD R0.x, R0, c[0].y, -c[0].z;
|
||||
RCP R1.x, R0.x;
|
||||
MUL R2.y, R1.x, c[0].w;
|
||||
MAD R0.x, R1, c[0].w, -fragment.texcoord[4].z;
|
||||
RCP R0.y, fragment.texcoord[4].w;
|
||||
MUL_SAT R0.x, R0, R0.y;
|
||||
ADD R1.y, fragment.texcoord[4], -fragment.texcoord[4].x;
|
||||
MAD R0.y, R0.x, R1, fragment.texcoord[4].x;
|
||||
MAD R1.zw, R0.y, c[1].xyzy, R0;
|
||||
TEX R0.x, R1.zwzw, texture[0], 2D;
|
||||
MAD R1.y, R0.x, c[0], -c[0].z;
|
||||
MAD R1.zw, R0.y, c[1].xyxy, R0;
|
||||
TEX R0.x, R1.zwzw, texture[0], 2D;
|
||||
RCP R1.y, R1.y;
|
||||
MAD R1.x, R1.y, c[0].w, -R2.y;
|
||||
MAD R0.x, R0, c[0].y, -c[0].z;
|
||||
RCP R0.x, R0.x;
|
||||
MAD R0.x, -R0, c[0].w, R2.y;
|
||||
ADD R0.x, R0, -R1;
|
||||
ADD R1.y, R2, -fragment.texcoord[6].x;
|
||||
RCP R1.z, fragment.texcoord[6].y;
|
||||
MUL_SAT R2.w, R1.y, R1.z;
|
||||
MAD R1.xy, R0.y, c[1].yxzw, R0.zwzw;
|
||||
TEX R1.x, R1, texture[0], 2D;
|
||||
MAD R1.w, fragment.texcoord[7].y, fragment.texcoord[7].z, -fragment.texcoord[7].y;
|
||||
MAD R2.x, R2.w, R1.w, fragment.texcoord[7].y;
|
||||
MAD R1.x, R1, c[0].y, -c[0].z;
|
||||
RCP R1.y, R1.x;
|
||||
MAD R1.zw, R0.y, c[1].xyyz, R0;
|
||||
MUL R2.z, -R0.x, R2.x;
|
||||
TEX R0.x, R1.zwzw, texture[0], 2D;
|
||||
MAD R0.x, R0, c[0].y, -c[0].z;
|
||||
RCP R0.x, R0.x;
|
||||
MAD R1.x, -R0, c[0].w, R2.y;
|
||||
MAD R1.y, R1, c[0].w, -R2;
|
||||
MAD R0.x, fragment.texcoord[5].z, fragment.texcoord[5].w, -fragment.texcoord[5].z;
|
||||
MAD R2.w, R2, R0.x, fragment.texcoord[5].z;
|
||||
ADD R1.x, R1, -R1.y;
|
||||
MUL R0.x, R2, -R1;
|
||||
MAD_SAT R1.x, R0, c[1].w, R2.w;
|
||||
MAD_SAT R0.x, R2.z, c[1].w, R2.w;
|
||||
ADD R2.z, R0.x, R1.x;
|
||||
MAD R1.zw, R0.y, c[1].xyzx, R0;
|
||||
MAD R1.xy, R0.y, c[1].xzzw, R0.zwzw;
|
||||
TEX R1.x, R1, texture[0], 2D;
|
||||
TEX R0.x, R1.zwzw, texture[0], 2D;
|
||||
MAD R1.y, R0.x, c[0], -c[0].z;
|
||||
MAD R0.x, R1, c[0].y, -c[0].z;
|
||||
RCP R1.x, R1.y;
|
||||
RCP R0.x, R0.x;
|
||||
MAD R1.x, R1, c[0].w, -R2.y;
|
||||
MAD R0.x, -R0, c[0].w, R2.y;
|
||||
ADD R1.z, R0.x, -R1.x;
|
||||
ADD R1.xy, R0.zwzw, R0.y;
|
||||
ADD R0.zw, R0, -R0.y;
|
||||
TEX R0.x, R1, texture[0], 2D;
|
||||
MAD R0.y, R0.x, c[0], -c[0].z;
|
||||
TEX R1.x, R0.zwzw, texture[0], 2D;
|
||||
MAD R0.x, R1, c[0].y, -c[0].z;
|
||||
RCP R0.y, R0.y;
|
||||
RCP R0.x, R0.x;
|
||||
MAD R0.x, -R0, c[0].w, R2.y;
|
||||
MAD R0.y, R0, c[0].w, -R2;
|
||||
ADD R0.y, R0.x, -R0;
|
||||
MUL R0.x, R2, -R1.z;
|
||||
MUL R0.y, R2.x, -R0;
|
||||
MAD_SAT R0.x, R0, c[1].w, R2.w;
|
||||
MAD_SAT R0.y, R0, c[1].w, R2.w;
|
||||
ADD R0.x, R2.z, R0;
|
||||
ADD R0.x, R0, R0.y;
|
||||
MUL R0.z, R0.x, c[2].x;
|
||||
MAD R0.w, fragment.texcoord[6].z, R0.z, -R0.z;
|
||||
RCP R0.y, fragment.texcoord[7].x;
|
||||
ADD R0.x, R2.y, -fragment.texcoord[6].w;
|
||||
MUL_SAT R0.x, R0, R0.y;
|
||||
MAD R0.x, R0, R0.w, R0.z;
|
||||
MUL_SAT R0.x, R0, fragment.texcoord[5];
|
||||
MAD result.color.xyz, -R0.x, fragment.texcoord[5].y, c[0].x;
|
||||
MOV result.color.w, c[0].x;
|
||||
END
|
234
base/glprogs/interaction.vfp
Normal file
234
base/glprogs/interaction.vfp
Normal file
|
@ -0,0 +1,234 @@
|
|||
# Interaction Vertex Program
|
||||
#
|
||||
# Vertex Attributes
|
||||
# 8 texcoord
|
||||
# 9 vertex normal(?)
|
||||
# 10 vertex tangent(?)
|
||||
# 11 vertex bintangent(?)
|
||||
#
|
||||
# Environment Values
|
||||
# 4 local light position
|
||||
# 5 local view position
|
||||
# 6-8 light projection UVW
|
||||
# 9 light falloff U
|
||||
# 10-11 normal map UV
|
||||
# 12-13 diffuse map UV
|
||||
# 14-15 specular map UV
|
||||
# 16 vertex colour modulate
|
||||
# 17 vertex colour add
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
TEMP R0, R1;
|
||||
|
||||
PARAM clearTC = { 0.0, 0.5, 0.0, 1.0 };
|
||||
|
||||
SUB R0.xyz, program.env[4], vertex.position;
|
||||
|
||||
# tc0 : light vector in texture space
|
||||
DP3 result.texcoord[0].x, R0, vertex.attrib[9];
|
||||
DP3 result.texcoord[0].y, R0, vertex.attrib[10];
|
||||
DP3 result.texcoord[0].z, R0, vertex.attrib[11];
|
||||
|
||||
# tc1 : normal map UV
|
||||
DP4 result.texcoord[1].x, vertex.attrib[8], program.env[10];
|
||||
DP4 result.texcoord[1].y, vertex.attrib[8], program.env[11];
|
||||
|
||||
# tc2 : light falloff
|
||||
DP4 result.texcoord[2].x, vertex.position, program.env[9];
|
||||
MOV result.texcoord[2].yzw, clearTC;
|
||||
|
||||
# tc3 : light projection
|
||||
DP4 result.texcoord[3].x, vertex.position, program.env[6];
|
||||
DP4 result.texcoord[3].y, vertex.position, program.env[7];
|
||||
DP4 result.texcoord[3].w, vertex.position, program.env[8];
|
||||
|
||||
# tc4 : diffuse map UV
|
||||
DP4 result.texcoord[4].x, vertex.attrib[8], program.env[12];
|
||||
DP4 result.texcoord[4].y, vertex.attrib[8], program.env[13];
|
||||
|
||||
# tc5 : specular map UV
|
||||
DP4 result.texcoord[5].x, vertex.attrib[8], program.env[14];
|
||||
DP4 result.texcoord[5].y, vertex.attrib[8], program.env[15];
|
||||
|
||||
SUB R1.xyz, program.env[5], vertex.position;
|
||||
|
||||
# tc6 : view vector in texture space
|
||||
DP3 result.texcoord[6].x, R1, vertex.attrib[9];
|
||||
DP3 result.texcoord[6].y, R1, vertex.attrib[10];
|
||||
DP3 result.texcoord[6].z, R1, vertex.attrib[11];
|
||||
|
||||
# no support for material stage in the engine yet
|
||||
# tc7 : gloss map UV
|
||||
#DP4 result.texcoord[7].x, vertex.attrib[8], program.env[14];
|
||||
#DP4 result.texcoord[7].y, vertex.attrib[8], program.env[15];
|
||||
|
||||
# calculate vertex color ( output = vertexColor * env[16] + env[17] )
|
||||
#
|
||||
# env[16] env[17]
|
||||
# 1.0 0 1
|
||||
# color 1 0
|
||||
# 1.0 - color -1 1
|
||||
|
||||
MAD result.color, vertex.color, program.env[16], program.env[17];
|
||||
|
||||
END
|
||||
|
||||
# Interaction Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 normalization cube map ( not used in this version )
|
||||
# 1 normal map
|
||||
# 2 light falloff texture
|
||||
# 3 light projection texture
|
||||
# 4 diffuse map
|
||||
# 5 specular map
|
||||
# 6 specular lookup table
|
||||
# 7 gloss map (material stage support in the engine is not present, yet)
|
||||
#
|
||||
# Environment Values
|
||||
# 0 diffuse modifier
|
||||
# 1 specular modifier
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
PARAM aVec = { 1.0, 0.0, 0.0, 1.0 };
|
||||
|
||||
# parms0 : specular power
|
||||
PARAM parms0 = { 24.0, 0.0, 0.0, 0.0 };
|
||||
|
||||
# gloss values ( default, high gloss, low gloss )
|
||||
PARAM gVals = { 16, 150, 2, 0 };
|
||||
|
||||
# "half-lambert" scale and bias ( set bias to something like 1 if you dont want this )
|
||||
PARAM halfLamb = { 0.4, 0.6, 0, 0 };
|
||||
|
||||
# lighting bias ( more of the model gets lit than normally ), shadow sharpen scale, shadow sharpen bias
|
||||
PARAM p0 = { 0.1, 8, -1.5, 0 };
|
||||
|
||||
TEMP toView, toLight, halfVec, zeDots, lightProj, R0, R1, diffColor, specColor, outColor, localNormal;
|
||||
|
||||
# normalize view vector
|
||||
DP3 toView.w, fragment.texcoord[6], fragment.texcoord[6];
|
||||
RSQ toView.w, toView.w;
|
||||
MUL toView.xyz, toView.w, fragment.texcoord[6];
|
||||
|
||||
# normalize light vector
|
||||
DP3 toLight.w, fragment.texcoord[0], fragment.texcoord[0];
|
||||
RSQ toLight.w, toLight.w;
|
||||
MUL toLight.xyz, toLight.w, fragment.texcoord[0];
|
||||
|
||||
# construct half vector
|
||||
ADD halfVec.xyz, toView, toLight;
|
||||
DP3 halfVec.w, halfVec, halfVec;
|
||||
RSQ halfVec.w, halfVec.w;
|
||||
MUL halfVec.xyz, halfVec.w, halfVec;
|
||||
|
||||
# look up normal ( rxgb swizzle )
|
||||
TEX localNormal, fragment.texcoord[1], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
|
||||
DP3 R0.x, localNormal, localNormal;
|
||||
RSQ R0.x, R0.x;
|
||||
MUL localNormal.xyz, R0.x, localNormal;
|
||||
|
||||
# load light projection and falloff
|
||||
TXP lightProj.xyz, fragment.texcoord[3], texture[3], 2D;
|
||||
TXP R0.xyz, fragment.texcoord[2], texture[2], 2D;
|
||||
MUL lightProj.xyz, lightProj, R0;
|
||||
|
||||
# load diffuse map
|
||||
TEX diffColor.xyz, fragment.texcoord[4], texture[4], 2D;
|
||||
MUL diffColor.xyz, diffColor, program.env[0];
|
||||
|
||||
# calculate dotproducts for diffuse/specular
|
||||
DP3 zeDots.x, toLight, localNormal;
|
||||
DP3_SAT zeDots.y, halfVec, localNormal;
|
||||
|
||||
# apply specular power
|
||||
POW R0.x, zeDots.y, parms0.x;
|
||||
MUL R0.x, R0, program.env[1];
|
||||
|
||||
# default Doom3 doubles the specularity
|
||||
ADD R0.x, R0, R0;
|
||||
|
||||
# look up specular map
|
||||
TEX specColor, fragment.texcoord[5], texture[5], 2D;
|
||||
|
||||
# assemble lighting
|
||||
MAD outColor.xyz, specColor, R0.x, diffColor;
|
||||
|
||||
# TOON (unoptimized wip)
|
||||
#DP3 zeDots.w, toView, localNormal;
|
||||
#DP3 zeDots.x, toLight, localNormal;
|
||||
#DP3 zeDots.x, toLight, {0,0,1};
|
||||
MAD_SAT zeDots.z, zeDots.x, halfLamb.x, halfLamb.y;
|
||||
# slightly increase diffuse response
|
||||
ADD_SAT zeDots.x, zeDots, p0.x;
|
||||
|
||||
# shadow sharpening
|
||||
MAD_SAT zeDots.x, zeDots, p0.y, p0.z;
|
||||
#
|
||||
|
||||
# mix in half-lambert ?
|
||||
MUL zeDots.x, zeDots.x, zeDots.z;
|
||||
|
||||
# gloss mapping in specular texture alpha ( must be below ~250 to be used, otherwise default gloss value is used )
|
||||
# subtract 0.98, if value is above 0, consider it as not being glossmapped ( because texture with no alpha has alpha of 1 by default )
|
||||
|
||||
TEMP gloss;
|
||||
SUB gloss.w, specColor.w, 0.98;
|
||||
# lerp between 2 - 150 gloss power
|
||||
LRP gloss.x, specColor.w, gVals.y, gVals.z;
|
||||
CMP gloss.x, gloss.w, gloss, gVals;
|
||||
#CMP gloss.x, gloss.w, gVals, gloss;
|
||||
#
|
||||
|
||||
|
||||
# specular shading
|
||||
#MAD R0.x, R0, 0.5, 0.2;
|
||||
#FLR R0.x, R0.x;
|
||||
#MUL R0.x, R0.x, 2;
|
||||
#MUL R0.x, R0.x, 0.75;
|
||||
#
|
||||
#MAD_SAT R0.x, zeDots.y, gloss.x, gloss.y;
|
||||
|
||||
POW_SAT R0.x, zeDots.y, gloss.x;
|
||||
|
||||
#MAD_SAT R0.x, zeDots.y, 8.0, -7;
|
||||
##MAD_SAT R0.y, zeDots.y, 64.0, -63;
|
||||
#MAD_SAT R0.y, zeDots.y
|
||||
#ADD R0.x, R0.x, R0.y;
|
||||
MUL R0.x, R0, 2;
|
||||
MUL R0.x, R0, program.env[1];
|
||||
#
|
||||
|
||||
#MUL zeDots.x, zeDots.x, zeDots.z;
|
||||
MUL R0.x, R0, zeDots.x;
|
||||
LRP zeDots.x, zeDots.x, 1.0, 0.25;
|
||||
|
||||
TEX R1.y, aVec, texture[0], CUBE;
|
||||
SUB R1.y, R1, 0.2;
|
||||
#DP3 zeDots.w, toView, localNormal;
|
||||
#MAD_SAT zeDots.w, zeDots.w, 0.4, 0.6;
|
||||
CMP zeDots.x, R1.y, 1.0, zeDots.x;
|
||||
|
||||
MOV outColor, diffColor;
|
||||
MAD outColor, specColor, R0.x, diffColor;
|
||||
#MAD_SAT zeDots.w, zeDots, 90, -6;
|
||||
#MUL outColor, zeDots.w, outColor;
|
||||
#
|
||||
|
||||
MUL outColor.xyz, outColor, zeDots.x;
|
||||
MUL outColor.xyz, outColor, lightProj;
|
||||
|
||||
#MOV outColor.xyz, gloss.x;
|
||||
|
||||
# apply vertex color
|
||||
MUL result.color.xyz, outColor, fragment.color;
|
||||
|
||||
END
|
174
base/glprogs/interaction_nospecular.vfp
Normal file
174
base/glprogs/interaction_nospecular.vfp
Normal file
|
@ -0,0 +1,174 @@
|
|||
# Interaction Vertex Program
|
||||
#
|
||||
# Vertex Attributes
|
||||
# 8 texcoord
|
||||
# 9 vertex normal(?)
|
||||
# 10 vertex tangent(?)
|
||||
# 11 vertex bintangent(?)
|
||||
#
|
||||
# Environment Values
|
||||
# 4 local light position
|
||||
# 5 local view position
|
||||
# 6-8 light projection UVW
|
||||
# 9 light falloff U
|
||||
# 10-11 normal map UV
|
||||
# 12-13 diffuse map UV
|
||||
# 14-15 specular map UV
|
||||
# 16 vertex colour modulate
|
||||
# 17 vertex colour add
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
TEMP R0, R1;
|
||||
|
||||
PARAM clearTC = { 0.0, 0.5, 0.0, 1.0 };
|
||||
|
||||
SUB R0.xyz, program.env[4], vertex.position;
|
||||
|
||||
# tc0 : light vector in texture space
|
||||
DP3 result.texcoord[0].x, R0, vertex.attrib[9];
|
||||
DP3 result.texcoord[0].y, R0, vertex.attrib[10];
|
||||
DP3 result.texcoord[0].z, R0, vertex.attrib[11];
|
||||
|
||||
# tc1 : normal map UV
|
||||
DP4 result.texcoord[1].x, vertex.attrib[8], program.env[10];
|
||||
DP4 result.texcoord[1].y, vertex.attrib[8], program.env[11];
|
||||
|
||||
# tc2 : light falloff
|
||||
DP4 result.texcoord[2].x, vertex.position, program.env[9];
|
||||
MOV result.texcoord[2].yzw, clearTC;
|
||||
|
||||
# tc3 : light projection
|
||||
DP4 result.texcoord[3].x, vertex.position, program.env[6];
|
||||
DP4 result.texcoord[3].y, vertex.position, program.env[7];
|
||||
DP4 result.texcoord[3].w, vertex.position, program.env[8];
|
||||
|
||||
# tc4 : diffuse map UV
|
||||
DP4 result.texcoord[4].x, vertex.attrib[8], program.env[12];
|
||||
DP4 result.texcoord[4].y, vertex.attrib[8], program.env[13];
|
||||
|
||||
# tc5 : specular map UV
|
||||
DP4 result.texcoord[5].x, vertex.attrib[8], program.env[14];
|
||||
DP4 result.texcoord[5].y, vertex.attrib[8], program.env[15];
|
||||
|
||||
SUB R1.xyz, program.env[5], vertex.position;
|
||||
|
||||
# tc6 : view vector in texture space
|
||||
DP3 result.texcoord[6].x, R1, vertex.attrib[9];
|
||||
DP3 result.texcoord[6].y, R1, vertex.attrib[10];
|
||||
DP3 result.texcoord[6].z, R1, vertex.attrib[11];
|
||||
|
||||
# calculate vertex color ( output = vertexColor * env[16] + env[17] )
|
||||
#
|
||||
# env[16] env[17]
|
||||
# 1.0 0 1
|
||||
# color 1 0
|
||||
# 1.0 - color -1 1
|
||||
|
||||
MAD result.color, vertex.color, program.env[16], program.env[17];
|
||||
|
||||
END
|
||||
|
||||
# Interaction Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 normalization cube map ( not used in this version )
|
||||
# 1 normal map
|
||||
# 2 light falloff texture
|
||||
# 3 light projection texture
|
||||
# 4 diffuse map
|
||||
# 5 specular map
|
||||
# 6 specular lookup table
|
||||
#
|
||||
# Environment Values
|
||||
# 0 diffuse modifier
|
||||
# 1 specular modifier
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
# parms0 : specular power
|
||||
PARAM parms0 = { 24.0, 0.0, 0.0, 0.0 };
|
||||
|
||||
TEMP toView, toLight, halfVec, zeDots, lightProj, R0, R1, diffColor, specColor, outColor, localNormal;
|
||||
|
||||
# normalize view vector
|
||||
DP3 toView.w, fragment.texcoord[6], fragment.texcoord[6];
|
||||
RSQ toView.w, toView.w;
|
||||
MUL toView.xyz, toView.w, fragment.texcoord[6];
|
||||
|
||||
# normalize light vector
|
||||
DP3 toLight.w, fragment.texcoord[0], fragment.texcoord[0];
|
||||
RSQ toLight.w, toLight.w;
|
||||
MUL toLight.xyz, toLight.w, fragment.texcoord[0];
|
||||
|
||||
# construct half vector
|
||||
ADD halfVec.xyz, toView, toLight;
|
||||
DP3 halfVec.w, halfVec, halfVec;
|
||||
RSQ halfVec.w, halfVec.w;
|
||||
MUL halfVec.xyz, halfVec.w, halfVec;
|
||||
|
||||
# look up normal ( rxgb swizzle )
|
||||
TEX localNormal, fragment.texcoord[1], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
|
||||
DP3 R0.x, localNormal, localNormal;
|
||||
RSQ R0.x, R0.x;
|
||||
MUL localNormal.xyz, R0.x, localNormal;
|
||||
|
||||
# load light projection and falloff
|
||||
TXP lightProj.xyz, fragment.texcoord[3], texture[3], 2D;
|
||||
TXP R0.xyz, fragment.texcoord[2], texture[2], 2D;
|
||||
MUL lightProj.xyz, lightProj, R0;
|
||||
|
||||
# load diffuse map
|
||||
TEX diffColor.xyz, fragment.texcoord[4], texture[4], 2D;
|
||||
MUL diffColor.xyz, diffColor, program.env[0];
|
||||
|
||||
# calculate dotproducts for diffuse/specular
|
||||
DP3 zeDots.x, toLight, localNormal;
|
||||
DP3_SAT zeDots.y, halfVec, localNormal;
|
||||
|
||||
# apply specular power
|
||||
POW R0.x, zeDots.y, parms0.x;
|
||||
MUL R0.x, R0, program.env[1];
|
||||
|
||||
# default Doom3 doubles the specularity
|
||||
ADD R0.x, R0, R0;
|
||||
|
||||
# look up specular map
|
||||
TEX specColor.xyz, fragment.texcoord[5], texture[5], 2D;
|
||||
|
||||
# assemble lighting
|
||||
MAD outColor.xyz, specColor, R0.x, diffColor;
|
||||
|
||||
# TOON (unoptimized wip)
|
||||
DP3 zeDots.w, toView, localNormal;
|
||||
DP3 zeDots.x, toLight, localNormal;
|
||||
MAD zeDots.z, zeDots.x, 0.6, 0.4;
|
||||
ADD_SAT zeDots.x, zeDots, 0.1;
|
||||
MAD_SAT zeDots.x, zeDots, 24, -11.5;
|
||||
|
||||
MAD R0.x, R0, 0.5, 0.5;
|
||||
FLR R0.x, R0.x;
|
||||
MUL R0.x, R0.x, 2;
|
||||
MUL R0.x, R0.x, 0;
|
||||
|
||||
MUL zeDots.x, zeDots.x, zeDots.z;
|
||||
LRP zeDots.x, zeDots.x, 1.0, 0.3;
|
||||
MOV outColor, diffColor;
|
||||
MAD outColor, specColor, R0.x, diffColor;
|
||||
MAD_SAT zeDots.w, zeDots, 90, -6;
|
||||
MUL outColor, zeDots.w, outColor;
|
||||
#
|
||||
|
||||
MUL outColor.xyz, outColor, zeDots.x;
|
||||
MUL outColor.xyz, outColor, lightProj;
|
||||
|
||||
# apply vertex color
|
||||
MUL result.color.xyz, outColor, fragment.color;
|
||||
|
||||
END
|
153
base/glprogs/interaction_original.vfp
Normal file
153
base/glprogs/interaction_original.vfp
Normal file
|
@ -0,0 +1,153 @@
|
|||
# Interaction Vertex Program
|
||||
#
|
||||
# Vertex Attributes
|
||||
# 8 texcoord
|
||||
# 9 vertex normal(?)
|
||||
# 10 vertex tangent(?)
|
||||
# 11 vertex bintangent(?)
|
||||
#
|
||||
# Environment Values
|
||||
# 4 local light position
|
||||
# 5 local view position
|
||||
# 6-8 light projection UVW
|
||||
# 9 light falloff U
|
||||
# 10-11 normal map UV
|
||||
# 12-13 diffuse map UV
|
||||
# 14-15 specular map UV
|
||||
# 16 vertex colour modulate
|
||||
# 17 vertex colour add
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
TEMP R0, R1;
|
||||
|
||||
PARAM clearTC = { 0.0, 0.5, 0.0, 1.0 };
|
||||
|
||||
SUB R0.xyz, program.env[4], vertex.position;
|
||||
|
||||
# tc0 : light vector in texture space
|
||||
DP3 result.texcoord[0].x, R0, vertex.attrib[9];
|
||||
DP3 result.texcoord[0].y, R0, vertex.attrib[10];
|
||||
DP3 result.texcoord[0].z, R0, vertex.attrib[11];
|
||||
|
||||
# tc1 : normal map UV
|
||||
DP4 result.texcoord[1].x, vertex.attrib[8], program.env[10];
|
||||
DP4 result.texcoord[1].y, vertex.attrib[8], program.env[11];
|
||||
|
||||
# tc2 : light falloff
|
||||
DP4 result.texcoord[2].x, vertex.position, program.env[9];
|
||||
MOV result.texcoord[2].yzw, clearTC;
|
||||
|
||||
# tc3 : light projection
|
||||
DP4 result.texcoord[3].x, vertex.position, program.env[6];
|
||||
DP4 result.texcoord[3].y, vertex.position, program.env[7];
|
||||
DP4 result.texcoord[3].w, vertex.position, program.env[8];
|
||||
|
||||
# tc4 : diffuse map UV
|
||||
DP4 result.texcoord[4].x, vertex.attrib[8], program.env[12];
|
||||
DP4 result.texcoord[4].y, vertex.attrib[8], program.env[13];
|
||||
|
||||
# tc5 : specular map UV
|
||||
DP4 result.texcoord[5].x, vertex.attrib[8], program.env[14];
|
||||
DP4 result.texcoord[5].y, vertex.attrib[8], program.env[15];
|
||||
|
||||
SUB R1.xyz, program.env[5], vertex.position;
|
||||
|
||||
# tc6 : view vector in texture space
|
||||
DP3 result.texcoord[6].x, R1, vertex.attrib[9];
|
||||
DP3 result.texcoord[6].y, R1, vertex.attrib[10];
|
||||
DP3 result.texcoord[6].z, R1, vertex.attrib[11];
|
||||
|
||||
# calculate vertex color ( output = vertexColor * env[16] + env[17] )
|
||||
#
|
||||
# env[16] env[17]
|
||||
# 1.0 0 1
|
||||
# color 1 0
|
||||
# 1.0 - color -1 1
|
||||
|
||||
MAD result.color, vertex.color, program.env[16], program.env[17];
|
||||
|
||||
END
|
||||
|
||||
# Interaction Fragment Program
|
||||
#
|
||||
# Textures
|
||||
# 0 normalization cube map ( not used in this version )
|
||||
# 1 normal map
|
||||
# 2 light falloff texture
|
||||
# 3 light projection texture
|
||||
# 4 diffuse map
|
||||
# 5 specular map
|
||||
# 6 specular lookup table
|
||||
#
|
||||
# Environment Values
|
||||
# 0 diffuse modifier
|
||||
# 1 specular modifier
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
# parms0 : specular power
|
||||
PARAM parms0 = { 12.0, 0.0, 0.0, 0.0 };
|
||||
|
||||
TEMP toView, toLight, halfVec, zeDots, lightProj, R0, diffColor, specColor, outColor, localNormal;
|
||||
|
||||
# normalize view vector
|
||||
DP3 toView.w, fragment.texcoord[6], fragment.texcoord[6];
|
||||
RSQ toView.w, toView.w;
|
||||
MUL toView.xyz, toView.w, fragment.texcoord[6];
|
||||
|
||||
# normalize light vector
|
||||
DP3 toLight.w, fragment.texcoord[0], fragment.texcoord[0];
|
||||
RSQ toLight.w, toLight.w;
|
||||
MUL toLight.xyz, toLight.w, fragment.texcoord[0];
|
||||
|
||||
# construct half vector
|
||||
ADD halfVec.xyz, toView, toLight;
|
||||
DP3 halfVec.w, halfVec, halfVec;
|
||||
RSQ halfVec.w, halfVec.w;
|
||||
MUL halfVec.xyz, halfVec.w, halfVec;
|
||||
|
||||
# look up normal ( rxgb swizzle )
|
||||
TEX localNormal, fragment.texcoord[1], texture[1], 2D;
|
||||
MAD localNormal.xyz, localNormal.wyzw, 2.0, -1.0;
|
||||
|
||||
DP3 R0.x, localNormal, localNormal;
|
||||
RSQ R0.x, R0.x;
|
||||
MUL localNormal.xyz, R0.x, localNormal;
|
||||
|
||||
# load light projection and falloff
|
||||
TXP lightProj.xyz, fragment.texcoord[3], texture[3], 2D;
|
||||
TXP R0.xyz, fragment.texcoord[2], texture[2], 2D;
|
||||
MUL lightProj.xyz, lightProj, R0;
|
||||
|
||||
# load diffuse map
|
||||
TEX diffColor.xyz, fragment.texcoord[4], texture[4], 2D;
|
||||
MUL diffColor.xyz, diffColor, program.env[0];
|
||||
|
||||
# calculate dotproducts for diffuse/specular
|
||||
DP3 zeDots.x, toLight, localNormal;
|
||||
DP3_SAT zeDots.y, halfVec, localNormal;
|
||||
|
||||
# apply specular power
|
||||
POW R0.x, zeDots.y, parms0.x;
|
||||
MUL R0.x, R0, program.env[1];
|
||||
|
||||
# default Doom3 doubles the specularity
|
||||
ADD R0.x, R0, R0;
|
||||
|
||||
# look up specular map
|
||||
TEX specColor.xyz, fragment.texcoord[5], texture[5], 2D;
|
||||
|
||||
# assemble lighting
|
||||
MAD outColor.xyz, specColor, R0.x, diffColor;
|
||||
MUL outColor.xyz, outColor, zeDots.x;
|
||||
MUL outColor.xyz, outColor, lightProj;
|
||||
|
||||
# apply vertex color
|
||||
MUL result.color.xyz, outColor, fragment.color;
|
||||
|
||||
END
|
18
base/glprogs/portalSky.vfp
Normal file
18
base/glprogs/portalSky.vfp
Normal file
|
@ -0,0 +1,18 @@
|
|||
# this really just displays a texture in screen-space
|
||||
|
||||
!!ARBvp1.0
|
||||
|
||||
OPTION ARB_position_invariant;
|
||||
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
END
|
||||
|
||||
!!ARBfp1.0
|
||||
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
|
||||
TEMP R0;
|
||||
MUL R0.xy, fragment.position, program.env[1];
|
||||
MUL R0.xy, R0, program.env[0];
|
||||
TEX result.color.xyz, R0, texture[0], 2D;
|
||||
END
|
13
base/glprogs/shadow.vp
Normal file
13
base/glprogs/shadow.vp
Normal file
|
@ -0,0 +1,13 @@
|
|||
!!ARBvp1.0
|
||||
|
||||
TEMP R0;
|
||||
|
||||
SUB R0, vertex.position, program.env[4];
|
||||
MAD R0, program.env[4], R0.w, R0;
|
||||
|
||||
DP4 result.position.x, state.matrix.mvp.row[0], R0;
|
||||
DP4 result.position.y, state.matrix.mvp.row[1], R0;
|
||||
DP4 result.position.z, state.matrix.mvp.row[2], R0;
|
||||
DP4 result.position.w, state.matrix.mvp.row[3], R0;
|
||||
|
||||
END
|
24
base/glprogs/simpleFresnel.vfp
Normal file
24
base/glprogs/simpleFresnel.vfp
Normal file
|
@ -0,0 +1,24 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[2] = { program.local[0..1] };
|
||||
PARAM env[] = { program.env[0..5] };
|
||||
TEMP R0;
|
||||
ADD R0.xyz, -vertex.position, env[5];
|
||||
MOV result.color, vertex.color;
|
||||
MOV result.texcoord[2], c[0];
|
||||
MOV result.texcoord[3], c[1];
|
||||
DP3 result.texcoord[0].z, vertex.normal, R0;
|
||||
DP3 result.texcoord[0].y, R0, vertex.attrib[10];
|
||||
DP3 result.texcoord[0].x, R0, vertex.attrib[9];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { 1 } };
|
||||
TEMP R0;
|
||||
DP3 R0.x, fragment.texcoord[0], fragment.texcoord[0];
|
||||
RSQ R0.x, R0.x;
|
||||
MAD R0.x, -R0, fragment.texcoord[0].z, c[0];
|
||||
POW R0.x, R0.x, fragment.texcoord[2].x;
|
||||
MAD R0.x, R0, fragment.texcoord[2].y, fragment.texcoord[2].z;
|
||||
MUL result.color, fragment.texcoord[3], R0.x;
|
||||
END
|
27
base/glprogs/softParticleAlpha.vfp
Normal file
27
base/glprogs/softParticleAlpha.vfp
Normal file
|
@ -0,0 +1,27 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[1] = { program.local[0] };
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
MOV result.texcoord[4], c[0];
|
||||
MOV result.color, vertex.color;
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
PARAM c[1] = { { -15000, 2995, 3000 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
TEMP R1;
|
||||
MUL R0.xy, fragment.position, env[1];
|
||||
TEX R0.x, R0, texture[0], 2D;
|
||||
MAD R0.y, fragment.position.z, c[0], -c[0].z;
|
||||
MAD R0.x, R0, c[0].y, -c[0].z;
|
||||
RCP R0.y, R0.y;
|
||||
RCP R0.x, R0.x;
|
||||
ADD R0.x, R0, -R0.y;
|
||||
MUL R1.x, R0, fragment.texcoord[4];
|
||||
TEX R0, fragment.texcoord[0], texture[1], 2D;
|
||||
MUL_SAT R1.x, R1, c[0];
|
||||
MUL R0.w, R0, fragment.color.primary;
|
||||
MUL result.color.w, R0, R1.x;
|
||||
MUL result.color.xyz, R0, fragment.color.primary;
|
||||
END
|
60
base/glprogs/softParticleRGB.vfp
Normal file
60
base/glprogs/softParticleRGB.vfp
Normal file
|
@ -0,0 +1,60 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
# cgc version 3.1.0013, build date Apr 18 2012
|
||||
# command line args: -profile arbvp1 -posinv
|
||||
# source file: softParticleRGB_vert.cg
|
||||
#vendor NVIDIA Corporation
|
||||
#version 3.1.0.13
|
||||
#profile arbvp1
|
||||
#program main
|
||||
#semantic main.inParms : C0
|
||||
#var float4 inParms : C0 : c[0] : 0 : 1
|
||||
#var float4 vertexTC : $vin.TEXCOORD0 : TEXCOORD0 : 1 : 1
|
||||
#var float4 vertexColor : $vin.COLOR0 : COLOR0 : 2 : 1
|
||||
#var float4 texCoord : $vout.TEXCOORD0 : TEX0 : 3 : 1
|
||||
#var float4 genParms : $vout.TEXCOORD4 : TEX4 : 4 : 1
|
||||
#var float4 outColor : $vout.COLOR : COL0 : 5 : 1
|
||||
PARAM c[1] = { program.local[0] };
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
MOV result.texcoord[4], c[0];
|
||||
MOV result.color, vertex.color;
|
||||
END
|
||||
# 3 instructions, 0 R-regs
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
# cgc version 3.1.0013, build date Apr 18 2012
|
||||
# command line args: -profile arbfp1 -fastmath -fastprecision
|
||||
# source file: softParticleRGB_frag.cg
|
||||
#vendor NVIDIA Corporation
|
||||
#version 3.1.0.13
|
||||
#profile arbfp1
|
||||
#program main
|
||||
#semantic main.screenAdjust : ENV1
|
||||
#semantic main.depthImage : TEXUNIT0
|
||||
#semantic main.mainImage : TEXUNIT1
|
||||
#var float4 screenAdjust : ENV1 : env[1] : 0 : 1
|
||||
#var sampler2D depthImage : TEXUNIT0 : texunit 0 : 1 : 1
|
||||
#var sampler2D mainImage : TEXUNIT1 : texunit 1 : 2 : 1
|
||||
#var float3 fragPos : $vin.WPOS : WPOS : 3 : 1
|
||||
#var float4 texCoord : $vin.TEXCOORD0 : TEX0 : 4 : 1
|
||||
#var float4 genParms : $vin.TEXCOORD4 : TEX4 : 5 : 1
|
||||
#var float4 vColor : $vin.COLOR : COL0 : 6 : 1
|
||||
#var float4 outColor : $vout.COLOR : COL : 7 : 1
|
||||
#const c[0] = -15000 2995 3000
|
||||
PARAM c[1] = { { -15000, 2995, 3000 } };
|
||||
PARAM env[] = { program.env[0..1] };
|
||||
TEMP R0;
|
||||
MUL R0.xy, fragment.position, env[1];
|
||||
TEX R0.x, R0, texture[0], 2D;
|
||||
MAD R0.y, fragment.position.z, c[0], -c[0].z;
|
||||
MAD R0.x, R0, c[0].y, -c[0].z;
|
||||
RCP R0.y, R0.y;
|
||||
RCP R0.x, R0.x;
|
||||
ADD R0.x, R0, -R0.y;
|
||||
MUL R0.w, R0.x, fragment.texcoord[4].x;
|
||||
TEX R0.xyz, fragment.texcoord[0], texture[1], 2D;
|
||||
MUL_SAT R0.w, R0, c[0].x;
|
||||
MUL R0.xyz, R0, fragment.color.primary;
|
||||
MUL result.color.xyz, R0, R0.w;
|
||||
END
|
||||
# 12 instructions, 1 R-regs
|
14
base/glprogs/zFadeSimple.vfp
Normal file
14
base/glprogs/zFadeSimple.vfp
Normal file
|
@ -0,0 +1,14 @@
|
|||
!!ARBvp1.0
|
||||
OPTION ARB_position_invariant;
|
||||
PARAM c[6] = { program.local[0..5] };
|
||||
MOV result.texcoord[0], c[0];
|
||||
MOV result.texcoord[1], c[1];
|
||||
END
|
||||
!!ARBfp1.0
|
||||
OPTION ARB_precision_hint_fastest;
|
||||
TEMP R0;
|
||||
RCP R0.x, fragment.position.w;
|
||||
MUL R0.x, fragment.position.z, R0;
|
||||
MAD_SAT R0.x, R0, fragment.texcoord[0], fragment.texcoord[0].y;
|
||||
MUL result.color, R0.x, fragment.texcoord[1];
|
||||
END
|
12
base/materials/colors.mtr
Normal file
12
base/materials/colors.mtr
Normal file
|
@ -0,0 +1,12 @@
|
|||
// --------------------------------------------------------------
|
||||
// COMMON COLORS
|
||||
// --------------------------------------------------------------
|
||||
textures/color/black
|
||||
{
|
||||
noFragment
|
||||
{
|
||||
blend diffusemap
|
||||
map textures/colors/black.tga
|
||||
linear // no mip maps
|
||||
}
|
||||
}
|
307
base/materials/common.mtr
Normal file
307
base/materials/common.mtr
Normal file
|
@ -0,0 +1,307 @@
|
|||
_default
|
||||
{
|
||||
{
|
||||
map _default
|
||||
}
|
||||
}
|
||||
|
||||
_tracemodel
|
||||
{
|
||||
collision
|
||||
}
|
||||
|
||||
// a caulk brush will behave as a normal solid surface
|
||||
// for collision detection and utility flood filling, and
|
||||
// should be used whenever you know the area isn't going to
|
||||
// be visible, but it needs to be closed off for things to
|
||||
// work right. Curves and models don't stop the utility
|
||||
// flood filling, so you need to have solid brushes behind
|
||||
// them. Setting the faces that won't ever be seen to
|
||||
// caulk will save some rendering time and data space.
|
||||
textures/common/caulk
|
||||
{
|
||||
qer_editorimage textures/editor/caulk.tga
|
||||
noshadows
|
||||
forceOpaque // will still seal levels
|
||||
}
|
||||
|
||||
//==================================================================================
|
||||
// Clipping materials begins
|
||||
//==================================================================================
|
||||
// a monster clip brush is solid to monsters only
|
||||
textures/common/monster_clip
|
||||
{
|
||||
qer_editorimage textures/editor/monsterclip.jpg
|
||||
nonsolid
|
||||
monsterclip
|
||||
noshadows
|
||||
}
|
||||
|
||||
// only solid for players
|
||||
textures/common/player_clip
|
||||
{
|
||||
qer_editorimage textures/editor/playerclip.tga
|
||||
noimpact
|
||||
nonsolid
|
||||
playerclip
|
||||
noshadows
|
||||
}
|
||||
|
||||
// solid for all entities, including projectiles
|
||||
textures/common/full_clip
|
||||
{
|
||||
qer_editorimage textures/editor/fullclip.tga
|
||||
monsterclip
|
||||
playerclip
|
||||
moveableclip
|
||||
noshadows
|
||||
}
|
||||
|
||||
// solid only for projectiles
|
||||
textures/common/weapon_clip
|
||||
{
|
||||
qer_editorimage textures/editor/weap_clip.tga
|
||||
moveableclip
|
||||
noshadows
|
||||
}
|
||||
|
||||
// solid to players and monsters only
|
||||
textures/common/clip
|
||||
{
|
||||
qer_editorimage textures/editor/clip.tga
|
||||
noimpact
|
||||
nonsolid
|
||||
monsterclip
|
||||
playerclip
|
||||
noshadows
|
||||
}
|
||||
|
||||
// ASE/LWO models can have a hull (simplified copy of the original mesh) with this material so that engine
|
||||
// uses lower poly model for collision detection instead of the actual visible model to improve performance
|
||||
textures/common/collision
|
||||
{
|
||||
qer_editorimage textures/editor/collision.tga
|
||||
noshadows
|
||||
collision
|
||||
}
|
||||
|
||||
textures/common/collision_terrain
|
||||
{
|
||||
qer_editorimage textures/editor/collision.tga
|
||||
noshadows
|
||||
noSelfShadow
|
||||
noimpact
|
||||
nosteps
|
||||
noOverlays
|
||||
collision
|
||||
}
|
||||
//==================================================================================
|
||||
// Clipping materials end
|
||||
//==================================================================================
|
||||
|
||||
// aassolid brushes create solid space in AAS files
|
||||
textures/common/aassolid
|
||||
{
|
||||
qer_editorimage textures/editor/aas_solid.tga
|
||||
qer_nocarve
|
||||
nonsolid
|
||||
noshadows
|
||||
aassolid
|
||||
}
|
||||
|
||||
// aasobstacle brushes are used to compile obstacles into AAS
|
||||
// that can be enabled/disabled
|
||||
textures/common/aasobstacle
|
||||
{
|
||||
qer_editorimage textures/editor/aas_obstacle.tga
|
||||
qer_nocarve
|
||||
nonsolid
|
||||
noshadows
|
||||
aasobstacle
|
||||
}
|
||||
|
||||
// surfaces with this material will not render in-game
|
||||
textures/common/nodraw
|
||||
{
|
||||
qer_editorimage textures/editor/nodraw.tga
|
||||
nonsolid
|
||||
noShadows
|
||||
noSelfShadow
|
||||
}
|
||||
|
||||
// sound speaker entity needs a material too :)
|
||||
textures/common/speaker
|
||||
{
|
||||
qer_editorimage textures/editor/speaker.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/common/shadow
|
||||
{
|
||||
noSelfShadow
|
||||
nonsolid
|
||||
noimpact
|
||||
nosteps
|
||||
forceShadows
|
||||
}
|
||||
|
||||
textures/common/ladder
|
||||
{
|
||||
qer_editorimage textures/common/ladder.tga
|
||||
nonsolid
|
||||
monsterclip
|
||||
playerclip
|
||||
noimpact
|
||||
ladder
|
||||
noshadows
|
||||
}
|
||||
|
||||
|
||||
//======================================================================
|
||||
// GUIs Begin
|
||||
//======================================================================
|
||||
// Use this material for the interactive view screen and use
|
||||
// a "gui" key referencing appropriate gui file, like "guis/yourguifile.gui" on the entity.
|
||||
// A model-entity can only have 3 GUI screens
|
||||
textures/common/entityGui {
|
||||
qer_editorimage textures/editor/entityGui.tga
|
||||
discrete
|
||||
playerclip
|
||||
guiSurf entity
|
||||
}
|
||||
|
||||
textures/common/entityGui2 {
|
||||
qer_editorimage textures/editor/entityGui2.tga
|
||||
discrete
|
||||
playerclip
|
||||
guiSurf entity2
|
||||
}
|
||||
|
||||
textures/common/entityGui3 {
|
||||
qer_editorimage textures/editor/entityGui3.tga
|
||||
discrete
|
||||
guiSurf entity3
|
||||
playerclip
|
||||
}
|
||||
//======================================================================
|
||||
// GUIs End
|
||||
//======================================================================
|
||||
|
||||
// vis portal brushes (one face with vizportal material and the rest 5 with nodraw material) are used to prevent engine
|
||||
// from rendering what's not in the player's view to improve performance
|
||||
textures/editor/visportal
|
||||
{
|
||||
qer_editorimage textures/editor/visportal.tga
|
||||
areaportal
|
||||
noshadows
|
||||
}
|
||||
|
||||
|
||||
//======================================================================
|
||||
// For De Triggers
|
||||
//======================================================================
|
||||
|
||||
// standard trigger uses this one
|
||||
textures/common/trig_std
|
||||
{
|
||||
qer_editorimage textures/editor/trigger_std.tga
|
||||
qer_nocarve // don't let an awry CSG operation cut it up
|
||||
noshadows
|
||||
trigger
|
||||
}
|
||||
|
||||
textures/common/trig_relay
|
||||
{
|
||||
qer_editorimage textures/editor/trigger_relay.tga
|
||||
qer_nocarve // don't let an awry CSG operation cut it up
|
||||
noshadows
|
||||
trigger
|
||||
}
|
||||
|
||||
textures/common/trig_hurt //de pain, DE PAIN!!!
|
||||
{
|
||||
qer_editorimage textures/editor/trigger_hurt.tga
|
||||
qer_nocarve // don't let an awry CSG operation cut it up
|
||||
noshadows
|
||||
trigger
|
||||
}
|
||||
|
||||
textures/common/trig_touch
|
||||
{
|
||||
qer_editorimage textures/editor/trigger_touch.tga
|
||||
qer_nocarve // don't let an awry CSG operation cut it up
|
||||
noshadows
|
||||
trigger
|
||||
}
|
||||
|
||||
//======================================================================
|
||||
// Triggers End!
|
||||
//======================================================================
|
||||
|
||||
//======================================================================
|
||||
// MISC TEXTURES FOR ENTITIES
|
||||
//======================================================================
|
||||
|
||||
textures/editor/location
|
||||
{
|
||||
qer_editorimage textures/editor/location.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/location_separator
|
||||
{
|
||||
qer_editorimage textures/editor/location_separator.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/quest
|
||||
{
|
||||
qer_editorimage textures/editor/quest.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/quest_complete
|
||||
{
|
||||
qer_editorimage textures/editor/quest_complete.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/quest_primary
|
||||
{
|
||||
qer_editorimage textures/editor/quest_primary.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/commstream
|
||||
{
|
||||
qer_editorimage textures/editor/commstream.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/camera_view
|
||||
{
|
||||
qer_editorimage textures/editor/camera_view.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/target_null
|
||||
{
|
||||
qer_editorimage textures/editor/target_null.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
||||
|
||||
textures/editor/tip
|
||||
{
|
||||
qer_editorimage textures/editor/tip.tga
|
||||
qer_nocarve
|
||||
noshadows
|
||||
}
|
321
base/materials/enemies.mtr
Normal file
321
base/materials/enemies.mtr
Normal file
|
@ -0,0 +1,321 @@
|
|||
// ==================================================================
|
||||
// UNION SECURITY ' S LIGHT PATROLMAN MATERIAL
|
||||
// ==================================================================
|
||||
|
||||
// ---------------------- BASE LIGHT PATROLMAN (short sleeve) --------------------------------
|
||||
|
||||
models/enemies/base_head
|
||||
{
|
||||
clamp
|
||||
flesh
|
||||
forceOverlays
|
||||
noSelfShadow
|
||||
// toonGradientImage textures/toon_lut/toon_lut_01.tga this work in non-BFG engine? THF
|
||||
|
||||
/*{
|
||||
blend bumpmap
|
||||
map models/md5/enemies/union_patrolman/base_head_local.tga
|
||||
}*/
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/enemies/union_patrolman/base_head_d.tga
|
||||
}
|
||||
//specularmap models/md5/enemies/union_patrolman/base_head_s.tga
|
||||
{
|
||||
blend add
|
||||
map models/md5/enemies/union_patrolman/base_head_d.tga
|
||||
rgb 0.01
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.00075, 0.0005, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0012, 0.0005
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 1024.0, 9.0, 256.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 120.0, 2, 3
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
/*{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect_skinned.glsl
|
||||
vertexParm 0 0.75, 0.0022, -0.001, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 2000, -2.5, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 100000, -0.9, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect_skinned.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}*/ //This is in BFG engine, old engine doesn't support glsl. Kept in for completness.
|
||||
}
|
||||
|
||||
models/enemies/base_torso_short_sleeve
|
||||
{
|
||||
clamp
|
||||
flesh
|
||||
forceOverlays
|
||||
noSelfShadow
|
||||
/*{
|
||||
blend bumpmap
|
||||
map models/md5/enemies/union_patrolman/base_torso_short_sleeve_local.tga
|
||||
}*/
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/enemies/union_patrolman/base_torso_short_sleeve_d.tga
|
||||
}
|
||||
//specularmap models/md5/enemies/union_patrolman/base_torso_short_sleeve_s.tga
|
||||
{
|
||||
blend add
|
||||
map models/md5/enemies/union_patrolman/base_torso_short_sleeve_d.tga
|
||||
rgb 0.01
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.00075, 0.0005, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0012, 0.0005
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 1024.0, 9.0, 256.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 120.0, 2, 3
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
/*{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect_skinned.glsl
|
||||
vertexParm 0 0.75, 0.0022, -0.001, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 5000, -2.1, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 100000, -0.9, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect_skinned.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}*/ //This is in BFG engine, old engine doesn't support glsl. Kept in for completness.
|
||||
}
|
||||
|
||||
models/enemies/base_legs
|
||||
{
|
||||
clamp
|
||||
flesh
|
||||
forceOverlays
|
||||
noSelfShadow
|
||||
// toonGradientImage textures/toon_lut/toon_lut_01.tga In BFG engine, not sure if it's in old engine.
|
||||
/*{
|
||||
blend bumpmap
|
||||
map models/md5/enemies/union_patrolman/base_legs_local.tga
|
||||
}*/
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/enemies/union_patrolman/base_legs_d.tga
|
||||
}
|
||||
//specularmap models/md5/enemies/union_patrolman/base_legs_s.tga
|
||||
{
|
||||
blend add
|
||||
map models/md5/enemies/union_patrolman/base_legs_d.tga
|
||||
rgb 0.01
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.00075, 0.0005, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0012, 0.0005
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 1024.0, 9.0, 256.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 120.0, 2, 3
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
/*{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect_skinned.glsl
|
||||
vertexParm 0 0.75, 0.0022, -0.001, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 5000, -2.1, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 100000, -0.9, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect_skinned.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}*/ //This is in BFG engine, old engine doesn't support glsl. Kept in for completness.
|
||||
}
|
||||
|
||||
models/enemies/base_boots_kneepads
|
||||
{
|
||||
clamp
|
||||
flesh
|
||||
forceOverlays
|
||||
noSelfShadow
|
||||
// toonGradientImage textures/toon_lut/toon_lut_01.tga in BFG engine.
|
||||
/*{
|
||||
blend bumpmap
|
||||
map models/md5/enemies/union_patrolman/base_boots_kneepads_local.tga
|
||||
}*/
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/enemies/union_patrolman/base_boots_kneepads_d.tga
|
||||
}
|
||||
//specularmap models/md5/enemies/union_patrolman/base_boots_kneepads_s.tga
|
||||
{
|
||||
blend add
|
||||
map models/md5/enemies/union_patrolman/base_boots_kneepads_d.tga
|
||||
rgb 0.01
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.00075, 0.0005, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0012, 0.0005
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 1024.0, 9.0, 256.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 120.0, 2, 3
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
/*{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect_skinned.glsl
|
||||
vertexParm 0 0.75, 0.0022, -0.001, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 5000, -2.1, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 100000, -0.9, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect_skinned.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}*/ //In Bfg, etc. As above.
|
||||
}
|
||||
|
||||
|
||||
models/enemies/base_eyebrows
|
||||
{
|
||||
clamp
|
||||
flesh
|
||||
twoSided
|
||||
forceOverlays
|
||||
noshadows
|
||||
polygonOffset 0.2
|
||||
// toonGradientImage textures/toon_lut/toon_lut_01.tga in BFG engine
|
||||
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/enemies/union_patrolman/base_eyebrows_d.tga
|
||||
alphaTest 0.5
|
||||
}
|
||||
}
|
||||
|
||||
models/enemies/base_eyeR
|
||||
{
|
||||
translucent
|
||||
noshadows
|
||||
//deform eyeBall
|
||||
sort decal
|
||||
flesh
|
||||
polygonOffset 2
|
||||
{
|
||||
blend filter
|
||||
//blend diffusemap
|
||||
map models/md5/enemies/union_patrolman/base_eye_d.tga
|
||||
//centerScale 0.4, 0.4
|
||||
}
|
||||
}
|
||||
|
||||
models/enemies/base_eyeL
|
||||
{
|
||||
translucent
|
||||
noshadows
|
||||
//deform eyeBall
|
||||
sort decal
|
||||
flesh
|
||||
polygonOffset 2
|
||||
{
|
||||
blend filter
|
||||
//blend diffusemap
|
||||
map models/md5/enemies/union_patrolman/base_eye_d.tga
|
||||
//centerScale 0.4, 0.4
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------- Doom 3 style eyes BEGINS --------------------------------
|
||||
models/enemies/base_eyeR_d3
|
||||
{
|
||||
translucent
|
||||
noshadows
|
||||
deform eyeBall
|
||||
sort decal
|
||||
flesh
|
||||
//polygonOffset 2
|
||||
clamp
|
||||
{
|
||||
blend filter
|
||||
map models/md5/enemies/union_patrolman/base_eye_d.tga
|
||||
centerScale 0.85, 0.85
|
||||
}
|
||||
}
|
||||
|
||||
models/enemies/base_eyeL_d3
|
||||
{
|
||||
translucent
|
||||
noshadows
|
||||
deform eyeBall
|
||||
sort decal
|
||||
flesh
|
||||
//polygonOffset 2
|
||||
clamp
|
||||
{
|
||||
blend filter
|
||||
map models/md5/enemies/union_patrolman/base_eye_d.tga
|
||||
centerScale 0.85, 0.85
|
||||
}
|
||||
}
|
||||
// ----------------------- Doom 3 style eyes ENDS --------------------------------
|
24
base/materials/example_distanceFade.mtr
Normal file
24
base/materials/example_distanceFade.mtr
Normal file
|
@ -0,0 +1,24 @@
|
|||
//
|
||||
// fading mesh / particles with this material as player approaches it
|
||||
//
|
||||
textures/distanceFade {
|
||||
noshadows
|
||||
noimpact
|
||||
translucent
|
||||
|
||||
{
|
||||
vertexProgram zFadeSimple.vfp
|
||||
|
||||
vertexParm 0 0.00390625, -0.5, 0, 0 // zScale, zBias ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
vertexParm 1 1, 1, 1, 1 // RGBA multiplier
|
||||
|
||||
fragmentProgram zFadeSimple.vfp
|
||||
|
||||
maskColor
|
||||
}
|
||||
{
|
||||
blend gl_dst_alpha, gl_one_minus_dst_alpha
|
||||
map _black
|
||||
maskAlpha
|
||||
}
|
||||
}
|
131
base/materials/example_foggedTransparent.mtr
Normal file
131
base/materials/example_foggedTransparent.mtr
Normal file
|
@ -0,0 +1,131 @@
|
|||
textures/foggedBlend
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
noimpact
|
||||
sort 110
|
||||
|
||||
{
|
||||
blend blend
|
||||
|
||||
vertexProgram foggedBlend.vfp
|
||||
vertexParm 0 .39, .39, .39, 1 // fog color
|
||||
vertexParm 1 0.001, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
|
||||
fragmentProgram foggedBlend.vfp
|
||||
fragmentMap 0 textures/particles/smokepuffb.tga // source texture ( preferably with alpha-channel )
|
||||
}
|
||||
}
|
||||
|
||||
textures/foggedAdd
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
noimpact
|
||||
sort 110
|
||||
|
||||
{
|
||||
blend add
|
||||
|
||||
vertexProgram foggedAdd.vfp
|
||||
vertexParm 0 .39, .39, .39, 1 // fog color
|
||||
vertexParm 1 0.001, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
|
||||
fragmentProgram foggedAdd.vfp
|
||||
fragmentMap 0 textures/particles/smokepuffb.tga // source texture
|
||||
}
|
||||
}
|
||||
|
||||
textures/foggedMul
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
noimpact
|
||||
sort 110
|
||||
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram foggedMul.vfp
|
||||
vertexParm 0 .39, .39, .39, 1 // fog color
|
||||
vertexParm 1 0.001, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
|
||||
fragmentProgram foggedMul.vfp
|
||||
fragmentMap 0 invertColor( textures/particles/barrelpoof.tga ) // source texture
|
||||
}
|
||||
}
|
||||
|
||||
textures/foggedBlendSoft
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
noimpact
|
||||
sort 110
|
||||
|
||||
{
|
||||
blend blend
|
||||
|
||||
vertexProgram foggedBlendSoft.vfp
|
||||
vertexParm 0 .39, .39, .39, 1 // fog color
|
||||
vertexParm 1 0.001, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
vertexParm 2 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram foggedBlendSoft.vfp
|
||||
fragmentMap 0 textures/particles/smokepuffb.tga // source texture ( preferably with alpha-channel )
|
||||
fragmentMap 1 _currentDepth // depth image
|
||||
}
|
||||
}
|
||||
|
||||
textures/foggedAddSoft
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
noimpact
|
||||
sort 110
|
||||
|
||||
{
|
||||
blend add
|
||||
|
||||
vertexProgram foggedAddSoft.vfp
|
||||
vertexParm 0 .39, .39, .39, 1 // fog color
|
||||
vertexParm 1 0.001, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
vertexParm 2 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram foggedAddSoft.vfp
|
||||
fragmentMap 0 textures/particles/smokepuffb.tga // source texture
|
||||
fragmentMap 1 _currentDepth // depth image
|
||||
}
|
||||
}
|
||||
|
||||
textures/foggedMulSoft
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
noimpact
|
||||
sort 110
|
||||
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram foggedMulSoft.vfp
|
||||
vertexParm 0 .39, .39, .39, 1 // fog color
|
||||
vertexParm 1 0.001, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
vertexParm 2 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram foggedMulSoft.vfp
|
||||
fragmentMap 0 invertColor( textures/particles/barrelpoof.tga ) // source texture
|
||||
fragmentMap 1 _currentDepth // depth image
|
||||
}
|
||||
}
|
16
base/materials/example_fresnel.mtr
Normal file
16
base/materials/example_fresnel.mtr
Normal file
|
@ -0,0 +1,16 @@
|
|||
textures/fresnelTest {
|
||||
noshadows
|
||||
noimpact
|
||||
translucent
|
||||
|
||||
{
|
||||
blend add
|
||||
|
||||
vertexProgram simpleFresnel.vfp
|
||||
|
||||
vertexParm 0 4, 0.9, 0.1, 0 // fresnel power, scale, bias
|
||||
vertexParm 1 1, 0, 1, 1 // RGBA
|
||||
|
||||
fragmentProgram simpleFresnel.vfp
|
||||
}
|
||||
}
|
25
base/materials/fogs.mtr
Normal file
25
base/materials/fogs.mtr
Normal file
|
@ -0,0 +1,25 @@
|
|||
fogs/defaultFog
|
||||
{
|
||||
fogLight
|
||||
noShadows
|
||||
lightFalloffImage lights/fog_simple_falloff.tga
|
||||
{
|
||||
map lights/fog_simple_falloff.tga
|
||||
//map _fog // internal fog image
|
||||
colored // use entity's color assigned in the editor or via shaderparms
|
||||
zeroClamp
|
||||
}
|
||||
}
|
||||
|
||||
fogs/defaultFancyFog
|
||||
{
|
||||
fogLight
|
||||
noShadows
|
||||
lightFalloffImage lights/fog_fancy_falloff.tga
|
||||
{
|
||||
map lights/fog_fancy.tga
|
||||
//map _fog // internal fog image
|
||||
colored // use entity's color assigned in the editor or via shaderparms
|
||||
zeroClamp
|
||||
}
|
||||
}
|
399
base/materials/gadgets.mtr
Normal file
399
base/materials/gadgets.mtr
Normal file
|
@ -0,0 +1,399 @@
|
|||
table distortCompassAlpha { { 1, 1, 1, 1, 0.95, } }
|
||||
table simpleNoise { {
|
||||
0.456193348, 0.48338368, 0.413897276, 0.274924468, 0.27190332, 0.04531722, 0.395770388,
|
||||
0.039274924, 0.607250748, 0.28700906, 0.290030208, 0.160120844, 0.586102712, 0.703927484,
|
||||
0.021148036, 0.6797583, 0.42296072, 0.108761328, 0.311178244, 0.09063444, 0.208459212,
|
||||
0.429003016, 0.024169184, 0.299093652, 0.111782476, 0.72507552, 0.063444108, 0.03021148,
|
||||
0.069486404, 0.57401812, 0.018126888, 0.447129904, 0.746223556, 0.36253776, 0.706948632,
|
||||
0.2265861, 0.003021148, 0.078549848, 0.595166156, 0.187311176, 0.283987912, 0.761329296,
|
||||
0.661631412, 0.613293044, 0.353474316, 0.10574018, 0.033232628, 0.096676736, 0.172205436,
|
||||
0.534743196, 0.099697884, 0.265861024, 0.716012076, 0.450151052, 0.169184288, 0.262839876,
|
||||
0.525679752, 0.06042296, 0.3776435, 0.410876128, 0.516616308, 0.507552864, 0.205438064,
|
||||
0.5287009, 0.223564952, 0.49848942, 0.214501508, 0.404833832, 0.419939572, 0.145015104,
|
||||
0.081570996, 0.501510568, 0.232628396, 0.441087608, 0.477341384, 0.697885188, 0.250755284,
|
||||
0.335347428, 0.691842892, 0.368580056, 0.18126888, 0.637462228, 0.401812684, 0.69486404,
|
||||
0.66465256, 0.31722054, 0.277945616, 0.123867068, 0.16616314, 0.138972808, 0.74018126,
|
||||
0.12084592, 0.737160112, 0.308157096, 0.432024164, 0.163141992, 0.19637462, 0.0755287,
|
||||
0.190332324, 0.486404828, 0.003021148, 0.652567968, 0.24169184, 0.220543804, 0.631419932,
|
||||
0.229607248, 0.398791536, 0.564954676, 0.628398784, 0.268882172, 0.054380664, 0.510574012,
|
||||
0.6042296, 0.592145008, 0.40785498, 0.39274924, 0.350453168, 0.567975824, 0.480362532,
|
||||
0.259818728, 0.495468272, 0.3021148, 0.329305132, 0.598187304, 0.522658604, 0.561933528,
|
||||
0.009063444, 0.193353472, 0.157099696, 0.655589116, 0.682779448, 0.755287, 0.374622352,
|
||||
0.371601204, 0.01510574, 0.610271896, 0.114803624, 0.444108756, 0.356495464, 0.380664648,
|
||||
0.77039274, 0.247734136, 0.25679758, 0.640483376, 0.625377636, 0.622356488, 0.178247732,
|
||||
0.685800596, 0.141993956, 0.048338368, 0.175226584, 0.051359516, 0.549848936, 0.570996972,
|
||||
0.084592144, 0.126888216, 0.673716004, 0.552870084, 0.51359516, 0.643504524, 0.359516612,
|
||||
0.749244704, 0.459214496, 0.006042296, 0.132930512, 0.465256792, 0.492447124, 0.21148036,
|
||||
0.667673708, 0.462235644, 0.305135948, 0.46827794, 0.504531716, 0.129909364, 0.519637456,
|
||||
0.027190332, 0.389728092, 0.066465256, 0.117824772, 0.764350444, 0.057401812, 0.296072504,
|
||||
0.326283984, 0.33232628, 0.238670692, 0.341389724, 0.676737152, 0.700906336, 0.537764344,
|
||||
0.55891238, 0.338368576, 0.314199392, 0.658610264, 0.743202408, 0.293051356, 0.688821744,
|
||||
0.758308148, 0.102719032, 0.731117816, 0.583081564, 0.719033224, 0.63444108, 0.435045312,
|
||||
0.036253776, 0.577039268, 0.540785492, 0.489425976, 0.728096668, 0.244712988, 0.154078548,
|
||||
0.43806646, 0.70996978, 0.752265852, 0.042296072, 0.722054372, 0.323262836, 0.148036252,
|
||||
0.580060416, 0.646525672, 0.093655588, 0.546827788, 0.601208452, 0.320241688, 0.474320236,
|
||||
0.555891232, 0.253776432, 0.616314192, 0.531722048, 0.34743202, 0.365558908, 0.1510574,
|
||||
0.13595166, 0.383685796, 0.012084592, 0.4531722, 0.767371592, 0.416918424, 0.712990928,
|
||||
0.61933534, 0.280966764, 0.670694856, 0.344410872, 0.202416916, 0.087613292, 0.072507552,
|
||||
0.217522656, 0.734138964, 0.425981868, 0.386706944, 0.58912386, 0.235649544, 0.199395768,
|
||||
0.64954682, 0.184290028, 0.471299088, 0.54380664 } }
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//
|
||||
// VIEW GADGETS
|
||||
//
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
// ============ Compass ============
|
||||
|
||||
models/gadgets/compass
|
||||
{
|
||||
//noShadows
|
||||
noSelfShadow
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/gadgets/view_compass/compass.tga
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect_skinned.glsl
|
||||
vertexParm 0 0.75, 0.0025, -0.01, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 5000, -0.0001, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 10000, -0.005, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect_skinned.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_lens
|
||||
{
|
||||
noShadows
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/gadgets/view_compass/compass_lens_d.tga
|
||||
}
|
||||
{
|
||||
blend specularmap
|
||||
map models/md5/gadgets/view_compass/compass_lens_s.tga
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_lens_anim.tga
|
||||
scroll 1, time * -70
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_lens_anim.tga
|
||||
translate 1, 7
|
||||
scroll 1, time * 7
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect_skinned.glsl
|
||||
vertexParm 0 0.75, 0.0025, -0.01, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 5000, -0.0001, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 100000, -0.005, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect_skinned.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_screen_arrow
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
noBlur
|
||||
//uncompressed
|
||||
linear
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_screen_arrow.tga
|
||||
}
|
||||
{
|
||||
noBlur
|
||||
//uncompressed
|
||||
linear
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_screen_arrow.tga
|
||||
rgb 0.025
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_screen_nswe
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
noBlur
|
||||
//uncompressed
|
||||
linear
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_screen_nswe.tga
|
||||
|
||||
}
|
||||
{
|
||||
noBlur
|
||||
//uncompressed
|
||||
linear
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_screen_nswe.tga
|
||||
rgb 0.01
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_disk_debug1
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
//sort nearest
|
||||
{
|
||||
noBlur
|
||||
//blend add
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_pquest1_debug.tga
|
||||
|
||||
}
|
||||
{
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_pquest1_debug.tga
|
||||
rgb 0.01
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/axis_debug
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
//translucent
|
||||
noOverlays
|
||||
clamp
|
||||
//sort nearest
|
||||
{
|
||||
noBlur
|
||||
blend diffusemap
|
||||
map models/md5/gadgets/view_compass/axis_debug.tga
|
||||
|
||||
}
|
||||
{
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/axis_debug.tga
|
||||
rgb 0.05
|
||||
}
|
||||
}
|
||||
|
||||
//--------------- Primary Quests dots ----------------------------------
|
||||
models/gadgets/compass_dot_pquest1
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
if ( parm9 == 121 )
|
||||
uncompressed
|
||||
//linear
|
||||
noBlur
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_dot_pquest1.tga
|
||||
}
|
||||
{
|
||||
if ( parm9 == 121 )
|
||||
uncompressed
|
||||
//linear
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_dot_pquest1.tga
|
||||
rgb 0.25
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_dot_pquest2
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
if ( parm10 == 121 )
|
||||
uncompressed
|
||||
//linear
|
||||
noBlur
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_dot_pquest2.tga
|
||||
}
|
||||
{
|
||||
if ( parm10 == 121 )
|
||||
uncompressed
|
||||
//linear
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_dot_pquest2.tga
|
||||
rgb 0.25
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_dot_pquest3
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
if ( parm11 == 121 )
|
||||
uncompressed
|
||||
//linear
|
||||
noBlur
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_dot_pquest3.tga
|
||||
}
|
||||
{
|
||||
if ( parm11 == 121 )
|
||||
uncompressed
|
||||
//linear
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_dot_pquest3.tga
|
||||
rgb 0.25
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
models/gadgets/compass_screen_pquest1
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
noBlur
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_screen_pquest1.tga
|
||||
}
|
||||
{
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_screen_pquest1.tga
|
||||
rgb 0.85
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_screen_pquest2
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
noBlur
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_screen_pquest2.tga
|
||||
}
|
||||
{
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_screen_pquest2.tga
|
||||
rgb 0.85
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_screen_pquest3
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
sort nearest
|
||||
{
|
||||
noBlur
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_screen_pquest3.tga
|
||||
}
|
||||
{
|
||||
noBlur
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_screen_pquest3.tga
|
||||
rgb 0.85
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------- Compass Pick-up model disks materials--------------------------------------
|
||||
|
||||
models/gadgets/compass_screen_arrow_pickup
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
//deform turbulent simpleNoise 0.07 (time * 0.2) 0.5
|
||||
deform turbulent simpleNoise 0.1 * simpleNoise[ time * 0.07 ] simpleNoise[ time * 0.2 ] simpleNoise [ time * 0.5 ]
|
||||
{
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_screen_arrow.tga
|
||||
alpha 2 * simpleNoise[ time * 0.05 ]
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_screen_arrow.tga
|
||||
rgb 0.015
|
||||
alpha 2 * simpleNoise[ time * 0.07 ]
|
||||
}
|
||||
}
|
||||
|
||||
models/gadgets/compass_screen_nswe_pickup
|
||||
{
|
||||
noShadows
|
||||
noimpact
|
||||
translucent
|
||||
noOverlays
|
||||
clamp
|
||||
{
|
||||
blend blend
|
||||
map models/md5/gadgets/view_compass/compass_screen_nswe.tga
|
||||
alpha simpleNoise[ time * 0.01 ]
|
||||
rotate 2 * sinTable[ time * 0.04 ]
|
||||
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/md5/gadgets/view_compass/compass_screen_nswe.tga
|
||||
rgb 0.01
|
||||
alpha simpleNoise[ time * 0.01 ]
|
||||
rotate 2 * sinTable[ time * 0.04 ]
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------------
|
28
base/materials/gfx.mtr
Normal file
28
base/materials/gfx.mtr
Normal file
|
@ -0,0 +1,28 @@
|
|||
textures/bigchars
|
||||
{
|
||||
{
|
||||
blend blend
|
||||
maskDepth
|
||||
colored
|
||||
nopicmip
|
||||
linear
|
||||
map textures/conchars.tga
|
||||
}
|
||||
}
|
||||
|
||||
console
|
||||
{
|
||||
{
|
||||
map textures/colors/black.tga
|
||||
linear // no mip maps
|
||||
}
|
||||
}
|
||||
|
||||
splashScreen
|
||||
{
|
||||
{
|
||||
forceHighQuality
|
||||
blend blend
|
||||
map guis/assets/splash/init.tga
|
||||
}
|
||||
}
|
69
base/materials/glass.mtr
Normal file
69
base/materials/glass.mtr
Normal file
|
@ -0,0 +1,69 @@
|
|||
textures/glass/device_glass
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
twosided
|
||||
translucent
|
||||
glass
|
||||
forceoverlays
|
||||
sort decal
|
||||
|
||||
qer_editorimage textures/glass/device_glass_d
|
||||
{
|
||||
blend blend
|
||||
map textures/glass/device_glass.tga
|
||||
alpha 0.5
|
||||
}
|
||||
|
||||
{
|
||||
blend blend
|
||||
map textures/glass/device_glass_d
|
||||
alpha 0.65
|
||||
}
|
||||
}
|
||||
|
||||
textures/glass/reflective_glass
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
twosided
|
||||
translucent
|
||||
glass
|
||||
forceoverlays
|
||||
sort decal
|
||||
|
||||
qer_editorimage textures/glass/device_glass_d
|
||||
|
||||
{
|
||||
blend bumpmap // this stage is needed to workaround issue of not having cubeMap reflections without diffusemap stage
|
||||
map _flat
|
||||
}
|
||||
{
|
||||
vertexProgram heatHaze.vfp
|
||||
vertexParm 0 0 , 0 // texture scrolling
|
||||
vertexParm 1 .5 // magnitude of the distortion
|
||||
|
||||
fragmentProgram heatHaze.vfp
|
||||
fragmentMap 0 _currentRender
|
||||
fragmentMap 1 normalMap textures/sfx/heathaze_local.tga // the normal map for distortion
|
||||
}
|
||||
{
|
||||
maskcolor
|
||||
map makealpha( textures/glass/device_glass.tga )
|
||||
alpha 0.3 // tweak alpha to tune reflection strength
|
||||
}
|
||||
{
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskalpha
|
||||
cubeMap env/test // envshot cmd has to be issues when in 640x480 resolution (r_mode 3) and g_fov 90 to avoid artifacts
|
||||
red Parm0
|
||||
green Parm1
|
||||
blue Parm2
|
||||
texgen reflect
|
||||
}
|
||||
{
|
||||
blend blend
|
||||
map textures/glass/device_glass_d
|
||||
alpha 0.5
|
||||
}
|
||||
}
|
119
base/materials/items.mtr
Normal file
119
base/materials/items.mtr
Normal file
|
@ -0,0 +1,119 @@
|
|||
//-------------------------------------------------------------------------
|
||||
//
|
||||
// PDA gadget pick-ups
|
||||
//
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
// ======================== PDA Audio log pick-up radio ========================
|
||||
|
||||
table lcdFlicker { { 0.5, 0.5, 0.5, 0.5, 0.44, 0.47, 0.45, 0.45, 0.5, 0.5, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4 } }
|
||||
table lcdFlicker2 { { 0.6, 0.6, 0.6, 0.6, 0.54, 0.57, 0.55, 0.55, 0.6, 0.6, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 } }
|
||||
table lcdFlicker3 { { 0.3, 0.3, 0.3, 0.3, 0.24, 0.27, 0.25, 0.25, 0.3, 0.3, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 } }
|
||||
|
||||
models/items/pda_pickups/pda_audio1
|
||||
{
|
||||
qer_editorimage models/items/pda_pickups/pda_audio1_d.tga
|
||||
|
||||
diffusemap models/items/pda_pickups/pda_audio1_d.tga
|
||||
//specularmap models/items/pda_pickups/pda_audio1_s.tga
|
||||
bumpmap models/items/pda_pickups/pda_audio1_local.tga
|
||||
{
|
||||
blend add
|
||||
map models/items/pda_pickups/pda_audio1_d.tga
|
||||
rgb 0.02
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
vertexParm 0 0.75, 0.0025, -0.01, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 5000, -0.35, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 10000, -0.005, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
/*{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect_skinned.glsl
|
||||
vertexParm 0 0.75, 0.0025, -0.01, 0 // inkAmount, nearFarScale, nearFarBias
|
||||
vertexParm 1 1.5, 5000, -0.35, 0 // inkSize, inkScale, inkBias (near)
|
||||
vertexParm 2 1.2, 10000, -0.005, 0 // inkSize, inkScale, inkBias (far)
|
||||
|
||||
fragmentProgram inkEffect_skinned.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}*/
|
||||
}
|
||||
|
||||
models/items/pda_pickups/pda_audio1_top_screen
|
||||
{
|
||||
qer_editorimage models/items/pda_pickups/pda_audio1_top_screen_d.tga
|
||||
translucent
|
||||
{
|
||||
blend blend
|
||||
map models/items/pda_pickups/pda_audio1_top_screen_d.tga
|
||||
alpha lcdFlicker[ time * 0.5 ]
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/items/pda_pickups/pda_audio1_top_screen_d.tga
|
||||
rgb 0.01
|
||||
}
|
||||
}
|
||||
|
||||
models/items/pda_pickups/pda_audio1_middle_screen
|
||||
{
|
||||
qer_editorimage models/items/pda_pickups/pda_audio1_middle_screen_d.tga
|
||||
translucent
|
||||
{
|
||||
blend blend
|
||||
map models/items/pda_pickups/pda_audio1_middle_screen_d.tga
|
||||
alpha lcdFlicker2[ time * 0.7 ]
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/items/pda_pickups/pda_audio1_middle_screen_d.tga
|
||||
rgb 0.05
|
||||
}
|
||||
}
|
||||
|
||||
models/items/pda_pickups/pda_audio1_bottom_screen
|
||||
{
|
||||
qer_editorimage models/items/pda_pickups/pda_audio1_bottom_screen_d.tga
|
||||
translucent
|
||||
{
|
||||
blend blend
|
||||
map models/items/pda_pickups/pda_audio1_bottom_screen_d.tga
|
||||
alpha lcdFlicker3[ time ]
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/items/pda_pickups/pda_audio1_bottom_screen_d.tga
|
||||
rgb 0.03
|
||||
}
|
||||
}
|
||||
|
||||
// --------------- Placeholders for health ---------------------------------
|
||||
textures/items/health/health01
|
||||
{
|
||||
qer_editorimage models/items/health/health01.tga
|
||||
diffusemap models/items/health/health01.tga
|
||||
}
|
||||
|
||||
textures/items/health/armor01
|
||||
{
|
||||
qer_editorimage models/items/armor/armor01.tga
|
||||
diffusemap models/items/armor/armor01.tga
|
||||
}
|
||||
|
||||
textures/items/invigorator/invigorator
|
||||
{
|
||||
qer_editorimage models/items/invigorator/invigorator.tga
|
||||
diffusemap models/items/invigorator/invigorator.tga
|
||||
}
|
182
base/materials/lights.mtr
Normal file
182
base/materials/lights.mtr
Normal file
|
@ -0,0 +1,182 @@
|
|||
|
||||
|
||||
// ######## tables
|
||||
|
||||
// sinTable and cosTable must be defined for the rotate function to work
|
||||
table sinTable { {
|
||||
0.000000, 0.024541, 0.049068, 0.073565, 0.098017, 0.122411, 0.146730, 0.170962,
|
||||
0.195090, 0.219101, 0.242980, 0.266713, 0.290285, 0.313682, 0.336890, 0.359895,
|
||||
0.382683, 0.405241, 0.427555, 0.449611, 0.471397, 0.492898, 0.514103, 0.534998,
|
||||
0.555570, 0.575808, 0.595699, 0.615232, 0.634393, 0.653173, 0.671559, 0.689541,
|
||||
0.707107, 0.724247, 0.740951, 0.757209, 0.773010, 0.788346, 0.803208, 0.817585,
|
||||
0.831470, 0.844854, 0.857729, 0.870087, 0.881921, 0.893224, 0.903989, 0.914210,
|
||||
0.923880, 0.932993, 0.941544, 0.949528, 0.956940, 0.963776, 0.970031, 0.975702,
|
||||
0.980785, 0.985278, 0.989177, 0.992480, 0.995185, 0.997290, 0.998795, 0.999699,
|
||||
1.000000, 0.999699, 0.998795, 0.997290, 0.995185, 0.992480, 0.989177, 0.985278,
|
||||
0.980785, 0.975702, 0.970031, 0.963776, 0.956940, 0.949528, 0.941544, 0.932993,
|
||||
0.923880, 0.914210, 0.903989, 0.893224, 0.881921, 0.870087, 0.857729, 0.844854,
|
||||
0.831470, 0.817585, 0.803208, 0.788346, 0.773010, 0.757209, 0.740951, 0.724247,
|
||||
0.707107, 0.689541, 0.671559, 0.653173, 0.634393, 0.615232, 0.595699, 0.575808,
|
||||
0.555570, 0.534998, 0.514103, 0.492898, 0.471397, 0.449611, 0.427555, 0.405241,
|
||||
0.382683, 0.359895, 0.336890, 0.313682, 0.290285, 0.266713, 0.242980, 0.219101,
|
||||
0.195090, 0.170962, 0.146730, 0.122411, 0.098017, 0.073565, 0.049068, 0.024541,
|
||||
0.000000, -0.024541, -0.049068, -0.073565, -0.098017, -0.122411, -0.146730, -0.170962,
|
||||
-0.195090, -0.219101, -0.242980, -0.266713, -0.290285, -0.313682, -0.336890, -0.359895,
|
||||
-0.382683, -0.405241, -0.427555, -0.449611, -0.471397, -0.492898, -0.514103, -0.534998,
|
||||
-0.555570, -0.575808, -0.595699, -0.615232, -0.634393, -0.653173, -0.671559, -0.689541,
|
||||
-0.707107, -0.724247, -0.740951, -0.757209, -0.773010, -0.788346, -0.803208, -0.817585,
|
||||
-0.831470, -0.844854, -0.857729, -0.870087, -0.881921, -0.893224, -0.903989, -0.914210,
|
||||
-0.923880, -0.932993, -0.941544, -0.949528, -0.956940, -0.963776, -0.970031, -0.975702,
|
||||
-0.980785, -0.985278, -0.989177, -0.992480, -0.995185, -0.997290, -0.998795, -0.999699,
|
||||
-1.000000, -0.999699, -0.998795, -0.997290, -0.995185, -0.992480, -0.989177, -0.985278,
|
||||
-0.980785, -0.975702, -0.970031, -0.963776, -0.956940, -0.949528, -0.941544, -0.932993,
|
||||
-0.923880, -0.914210, -0.903989, -0.893224, -0.881921, -0.870087, -0.857729, -0.844854,
|
||||
-0.831470, -0.817585, -0.803208, -0.788346, -0.773010, -0.757209, -0.740951, -0.724247,
|
||||
-0.707107, -0.689541, -0.671559, -0.653173, -0.634393, -0.615232, -0.595699, -0.575808,
|
||||
-0.555570, -0.534998, -0.514103, -0.492898, -0.471397, -0.449611, -0.427555, -0.405241,
|
||||
-0.382683, -0.359895, -0.336890, -0.313682, -0.290285, -0.266713, -0.242980, -0.219101,
|
||||
-0.195090, -0.170962, -0.146730, -0.122411, -0.098017, -0.073565, -0.049068, -0.024541 } }
|
||||
|
||||
table cosTable { {
|
||||
1.000000, 0.999699, 0.998795, 0.997290, 0.995185, 0.992480, 0.989177, 0.985278,
|
||||
0.980785, 0.975702, 0.970031, 0.963776, 0.956940, 0.949528, 0.941544, 0.932993,
|
||||
0.923880, 0.914210, 0.903989, 0.893224, 0.881921, 0.870087, 0.857729, 0.844854,
|
||||
0.831470, 0.817585, 0.803208, 0.788346, 0.773010, 0.757209, 0.740951, 0.724247,
|
||||
0.707107, 0.689541, 0.671559, 0.653173, 0.634393, 0.615232, 0.595699, 0.575808,
|
||||
0.555570, 0.534998, 0.514103, 0.492898, 0.471397, 0.449611, 0.427555, 0.405241,
|
||||
0.382683, 0.359895, 0.336890, 0.313682, 0.290285, 0.266713, 0.242980, 0.219101,
|
||||
0.195090, 0.170962, 0.146730, 0.122411, 0.098017, 0.073565, 0.049068, 0.024541,
|
||||
0.000000, -0.024541, -0.049068, -0.073565, -0.098017, -0.122411, -0.146730, -0.170962,
|
||||
-0.195090, -0.219101, -0.242980, -0.266713, -0.290285, -0.313682, -0.336890, -0.359895,
|
||||
-0.382683, -0.405241, -0.427555, -0.449611, -0.471397, -0.492898, -0.514103, -0.534998,
|
||||
-0.555570, -0.575808, -0.595699, -0.615232, -0.634393, -0.653173, -0.671559, -0.689541,
|
||||
-0.707107, -0.724247, -0.740951, -0.757209, -0.773010, -0.788346, -0.803208, -0.817585,
|
||||
-0.831470, -0.844854, -0.857729, -0.870087, -0.881921, -0.893224, -0.903989, -0.914210,
|
||||
-0.923880, -0.932993, -0.941544, -0.949528, -0.956940, -0.963776, -0.970031, -0.975702,
|
||||
-0.980785, -0.985278, -0.989177, -0.992480, -0.995185, -0.997290, -0.998795, -0.999699,
|
||||
-1.000000, -0.999699, -0.998795, -0.997290, -0.995185, -0.992480, -0.989177, -0.985278,
|
||||
-0.980785, -0.975702, -0.970031, -0.963776, -0.956940, -0.949528, -0.941544, -0.932993,
|
||||
-0.923880, -0.914210, -0.903989, -0.893224, -0.881921, -0.870087, -0.857729, -0.844854,
|
||||
-0.831470, -0.817585, -0.803208, -0.788346, -0.773010, -0.757209, -0.740951, -0.724247,
|
||||
-0.707107, -0.689541, -0.671559, -0.653173, -0.634393, -0.615232, -0.595699, -0.575808,
|
||||
-0.555570, -0.534998, -0.514103, -0.492898, -0.471397, -0.449611, -0.427555, -0.405241,
|
||||
-0.382683, -0.359895, -0.336890, -0.313682, -0.290285, -0.266713, -0.242980, -0.219101,
|
||||
-0.195090, -0.170962, -0.146730, -0.122411, -0.098017, -0.073565, -0.049068, -0.024541,
|
||||
0.000000, 0.024541, 0.049068, 0.073565, 0.098017, 0.122411, 0.146730, 0.170962,
|
||||
0.195090, 0.219101, 0.242980, 0.266713, 0.290285, 0.313682, 0.336890, 0.359895,
|
||||
0.382683, 0.405241, 0.427555, 0.449611, 0.471397, 0.492898, 0.514103, 0.534998,
|
||||
0.555570, 0.575808, 0.595699, 0.615232, 0.634393, 0.653173, 0.671559, 0.689541,
|
||||
0.707107, 0.724247, 0.740951, 0.757209, 0.773010, 0.788346, 0.803208, 0.817585,
|
||||
0.831470, 0.844854, 0.857729, 0.870087, 0.881921, 0.893224, 0.903989, 0.914210,
|
||||
0.923880, 0.932993, 0.941544, 0.949528, 0.956940, 0.963776, 0.970031, 0.975702,
|
||||
0.980785, 0.985278, 0.989177, 0.992480, 0.995185, 0.997290, 0.998795, 0.999699 } }
|
||||
|
||||
table convexFade { {
|
||||
0.0000000, 0.0249307, 0.0498458, 0.0747300, 0.0995678, 0.1243436, 0.1490421, 0.1736480,
|
||||
0.1981460, 0.2225208, 0.2467572, 0.2708403, 0.2947549, 0.3184864, 0.3420199, 0.3653407,
|
||||
0.3884345, 0.4112868, 0.4338834, 0.4562103, 0.4782536, 0.4999996, 0.5214348, 0.5425459,
|
||||
0.5633196, 0.5837433, 0.6038040, 0.6234894, 0.6427872, 0.6616854, 0.6801723, 0.6982363,
|
||||
0.7158664, 0.7330514, 0.7497807, 0.7660440, 0.7818310, 0.7971320, 0.8119375, 0.8262383,
|
||||
0.8400255, 0.8532904, 0.8660250, 0.8782212, 0.8898714, 0.9009684, 0.9115055, 0.9214758,
|
||||
0.9308734, 0.9396923, 0.9479270, 0.9555725, 0.9626240, 0.9690770, 0.9749277, 0.9801723,
|
||||
0.9848076, 0.9888306, 0.9922391, 0.9950306, 0.9972037, 0.9987569, 0.9996892, 1.0000000 } }
|
||||
|
||||
table concaveFade { {
|
||||
0.0000000, 0.0003108, 0.0012431, 0.0027962, 0.0049692, 0.0077608, 0.0111692, 0.0151922,
|
||||
0.0198275, 0.0250720, 0.0309227, 0.0373757, 0.0444271, 0.0520726, 0.0603073, 0.0691261,
|
||||
0.0785237, 0.0884940, 0.0990310, 0.1101280, 0.1217782, 0.1339744, 0.1467089, 0.1599738,
|
||||
0.1737609, 0.1880617, 0.2028672, 0.2181682, 0.2339552, 0.2502184, 0.2669477, 0.2841327,
|
||||
0.3017627, 0.3198268, 0.3383136, 0.3572118, 0.3765096, 0.3961950, 0.4162557, 0.4366793,
|
||||
0.4574530, 0.4785641, 0.4999992, 0.5217452, 0.5437885, 0.5661154, 0.5887120, 0.6115643,
|
||||
0.6346580, 0.6579789, 0.6815124, 0.7052438, 0.7291585, 0.7532415, 0.7774780, 0.8018527,
|
||||
0.8263507, 0.8509566, 0.8756551, 0.9004309, 0.9252687, 0.9501528, 0.9750680, 1.0000000 } }
|
||||
|
||||
|
||||
table plasmatable { { .9, 1, 1.6, .8, 2, 1, 1.5, 1.7, .8, 1, 1.2, .9, .9, .8, 1.3, .8, .9, .8, 1.6, .7, 1.7, .9, 1.1, .9, .8, .9, 1 } }
|
||||
|
||||
table flicker1 { { 0, .3, .1, .5, .3, .8, .9, .5, .2, .1, .7, .4, 1, .2, .5, 0, .2, .7, .5 } }
|
||||
|
||||
table jet_flicker1 { { 1, .9, .95, .87, 1, .92, .85, .9, .97, .83, .80, .89, 1, 0.95, 1, 0.91, .97, .89, .90 } }
|
||||
|
||||
lights/defaultPointLight
|
||||
{
|
||||
lightFalloffImage makeintensity( lights/square_light_simple_falloff.tga )
|
||||
{
|
||||
forceHighQuality
|
||||
map lights/square_light_simple.tga
|
||||
colored
|
||||
zeroClamp
|
||||
}
|
||||
}
|
||||
|
||||
lights/defaultProjectedLight
|
||||
{
|
||||
lightFalloffImage _noFalloff
|
||||
{
|
||||
forceHighQuality
|
||||
map lights/square_light_simple.tga
|
||||
colored
|
||||
zeroClamp
|
||||
}
|
||||
}
|
||||
|
||||
lights/ambientLight2
|
||||
{
|
||||
ambientLight
|
||||
//lightFalloffImage makeintensity( lights/square_light_simple_falloff2.tga )
|
||||
lightFalloffImage makeintensity( lights/square_light_simple.tga )
|
||||
//lightFalloffImage makeintensity( lights/poop_falloff.tga )
|
||||
{
|
||||
forceHighQuality
|
||||
map lights/square_light_simple.tga
|
||||
colored
|
||||
zeroClamp
|
||||
}
|
||||
}
|
||||
|
||||
lights/terrain_clouds_shadows
|
||||
{
|
||||
{
|
||||
blend filter
|
||||
forceHighQuality
|
||||
//map invertColor(textures/skies/clouds_gray1_add.tga)
|
||||
map textures/skies/clouds_ground_gray1_filter.tga
|
||||
colored
|
||||
scale 10.25, 10.25
|
||||
translate time * -0.007, time * 0.001
|
||||
//rgb 0.7
|
||||
}
|
||||
}
|
||||
|
||||
lights/plasma_fly
|
||||
{
|
||||
{
|
||||
map lights/round_light2_simple_falloff.tga
|
||||
zeroClamp
|
||||
rotate time * 3.7
|
||||
rgb flicker1[ time * 1 ]
|
||||
colored
|
||||
}
|
||||
}
|
||||
|
||||
lights/jetStream
|
||||
{
|
||||
{
|
||||
map lights/round_light2_simple_falloff.tga
|
||||
zeroClamp
|
||||
rgb jet_flicker1[ time * 1 ]
|
||||
colored
|
||||
}
|
||||
}
|
||||
|
||||
lights/pdaPickupRadio
|
||||
{
|
||||
{
|
||||
map lights/round_light2_simple_falloff.tga
|
||||
zeroClamp
|
||||
red 0.25 * lcdFlicker3[ time ]
|
||||
green 0.25 * lcdFlicker3[ time ]
|
||||
blue 0.23 * lcdFlicker3[ time ]
|
||||
//colored
|
||||
}
|
||||
}
|
66
base/materials/lod.mtr
Normal file
66
base/materials/lod.mtr
Normal file
|
@ -0,0 +1,66 @@
|
|||
// ===========================================================================
|
||||
//
|
||||
// LOD system test materials
|
||||
//
|
||||
// ===========================================================================
|
||||
|
||||
models/lod_thing/lod1
|
||||
{
|
||||
qer_editorimage models/mapobjects_static/lod_thing/lod1.tga
|
||||
noShadows
|
||||
lod1
|
||||
bumpmap _flat
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/lod_thing/lod1.tga
|
||||
}
|
||||
}
|
||||
|
||||
models/lod_thing/lod2
|
||||
{
|
||||
qer_editorimage models/mapobjects_static/lod_thing/lod2.tga
|
||||
noShadows
|
||||
lod2
|
||||
bumpmap _flat
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/lod_thing/lod2.tga
|
||||
}
|
||||
}
|
||||
|
||||
models/lod_thing/lod3
|
||||
{
|
||||
qer_editorimage models/mapobjects_static/lod_thing/lod3.tga
|
||||
noShadows
|
||||
lod3
|
||||
bumpmap _flat
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/lod_thing/lod3.tga
|
||||
}
|
||||
}
|
||||
|
||||
models/lod_thing/lod4
|
||||
{
|
||||
qer_editorimage models/mapobjects_static/lod_thing/lod4.tga
|
||||
noShadows
|
||||
lod4
|
||||
bumpmap _flat
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/lod_thing/lod4.tga
|
||||
}
|
||||
}
|
||||
|
||||
models/lod_thing/lod4_persistent
|
||||
{
|
||||
qer_editorimage models/mapobjects_static/lod_thing/lod4.tga
|
||||
noShadows
|
||||
lod4
|
||||
persistentLOD
|
||||
bumpmap _flat
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/lod_thing/lod4.tga
|
||||
}
|
||||
}
|
425
base/materials/map_models.mtr
Normal file
425
base/materials/map_models.mtr
Normal file
|
@ -0,0 +1,425 @@
|
|||
// --------------------------------------------------------------------------------
|
||||
// S T A T I C M A P M O D E L S
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
models\static_vehicles\starship_parked
|
||||
{
|
||||
metal
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map textures/grid1024.tga
|
||||
}
|
||||
/*{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffectLinear.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.00085, 0.0001, 1024.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias, far-edge-bias multiplier
|
||||
vertexParm 1 700, 0.75, -6.25, 11.0
|
||||
|
||||
// far-edge-bias start, far-edge-bias range, far-ink-strength multiplier, far-ink-strength start
|
||||
vertexParm 2 512.0, 2048.0, 5.0, 512.0
|
||||
|
||||
// far-ink-strength range, near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 512.0, 1.5, 2
|
||||
|
||||
fragmentProgram inkEffectLinear.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}*/
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.0015, 0.0005, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0007, 0.05
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 512.0, 1.5, 2.5
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
// PLANETS
|
||||
// ---------------------------------------------------------------------------------------
|
||||
models/planets/phaeton_clouds
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
discrete
|
||||
nonsolid
|
||||
noimpact
|
||||
{
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
maskColor
|
||||
map makealpha(models/planets/cloud_layer_mask.tga)
|
||||
}
|
||||
{
|
||||
//blend gl_dst_color, gl_one
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskAlpha
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
//blend blend
|
||||
map models/planets/cloud_layer_deform_add.tga
|
||||
translate time * 0.0025, 1
|
||||
}
|
||||
}
|
||||
|
||||
models/planets/ganymede_clouds
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
discrete
|
||||
nonsolid
|
||||
noimpact
|
||||
{
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
maskColor
|
||||
map makealpha(models/planets/cloud_layer_mask.tga)
|
||||
}
|
||||
{
|
||||
//blend gl_dst_color, gl_one
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskAlpha
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
//blend blend
|
||||
map models/planets/cloud_layer_deform_add.tga
|
||||
translate time * 0.015, 1
|
||||
}
|
||||
}
|
||||
|
||||
models/planets/phaeton_surface
|
||||
{
|
||||
noShadows
|
||||
noSelfShadow
|
||||
nonsolid
|
||||
noimpact
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/planets/phaeton_surface_d.tga
|
||||
vertexColor
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map models/planets/phaeton_surface_local.tga
|
||||
}
|
||||
// atmospheric glow is experimental; seems to only apply to physical polygons and is affected by vertex color of the mesh
|
||||
{
|
||||
blend add
|
||||
map models/planets/glow_mask2.tga
|
||||
vertexColor
|
||||
red 0.157
|
||||
green 0.694
|
||||
blue 1.0
|
||||
//glow
|
||||
}
|
||||
}
|
||||
|
||||
models/planets/ganymede_surface
|
||||
{
|
||||
noShadows
|
||||
noSelfShadow
|
||||
nonsolid
|
||||
noimpact
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/planets/ganymede_surface_d.tga
|
||||
vertexColor
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map models/planets/phaeton_surface_local.tga
|
||||
}
|
||||
// atmospheric glow is experimental; seems to only apply to physical polygons and is affected by vertex color of the mesh
|
||||
{
|
||||
blend add
|
||||
map models/planets/glow_mask2.tga
|
||||
vertexColor
|
||||
red 0.157
|
||||
green 0.694
|
||||
blue 1.0
|
||||
//glow
|
||||
}
|
||||
}
|
||||
|
||||
models/planets/moon_surface
|
||||
{
|
||||
noShadows
|
||||
noSelfShadow
|
||||
nonsolid
|
||||
noimpact
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/planets/moon_surface_d.tga
|
||||
vertexColor
|
||||
}
|
||||
// atmospheric glow is experimental; seems to only apply to physical polygons and is affected by vertex color of the mesh
|
||||
{
|
||||
blend add
|
||||
map models/planets/glow_mask2.tga
|
||||
vertexColor
|
||||
red 0.157
|
||||
green 0.694
|
||||
blue 1.0
|
||||
//glow
|
||||
}
|
||||
}
|
||||
|
||||
models/planets/phaeton_atmosphere
|
||||
{
|
||||
noshadows
|
||||
noimpact
|
||||
translucent
|
||||
{
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
maskColor
|
||||
map makealpha(models/planets/fresnel_mask.tga)
|
||||
}
|
||||
|
||||
/*{
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskAlpha
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
|
||||
vertexProgram simpleFresnel.vfp
|
||||
|
||||
vertexParm 0 2, 1.2, 0.0075, 0 // fresnel power, scale, bias
|
||||
vertexParm 1 0.157, 0.694, 1, 0.5 // RGBA
|
||||
|
||||
fragmentProgram simpleFresnel.vfp
|
||||
}*/
|
||||
/*{
|
||||
blend add
|
||||
|
||||
vertexProgram simpleFresnel.vfp
|
||||
|
||||
vertexParm 0 3, 0.5, 0.0075, 0 // fresnel power, scale, bias
|
||||
vertexParm 1 0.157, 0.694, 1, 0.5 // RGBA
|
||||
|
||||
fragmentProgram simpleFresnel.vfp
|
||||
}*/
|
||||
}
|
||||
|
||||
models/planets/ganymede_atmosphere
|
||||
{
|
||||
noshadows
|
||||
noimpact
|
||||
translucent
|
||||
{
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
maskColor
|
||||
map makealpha(models/planets/fresnel_mask.tga)
|
||||
}
|
||||
/*{
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskAlpha
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
|
||||
vertexProgram simpleFresnel.vfp
|
||||
|
||||
vertexParm 0 2, 1.2, 0.0075, 0 // fresnel power, scale, bias
|
||||
//vertexParm 1 0.157, 0.694, 1, 0.5 // RGBA
|
||||
vertexParm 1 0.545, 0.698, 0.796, 0.5 // RGBA
|
||||
|
||||
fragmentProgram simpleFresnel.vfp
|
||||
} */
|
||||
}
|
||||
|
||||
models/planets/planetary_debris
|
||||
{
|
||||
noShadows
|
||||
//noSelfShadow
|
||||
nonsolid
|
||||
noimpact
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/planets/planetary_debris_d.tga
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map models/planets/planetary_debris_local.tga
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------
|
||||
// ARCHITECTURE
|
||||
// --------------------------------------------------------------------------------------------------
|
||||
models/arch/ganymede_landing_pad
|
||||
{
|
||||
unsmoothedTangents
|
||||
stone
|
||||
noShadows
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/architecture/landing_pad_d3.tga
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
vertexParm 0 0.0012, 0.0003, 2048.0, 5000.0 // ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 1 700, 0.75, -0.0002, 0.1 // line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0 // far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 3 512.0, 1, 2.5 // far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
models/arch/ganymede_landing_pad_ramp
|
||||
{
|
||||
unsmoothedTangents
|
||||
metal
|
||||
//noShadows
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/architecture/landing_pad_ramp_d.tga
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.0015, 0.0005, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0007, 0.05
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 512.0, 1.5, 2.5
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
models/arch/ganymede_landing_pad_railing
|
||||
{
|
||||
//unsmoothedTangents
|
||||
metal
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/architecture/landing_pad_railing_d.tga
|
||||
}
|
||||
/*{
|
||||
blend bumpmap
|
||||
map models/mapobjects_static/architecture/landing_pad_railing_local.tga
|
||||
}*/
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
vertexParm 0 0.001, 0.0003, 2048.0, 5000.0 // ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 1 700, 0.75, -0.0002, 0.1 // line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0 // far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 3 512.0, 1, 2.5 // far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// DOORS
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
models/arch/personel_entry_door
|
||||
{
|
||||
metal
|
||||
// noShadows
|
||||
// nonsolid
|
||||
// forceshadows
|
||||
collision
|
||||
// unsmoothedTangents
|
||||
qer_editorimage models/mapobjects_static/doors/personnel_entry_door1_d.tga
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/doors/personnel_entry_door1_d.tga
|
||||
}
|
||||
specularmap models/mapobjects_static/doors/personnel_entry_door1_s.tga
|
||||
bumpmap models/mapobjects_static/doors/personnel_entry_door1_local.tga
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
vertexParm 0 0.001, 0.0003, 2048.0, 5000.0 // ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 1 700, 0.75, -0.0002, 0.1 // line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0 // far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 3 512.0, 1, 2.5 // far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Devices with GUIs
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
models/devices/touchscreen_device1_2screens
|
||||
{
|
||||
metal
|
||||
noShadows
|
||||
unsmoothedTangents
|
||||
qer_editorimage models/md5/mapobjects_animated/devices/touchscreen_device1_2screens_d.tga
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/mapobjects_animated/devices/touchscreen_device1_2screens_d.tga
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
vertexParm 0 0.001, 0.0003, 2048.0, 5000.0 // ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 1 700, 0.75, -0.0002, 0.1 // line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0 // far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 3 512.0, 1, 2.5 // far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
591
base/materials/particles.mtr
Normal file
591
base/materials/particles.mtr
Normal file
|
@ -0,0 +1,591 @@
|
|||
// ------------------------------------------------------------------------------
|
||||
// WEATHER
|
||||
// ------------------------------------------------------------------------------
|
||||
textures/particles/snowflake1
|
||||
{
|
||||
qer_editorimage textures/particles/snowflake1a.tga
|
||||
noShadows
|
||||
translucent
|
||||
nonsolid
|
||||
// sort 110
|
||||
// {
|
||||
// blend blend
|
||||
// map textures/particles/snowflake1a.tga
|
||||
// }
|
||||
{
|
||||
//blend add
|
||||
blend blend
|
||||
|
||||
//vertexProgram softParticleRGB.vfp
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
//fragmentProgram softParticleRGB.vfp
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
//fragmentMap 1 forceHighQuality textures/particles/snowflake1b.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
fragmentMap 1 forceHighQuality textures/particles/snowflake1b_alpha.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
/*{
|
||||
blend blend
|
||||
|
||||
vertexProgram foggedBlendSoft.vfp
|
||||
vertexParm 0 0.39, 0.44, 0.48, 1 // fog color
|
||||
vertexParm 1 0.000001219512, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
vertexParm 2 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram foggedBlendSoft.vfp
|
||||
fragmentMap 0 forceHighQuality textures/particles/snowflake1b_alpha.tga // source texture ( preferably with alpha-channel )
|
||||
fragmentMap 1 _currentDepth // depth image
|
||||
}*/
|
||||
}
|
||||
|
||||
textures/particles/snowflakes_blowdust1
|
||||
{
|
||||
//qer_editorimage textures/particles/snowflakes_blowdust1a.tga
|
||||
qer_editorimage textures/particles/snowflakes_blowdust1a_trans.tga
|
||||
noShadows
|
||||
translucent
|
||||
nonsolid
|
||||
//sort 110
|
||||
/*{
|
||||
blend add
|
||||
map textures/particles/snowflakes_blowdust1.tga
|
||||
}
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/snowflakes_blowdust1a_trans.tga
|
||||
alpha 1
|
||||
}*/
|
||||
{
|
||||
//blend add
|
||||
blend blend
|
||||
|
||||
//vertexProgram softParticleRGB.vfp
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.005, 0, 0, 0 // "softness" factor
|
||||
|
||||
//fragmentProgram softParticleRGB.vfp
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
//fragmentMap 1 forceHighQuality textures/particles/snowflakes_blowdust1a.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
fragmentMap 1 forceHighQuality textures/particles/snowflakes_blowdust1a_alpha.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
/*{
|
||||
blend blend
|
||||
|
||||
vertexProgram foggedBlendSoft.vfp
|
||||
vertexParm 0 0.39, 0.44, 0.48, 1 // fog color
|
||||
vertexParm 1 0.000001219512, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; )
|
||||
vertexParm 2 0.005, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram foggedBlendSoft.vfp
|
||||
fragmentMap 0 forceHighQuality textures/particles/snowflakes_blowdust1a_alpha.tga // source texture ( preferably with alpha-channel )
|
||||
fragmentMap 1 _currentDepth // depth image
|
||||
}*/
|
||||
}
|
||||
|
||||
textures/particles/snowflakes_blowdust_ground1
|
||||
{
|
||||
qer_editorimage textures/particles/snowflakes_blowdust_ground1.tga
|
||||
noShadows
|
||||
translucent
|
||||
nonsolid
|
||||
twosided
|
||||
polygonOffset 0.1
|
||||
// {
|
||||
// blend add
|
||||
// map textures/particles/snowflakes_blowdust1.tga
|
||||
// }
|
||||
{
|
||||
blend add
|
||||
//blend blend
|
||||
|
||||
vertexProgram softParticleRGB.vfp
|
||||
//vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleRGB.vfp
|
||||
//fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/snowflakes_blowdust_ground1.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
//fragmentMap 1 forceHighQuality textures/particles/snowflakes_blowdust_ground1_alpha.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/snowflakes_small_blowdust_ground1
|
||||
{
|
||||
qer_editorimage textures/particles/snowflakes_small_blowdust_ground1.tga
|
||||
noShadows
|
||||
translucent
|
||||
nonsolid
|
||||
// twosided
|
||||
// polygonOffset 0.1
|
||||
// {
|
||||
// blend add
|
||||
// map textures/particles/snowflakes_blowdust1.tga
|
||||
// }
|
||||
{
|
||||
//blend add
|
||||
blend blend
|
||||
|
||||
//vertexProgram softParticleRGB.vfp
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
//fragmentProgram softParticleRGB.vfp
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
//fragmentMap 1 forceHighQuality textures/particles/snowflakes_small_blowdust_ground1.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
fragmentMap 1 forceHighQuality textures/particles/snowflakes_small_blowdust_ground1_alpha.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// P R O J E C T I L E S
|
||||
// ------------------------------------------------------------------------------
|
||||
textures/particles/rocket_flame
|
||||
{
|
||||
noselfShadow
|
||||
noshadows
|
||||
translucent
|
||||
discrete
|
||||
nonsolid
|
||||
noimpact
|
||||
//sort decal
|
||||
//sort 110
|
||||
sort nearest
|
||||
/*{
|
||||
blend add
|
||||
map textures/particles/rocket_flame_a.tga
|
||||
vertexcolor
|
||||
colored
|
||||
} */
|
||||
/*{
|
||||
blend add
|
||||
|
||||
vertexProgram foggedAdd.vfp
|
||||
vertexParm 0 0.39, 0.44, 0.48, 1 // fog color
|
||||
vertexParm 1 0.00001219512, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; ) where fadeRange is shaderParms 3 of the fog, fadeStart is distance from the camera in game's units
|
||||
|
||||
fragmentProgram foggedAdd.vfp
|
||||
fragmentMap 0 textures/particles/rocket_flame_a.tga // source texture
|
||||
vertexcolor
|
||||
colored
|
||||
}*/
|
||||
}
|
||||
|
||||
textures/particles/rocket_smoke
|
||||
{
|
||||
noselfShadow
|
||||
noshadows
|
||||
translucent
|
||||
discrete
|
||||
nonsolid
|
||||
noimpact
|
||||
//sort decal
|
||||
sort 110
|
||||
|
||||
/* {
|
||||
blend blend
|
||||
map textures/particles/rocket_smoke_a.tga
|
||||
vertexcolor
|
||||
colored
|
||||
} */
|
||||
{
|
||||
blend blend
|
||||
|
||||
vertexProgram foggedBlend.vfp
|
||||
vertexParm 0 0.39, 0.44, 0.48, 1 // fog color
|
||||
vertexParm 1 0.00001219512, 0.0, 0, 0 // fog fade range, fog start distance ( to "sync" to scene units : zScale = 1.0 / fadeRange; zBias = -( 1.0 / fadeRange ) * fadeStart; ) where fadeRange is shaderParms 3 of the fog, fadeStart is distance from the camera in game's units
|
||||
|
||||
fragmentProgram foggedBlend.vfp
|
||||
fragmentMap 0 textures/particles/rocket_smoke_a.tga // source texture ( preferably with alpha-channel )
|
||||
vertexcolor
|
||||
colored
|
||||
}
|
||||
/* {
|
||||
blend blend
|
||||
|
||||
vertexProgram particleBlend_SoftDistFog.glsl
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
vertexParm 1 128, 128, 0, 0 // distanceFadeStart, distanceFadeRange
|
||||
vertexParm 2 1.0, 1.0, 1.0, 0.00005 // pseudoFog color RGB, "fog thickness" value
|
||||
|
||||
fragmentProgram particleBlend_SoftDistFog.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 textures/particles/rocket_smoke_a.tga
|
||||
|
||||
vertexColor
|
||||
}*/ //used in bfg engine
|
||||
}
|
||||
|
||||
textures/particles/sentinelCOMAR_jetstream_small_dark
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 120
|
||||
clamp
|
||||
{
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/round_sharp_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/sentinelCOMAR_jetstream_small_light
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 121
|
||||
clamp
|
||||
{
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/round_sharp_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/sentinelCOMAR_jetstream_main_dark
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 121
|
||||
clamp
|
||||
/*{
|
||||
blend blend
|
||||
map textures/particles/round_sharp_blend.tga
|
||||
clamp
|
||||
vertexColor
|
||||
}*/
|
||||
{
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/round_sharp_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/sentinelCOMAR_jetstream_main_light
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 122
|
||||
clamp
|
||||
/*{
|
||||
blend blend
|
||||
map textures/particles/round_sharp_blend.tga
|
||||
vertexColor
|
||||
clamp
|
||||
}*/
|
||||
{
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/round_sharp_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// S M O K E S
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
textures/particles/smoke_anime_dark
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 101
|
||||
//sort 120
|
||||
sort 110
|
||||
/* {
|
||||
blend blend
|
||||
map textures/particles/smoke_anime3_test_blend.tga
|
||||
vertexColor
|
||||
//clamp
|
||||
} */
|
||||
{
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/smoke_anime3_test_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
/* {
|
||||
blend blend
|
||||
|
||||
vertexProgram particleBlend_SoftDistFog.glsl
|
||||
|
||||
vertexParm 0 0.05, 0, 0, 0 // "softness" factor
|
||||
vertexParm 1 128, 128, 0, 0 // distanceFadeStart, distanceFadeRange
|
||||
vertexParm 2 1, 1, 1, 0.000005 // pseudoFog color RGB, "fog thickness" value
|
||||
|
||||
fragmentProgram particleBlend_SoftDistFog.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 textures/particles/smoke_anime3_test_blend.tga
|
||||
|
||||
vertexColor
|
||||
}*/ // in bfg engine
|
||||
}
|
||||
|
||||
textures/particles/smoke_anime_light
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 102
|
||||
//sort 121
|
||||
sort 111
|
||||
/*{
|
||||
blend blend
|
||||
map textures/particles/smoke_anime3_test_blend.tga
|
||||
vertexColor
|
||||
clamp
|
||||
}*/
|
||||
{
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/smoke_anime3_test_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
/* {
|
||||
blend blend
|
||||
|
||||
vertexProgram particleBlend_SoftDistFog.glsl
|
||||
|
||||
vertexParm 0 0.05, 0, 0, 0 // "softness" factor
|
||||
vertexParm 1 128, 128, 0, 0 // distanceFadeStart, distanceFadeRange
|
||||
vertexParm 2 1, 1, 1, 0.000005 // pseudoFog color RGB, "fog thickness" value
|
||||
|
||||
fragmentProgram particleBlend_SoftDistFog.glsl
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 textures/particles/smoke_anime3_test_blend.tga
|
||||
|
||||
vertexColor
|
||||
}*/
|
||||
}
|
||||
|
||||
textures/particles/smoke_anime_details
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 103
|
||||
//sort 122
|
||||
/*{
|
||||
blend blend
|
||||
map textures/particles/smoke_anime3detail_test_blend.tga
|
||||
vertexColor
|
||||
clamp
|
||||
}*/
|
||||
{
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/smoke_anime3detail_test_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/smoke_anime_stripe1_dark
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 102
|
||||
//sort 121
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/smoke_anime_stripe1_blend.tga
|
||||
vertexColor
|
||||
clamp
|
||||
}
|
||||
/
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/smoke_anime3_test_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/smoke_anime_stripe2_dark
|
||||
{
|
||||
translucent
|
||||
noShadows
|
||||
noSelfShadow
|
||||
twosided
|
||||
//sort 102
|
||||
//sort 121
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/smoke_anime_stripe2_blend.tga
|
||||
vertexColor
|
||||
clamp
|
||||
}
|
||||
/
|
||||
blend blend
|
||||
vertexColor
|
||||
|
||||
vertexProgram softParticleAlpha.vfp
|
||||
|
||||
vertexParm 0 0.01, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleAlpha.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/smoke_anime3_test_blend.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/plasma_burn_smoke_puff
|
||||
{
|
||||
noSelfShadow
|
||||
noShadows
|
||||
translucent
|
||||
discrete
|
||||
nonsolid
|
||||
sort 122
|
||||
clamp
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/smoke_puff1.tga
|
||||
colored
|
||||
vertexColor
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------
|
||||
// BLOOD PARTICLES
|
||||
// --------------------------------------------------------
|
||||
|
||||
textures/particles/blood_blob1
|
||||
{
|
||||
noSelfShadow
|
||||
noShadows
|
||||
translucent
|
||||
discrete
|
||||
twosided
|
||||
nonsolid
|
||||
noimpact
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/blood_particle1.tga
|
||||
vertexColor
|
||||
colored
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/blood_blob2
|
||||
{
|
||||
noSelfShadow
|
||||
noShadows
|
||||
translucent
|
||||
discrete
|
||||
twosided
|
||||
nonsolid
|
||||
noimpact
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/blood_particle2.tga
|
||||
vertexColor
|
||||
colored
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/blood_blob3
|
||||
{
|
||||
noSelfShadow
|
||||
noShadows
|
||||
translucent
|
||||
discrete
|
||||
twosided
|
||||
nonsolid
|
||||
noimpact
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/blood_particle3.tga
|
||||
vertexColor
|
||||
colored
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/blood_splatter1_thin
|
||||
{
|
||||
noSelfShadow
|
||||
noShadows
|
||||
translucent
|
||||
discrete
|
||||
twosided
|
||||
nonsolid
|
||||
noimpact
|
||||
{
|
||||
blend blend
|
||||
map textures/particles/blood_splatter1_thin.tga
|
||||
vertexColor
|
||||
colored
|
||||
}
|
||||
}
|
71
base/materials/particles_special_test.mtr
Normal file
71
base/materials/particles_special_test.mtr
Normal file
|
@ -0,0 +1,71 @@
|
|||
textures/particles/particletest_blend_soft
|
||||
{
|
||||
qer_editorimage textures/particles/smokepuffb.tga
|
||||
noShadows
|
||||
translucent
|
||||
sort 10
|
||||
|
||||
{
|
||||
blend blend
|
||||
|
||||
vertexProgram particleBlend_SoftDistFog.vfp
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
vertexParm 1 128, 128, 0, 0 // distanceFadeStart, distanceFadeRange
|
||||
vertexParm 2 0, 0, 1, 0.001 // pseudoFog color RGB, "fog thickness" value
|
||||
|
||||
fragmentProgram particleBlend_SoftDistFog.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 textures/particles/smoke01.tga
|
||||
|
||||
vertexColor
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/particletest_add_soft
|
||||
{
|
||||
qer_editorimage textures/particles/smokepuffb.tga
|
||||
noShadows
|
||||
translucent
|
||||
sort 10
|
||||
|
||||
{
|
||||
blend add
|
||||
|
||||
vertexProgram particleAdd_SoftDistFog.vfp
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
vertexParm 1 128, 128, 0, 0
|
||||
vertexParm 2 0, 0, 1, 0.001
|
||||
|
||||
fragmentProgram particleAdd_SoftDistFog.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 textures/particles/smoke01.tga
|
||||
|
||||
vertexColor
|
||||
}
|
||||
}
|
||||
|
||||
textures/particles/particletest_filter_soft
|
||||
{
|
||||
qer_editorimage textures/particles/smokepuffb.tga
|
||||
noShadows
|
||||
translucent
|
||||
sort 10
|
||||
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram particleFilter_SoftDistFog.vfp
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
vertexParm 1 128, 128, 0, 0 //
|
||||
vertexParm 2 0, 0, 1, 0.001
|
||||
|
||||
fragmentProgram particleFilter_SoftDistFog.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 textures/particles/smoke_filter.tga
|
||||
|
||||
vertexColor
|
||||
}
|
||||
}
|
39
base/materials/portalsky.mtr
Normal file
39
base/materials/portalsky.mtr
Normal file
|
@ -0,0 +1,39 @@
|
|||
textures/skies/portal_sky
|
||||
{
|
||||
qer_editorimage textures/editor/portal_sky.tga
|
||||
forceOpaque // will still seal levels
|
||||
noshadows
|
||||
noimpact
|
||||
sort portalSky
|
||||
|
||||
{
|
||||
map _currentRender
|
||||
|
||||
clamp
|
||||
screen
|
||||
|
||||
// fix up the projection based on the screen coords
|
||||
translate global4 * 0.5, global5 * 0.5
|
||||
scale global4 * 0.5, global5 * 0.5
|
||||
}
|
||||
}
|
||||
|
||||
textures/editor/portal_sky
|
||||
{
|
||||
qer_editorimage textures/editor/portal_sky.tga
|
||||
forceOpaque // will still seal levels
|
||||
noshadows
|
||||
noimpact
|
||||
sort portalSky
|
||||
|
||||
{
|
||||
map _currentRender
|
||||
|
||||
clamp
|
||||
screen
|
||||
|
||||
// fix up the projection based on the screen coords
|
||||
translate global4 * 0.5, global5 * 0.5
|
||||
scale global4 * 0.5, global5 * 0.5
|
||||
}
|
||||
}
|
146
base/materials/sfx.mtr
Normal file
146
base/materials/sfx.mtr
Normal file
|
@ -0,0 +1,146 @@
|
|||
table strip6frames { snap { 0, 1, 2, 3, 4, 5 } } // used to playback blood animation strip of 6 frames
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// SPECIAL EFFECT MATERIALS
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
textures/sfx/door_lights1_onoff
|
||||
{
|
||||
translucent
|
||||
noshadows
|
||||
noSelfShadow
|
||||
nonsolid
|
||||
//forceoverlays
|
||||
sort decal
|
||||
{
|
||||
if ( parm7 == 0 )
|
||||
blend blend
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 255 / 255 )
|
||||
green ( 15 / 255 )
|
||||
blue ( 0 / 255 )
|
||||
alphaTest 0.5
|
||||
}
|
||||
{
|
||||
if ( parm7 == 0 )
|
||||
blend add
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 255 / 255 )
|
||||
green ( 15 / 255 )
|
||||
blue ( 0 / 255 )
|
||||
glow
|
||||
}
|
||||
{
|
||||
if ( parm7 == 1 )
|
||||
blend blend
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 142 / 255 )
|
||||
green ( 219 / 255 )
|
||||
blue ( 255 / 255 )
|
||||
alphaTest 0.5
|
||||
}
|
||||
{
|
||||
if ( parm7 == 1 )
|
||||
blend add
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 142 / 255 )
|
||||
green ( 219 / 255 )
|
||||
blue ( 255 / 255 )
|
||||
glow
|
||||
}
|
||||
}
|
||||
|
||||
textures/sfx/door_lights1_locked // red lights
|
||||
{
|
||||
translucent
|
||||
noshadows
|
||||
noSelfShadow
|
||||
nonsolid
|
||||
sort decal
|
||||
{
|
||||
blend blend
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 255 / 255 )
|
||||
green ( 15 / 255 )
|
||||
blue ( 0 / 255 )
|
||||
alphaTest 0.5
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 255 / 255 )
|
||||
green ( 15 / 255 )
|
||||
blue ( 0 / 255 )
|
||||
glow
|
||||
}
|
||||
}
|
||||
|
||||
textures/sfx/door_lights1_open // blue lights
|
||||
{
|
||||
translucent
|
||||
noshadows
|
||||
noSelfShadow
|
||||
nonsolid
|
||||
sort decal
|
||||
{
|
||||
blend blend
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 142 / 255 )
|
||||
green ( 219 / 255 )
|
||||
blue ( 255 / 255 )
|
||||
alphaTest 0.5
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map textures/sfx/door_lights1.tga
|
||||
red ( 142 / 255 )
|
||||
green ( 219 / 255 )
|
||||
blue ( 255 / 255 )
|
||||
glow
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// animated blood splatter (on impact with living bodies)
|
||||
// -------------------------------------------------------------------------
|
||||
textures/sfx/blood_string1
|
||||
{
|
||||
noSelfShadow
|
||||
noshadows
|
||||
translucent
|
||||
discrete
|
||||
twosided
|
||||
nonsolid
|
||||
noimpact
|
||||
|
||||
qer_editorimage textures/sfx/blood_string1_strip.tga
|
||||
|
||||
{
|
||||
blend blend
|
||||
map textures/sfx/blood_string1_strip.tga
|
||||
scale 1 , 1 / 6
|
||||
scroll 0 , strip6frames[ time * 2 ]
|
||||
colored
|
||||
vertexColor
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// FLARES
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
textures/sfx/flare_basic
|
||||
{
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
deform flare ( 16 + parm4 ) // shaderParm4 set on flare's entity sets its size; e.g. shaderParm4 10 would result in ( 16 + 10 )
|
||||
qer_editorimage textures/editor/flare.tga
|
||||
{
|
||||
if ( parm7 == 0 ) // if a light with this flare breaks, flare gets removed
|
||||
blend add
|
||||
map _quadratic
|
||||
colored
|
||||
vertexcolor
|
||||
}
|
||||
}
|
254
base/materials/test_glow.mtr
Normal file
254
base/materials/test_glow.mtr
Normal file
|
@ -0,0 +1,254 @@
|
|||
textures/blurX_16_512
|
||||
{
|
||||
{
|
||||
blend gl_one, gl_zero
|
||||
|
||||
vertexProgram gaussBlurX_15.vfp
|
||||
vertexParm 0 parm0
|
||||
|
||||
fragmentProgram gaussBlurX_15.vfp
|
||||
fragmentMap 0 _glow512
|
||||
}
|
||||
}
|
||||
|
||||
textures/blurY_16_512
|
||||
{
|
||||
{
|
||||
blend gl_one, gl_zero
|
||||
|
||||
vertexProgram gaussBlurY_15.vfp
|
||||
vertexParm 0 parm0
|
||||
|
||||
fragmentProgram gaussBlurY_15.vfp
|
||||
fragmentMap 0 _glow512
|
||||
}
|
||||
}
|
||||
|
||||
textures/blurX_16_256
|
||||
{
|
||||
{
|
||||
blend gl_one, gl_zero
|
||||
|
||||
vertexProgram gaussBlurX_15.vfp
|
||||
vertexParm 0 parm0
|
||||
|
||||
fragmentProgram gaussBlurX_15.vfp
|
||||
fragmentMap 0 _glow256
|
||||
}
|
||||
}
|
||||
|
||||
textures/blurY_16_256
|
||||
{
|
||||
{
|
||||
blend gl_one, gl_zero
|
||||
|
||||
vertexProgram gaussBlurY_15.vfp
|
||||
vertexParm 0 parm0
|
||||
|
||||
fragmentProgram gaussBlurY_15.vfp
|
||||
fragmentMap 0 _glow256
|
||||
}
|
||||
}
|
||||
|
||||
textures/blurX_16_128
|
||||
{
|
||||
{
|
||||
blend blend
|
||||
|
||||
vertexProgram blurX_16_128.vfp
|
||||
|
||||
fragmentProgram blurX_16_128.vfp
|
||||
fragmentMap 0 _glow128
|
||||
|
||||
//colored
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
textures/blurY_16_128
|
||||
{
|
||||
{
|
||||
blend blend
|
||||
|
||||
vertexProgram blurY_16_128.vfp
|
||||
|
||||
fragmentProgram blurY_16_128.vfp
|
||||
fragmentMap 0 _glow128
|
||||
|
||||
//colored
|
||||
}
|
||||
}
|
||||
|
||||
textures/glowComp
|
||||
{
|
||||
{
|
||||
blend blend
|
||||
vertexProgram glowComp.vfp
|
||||
vertexParm 0 parm0, parm1, 1, 1 // effect scale of 512 image, effect scale of 256 image, unused, unused
|
||||
|
||||
fragmentProgram glowComp.vfp
|
||||
fragmentMap 0 _currentRender
|
||||
fragmentMap 1 _glow512
|
||||
fragmentMap 2 _glow256
|
||||
}
|
||||
}
|
||||
|
||||
textures/glowMaterial
|
||||
{
|
||||
{
|
||||
blend blend
|
||||
map _currentGlow
|
||||
}
|
||||
}
|
||||
|
||||
// glow test materials
|
||||
|
||||
textures/inkTest/btex1a_glow
|
||||
{
|
||||
qer_editorimage textures/base_floor/a_bluetex1a_02.tga
|
||||
|
||||
{
|
||||
blend diffusemap
|
||||
map _white
|
||||
red 0.5
|
||||
green 0.5
|
||||
blue 0.5
|
||||
}
|
||||
{
|
||||
blend specularmap
|
||||
map _white
|
||||
rgb 0.5
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map _flat
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram depthTest.vfp
|
||||
|
||||
vertexParm 0 0.002, 0.75, 700, 1 // ink line size, ink strength
|
||||
vertexParm 1 0.0075, 0.75, 32.0, 64.0 // inner edge threshold near, inner edge threshold far, nearDistance, lerpRange
|
||||
vertexParm 2 1200.0, 1024.0 // fadeStart, fadeRange
|
||||
vertexParm 3 0.00095, 512.0, 4096.0, -0.00060
|
||||
|
||||
fragmentProgram depthTest.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
{
|
||||
blend blend
|
||||
map _white
|
||||
glow
|
||||
}
|
||||
}
|
||||
|
||||
textures/inkTest/btex1a_glow2
|
||||
{
|
||||
qer_editorimage textures/base_floor/a_bluetex1a_02.tga
|
||||
|
||||
{
|
||||
blend diffusemap
|
||||
map _white
|
||||
red 0.5
|
||||
green 0.5
|
||||
blue 0.5
|
||||
}
|
||||
{
|
||||
blend specularmap
|
||||
map _white
|
||||
rgb 0.5
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map _flat
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram depthTest.vfp
|
||||
|
||||
vertexParm 0 0.002, 0.75, 700, 1 // ink line size, ink strength
|
||||
vertexParm 1 0.0075, 0.75, 32.0, 64.0 // inner edge threshold near, inner edge threshold far, nearDistance, lerpRange
|
||||
vertexParm 2 1200.0, 1024.0 // fadeStart, fadeRange
|
||||
vertexParm 3 0.00095, 512.0, 4096.0, -0.00060
|
||||
|
||||
fragmentProgram depthTest.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map textures/glowtest.tga
|
||||
rgb 0.5
|
||||
}
|
||||
{
|
||||
blend blend
|
||||
map textures/glowtest.tga
|
||||
glow
|
||||
}
|
||||
}
|
||||
|
||||
textures/sfx/flare_glow
|
||||
{
|
||||
noshadows
|
||||
translucent
|
||||
nonsolid
|
||||
deform flare 32
|
||||
qer_editorimage textures/editor/flare.tga
|
||||
{
|
||||
if ( parm7 == 0 )
|
||||
blend add
|
||||
map _quadratic
|
||||
//colored
|
||||
rgb 0.25
|
||||
vertexcolor
|
||||
glow
|
||||
}
|
||||
}
|
||||
|
||||
models/mapobjects_static/glowing_cube
|
||||
{
|
||||
qer_editorimage models/mapobjects_static/glowing_cube_d.tga
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/mapobjects_static/glowing_cube_d.tga
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.0015, 0.0001, 2048.0, 3000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.00085, 0.0005
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 1024.0, 9.0, 256.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 2048.0, 2, 3
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/mapobjects_static/glowing_cube_glow.tga
|
||||
rgb 0.85
|
||||
}
|
||||
{
|
||||
blend blend
|
||||
map models/mapobjects_static/glowing_cube_glow.tga
|
||||
glow
|
||||
}
|
||||
}
|
170
base/materials/test_inks.mtr
Normal file
170
base/materials/test_inks.mtr
Normal file
|
@ -0,0 +1,170 @@
|
|||
textures/inkTest/btex1a
|
||||
{
|
||||
qer_editorimage textures/base_floor/a_bluetex1a_02.tga
|
||||
|
||||
//bumpmap addnormals( textures/base_floor/a_bluetex1a_local.tga, heightmap( textures/base_floor/a_bluetex1a_b02.tga, 1 ) )
|
||||
//diffusemap textures/base_floor/a_bluetex1a_d02.tga
|
||||
{
|
||||
blend diffusemap
|
||||
map _white
|
||||
red 0.5
|
||||
green 0.5
|
||||
blue 0.5
|
||||
}
|
||||
{
|
||||
blend specularmap
|
||||
map _white
|
||||
rgb 0.5
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map _flat
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram depthTest.vfp
|
||||
//vertexParm 0 0.0012, 0.5, 400, 1 // ink line size, ink strength
|
||||
//vertexParm 1 0.0075, 0.75, 32.0, 64.0 // inner edge threshold near, inner edge threshold far, nearDistance, lerpRange
|
||||
//vertexParm 2 1200.0, 1024.0 // fadeStart, fadeRange
|
||||
//vertexParm 3 0.001, 256.0, 256.0, -0.00025 // ink line size far, sizeChangeStart, sizeChangeRange, inkBias ( should be negative )
|
||||
|
||||
vertexParm 0 0.0012, 0.75, 700, 1 // ink line size, ink strength
|
||||
vertexParm 1 0.0075, 0.75, 32.0, 64.0 // inner edge threshold near, inner edge threshold far, nearDistance, lerpRange
|
||||
vertexParm 2 1200.0, 1024.0 // fadeStart, fadeRange
|
||||
vertexParm 3 0.00095, 512.0, 4096.0, -0.00060
|
||||
|
||||
fragmentProgram depthTest.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
textures/inkTest/a_diafloor_1b_fin
|
||||
{
|
||||
qer_editorimage textures/base_floor/a_diafloor_1b_fin.tga
|
||||
|
||||
//diffusemap textures/base_floor/a_diafloor_d1b_fin.tga
|
||||
//specularmap textures/base_floor/a_diafloor_s1_fin.tga
|
||||
//bumpmap addnormals( textures/base_floor/a_diafloor_local_fin.tga , heightmap( textures/base_floor/a_diafloor_b1_fin.tga, 4 ) )
|
||||
{
|
||||
blend diffusemap
|
||||
map _white
|
||||
red 0.65
|
||||
green 0.5
|
||||
blue 0.35
|
||||
}
|
||||
{
|
||||
blend specularmap
|
||||
map _white
|
||||
rgb 0.5
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map _flat
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram depthTest.vfp
|
||||
//vertexParm 0 0.002, 0.5, 400, 1 // ink line size, ink strength
|
||||
//vertexParm 1 0.0075, 0.75, 32.0, 64.0 // inner edge threshold near, inner edge threshold far, nearDistance, lerpRange
|
||||
//vertexParm 2 1200.0, 1024.0 // fadeStart, fadeRange
|
||||
//vertexParm 3 0.001, 256.0, 256.0, -0.00025 // ink line size far, sizeChangeStart, sizeChangeRange, inkBias ( should be negative )
|
||||
|
||||
vertexParm 0 0.0012, 0.75, 700, 1 // ink line size, ink strength
|
||||
vertexParm 1 0.0075, 0.75, 32.0, 64.0 // inner edge threshold near, inner edge threshold far, nearDistance, lerpRange
|
||||
vertexParm 2 1200.0, 1024.0 // fadeStart, fadeRange
|
||||
vertexParm 3 0.00095, 512.0, 4096.0, -0.00060
|
||||
|
||||
fragmentProgram depthTest.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
||||
|
||||
shaderDemos/testReflect2
|
||||
{
|
||||
noshadows
|
||||
qer_editorimage textures/base_floor/a_diafloor_d1b_fin.tga
|
||||
|
||||
{
|
||||
mirrorRenderMap 512 256
|
||||
blend add
|
||||
maskColor
|
||||
}
|
||||
{
|
||||
blend add
|
||||
vertexProgram bumpyMirror.vfp
|
||||
vertexParm 0 0, 0 // texture scrolling
|
||||
vertexParm 1 2 // magnitude of the distortion
|
||||
vertexParm 2 0.001953125, 0.00390625, 1, 0 // ( 1 / mirrorMapWidth, 1 / mirrorMapHeight )
|
||||
vertexParm 3 0.3 // how much of the reflection will be added
|
||||
//vertexParm 2 0.00390625, 0.0078125, 0.5, 0.5 // ( 1 / mirrorMapWidth, 1 / mirrorMapHeight )
|
||||
fragmentProgram bumpyMirror.vfp
|
||||
fragmentMap 0 _scratch // mirror image
|
||||
fragmentMap 1 _flat
|
||||
}
|
||||
|
||||
//bumpmap textures/base_floor/a_diafloor_local_fin.tga
|
||||
|
||||
{
|
||||
blend diffuseMap
|
||||
//map textures/base_floor/a_diafloor_d1b_fin.tga
|
||||
map _white
|
||||
rgb 0.25
|
||||
}
|
||||
|
||||
{
|
||||
blend specularmap
|
||||
//map textures/base_floor/a_diafloor_d1b_fin.tga
|
||||
map _white
|
||||
rgb 0.25
|
||||
}
|
||||
//specularmap textures/base_floor/a_diafloor_s1_fin.tga
|
||||
}
|
||||
|
||||
shaderDemos/testReflect
|
||||
{
|
||||
noshadows
|
||||
qer_editorimage textures/base_floor/a_diafloor_d1b_fin.tga
|
||||
|
||||
{
|
||||
mirrorRenderMap 512 256
|
||||
blend add
|
||||
maskColor
|
||||
}
|
||||
{
|
||||
blend add
|
||||
vertexProgram bumpyMirror.vfp
|
||||
vertexParm 0 0, 0 // texture scrolling
|
||||
vertexParm 1 2 // magnitude of the distortion
|
||||
vertexParm 2 0.001953125, 0.00390625, 2.5, 0 // ( 1 / mirrorMapWidth, 1 / mirrorMapHeight )
|
||||
vertexParm 3 0.3 // how much of the reflection will be added
|
||||
//vertexParm 2 0.00390625, 0.0078125, 0.5, 0.5 // ( 1 / mirrorMapWidth, 1 / mirrorMapHeight )
|
||||
fragmentProgram bumpyMirror.vfp
|
||||
fragmentMap 0 _scratch // mirror image
|
||||
fragmentMap 1 textures/base_floor/a_diafloor_local_fin.tga
|
||||
}
|
||||
|
||||
bumpmap textures/base_floor/a_diafloor_local_fin.tga
|
||||
|
||||
{
|
||||
blend diffuseMap
|
||||
//map textures/base_floor/a_diafloor_d1b_fin.tga
|
||||
map _white
|
||||
rgb 0.25
|
||||
}
|
||||
|
||||
{
|
||||
blend specularmap
|
||||
//map textures/base_floor/a_diafloor_d1b_fin.tga
|
||||
map _white
|
||||
rgb 0.25
|
||||
}
|
||||
//specularmap textures/base_floor/a_diafloor_s1_fin.tga
|
||||
}
|
66
base/materials/test_misc.mtr
Normal file
66
base/materials/test_misc.mtr
Normal file
|
@ -0,0 +1,66 @@
|
|||
textures/test/fresnel
|
||||
{
|
||||
{
|
||||
map _black
|
||||
}
|
||||
{
|
||||
blend add
|
||||
|
||||
vertexProgram simpleFresnel.vfp
|
||||
vertexParm 0 4, 0.5, 0, 0 // fresnelPower, fresnelScale, fresnelBias
|
||||
vertexParm 1 1, 1, 1, 1 // RGBA Tint
|
||||
|
||||
fragmentProgram simpleFresnel.vfp
|
||||
fragmentMap 0 normalMap textures/sfx/heathaze_local.tga // normalmap, use _flat otherwise
|
||||
fragmentMap 1 textures/sfx/heathaze_local.tga // optional texture to multiply with
|
||||
}
|
||||
}
|
||||
|
||||
textures/test/reflectiveBlurred
|
||||
{
|
||||
noshadows
|
||||
{
|
||||
mirrorRenderMap 512 256
|
||||
blend blend
|
||||
alpha 1
|
||||
translate 0.5 , 0.5
|
||||
scale 0.5 , 0.5
|
||||
}
|
||||
}
|
||||
|
||||
textures/fresnel_sphere
|
||||
{
|
||||
{
|
||||
blend bumpmap // this stage is needed to workaround issue of not having cubeMap reflections without diffusemap stage
|
||||
map _flat
|
||||
}
|
||||
{
|
||||
vertexProgram heatHaze.vfp
|
||||
vertexParm 0 0 , 0 // texture scrolling
|
||||
vertexParm 1 3.75 // magnitude of the distortion
|
||||
|
||||
fragmentProgram heatHaze.vfp
|
||||
fragmentMap 0 _currentRender
|
||||
fragmentMap 1 normalMap textures/sfx/heathaze_local.tga // the normal map for distortion
|
||||
}
|
||||
{
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskalpha
|
||||
cubeMap env/test // envshot cmd has to be issues when in 640x480 resolution (r_mode 3) and g_fov 90 to avoid artifacts
|
||||
red Parm0
|
||||
green Parm1
|
||||
blue Parm2
|
||||
texgen reflect
|
||||
}
|
||||
{
|
||||
blend add
|
||||
|
||||
vertexProgram simpleFresnel.vfp
|
||||
vertexParm 0 5, 1, 0, 0 // fresnelPower, fresnelScale, fresnelBias
|
||||
vertexParm 1 0, 1, 1, 1 // RGBA Tint
|
||||
|
||||
fragmentProgram simpleFresnel.vfp
|
||||
fragmentMap 0 normalMap textures/sfx/heathaze_local.tga // normalmap, use _flat otherwise
|
||||
fragmentMap 1 textures/sfx/heathaze_local.tga // optional texture to multiply with
|
||||
}
|
||||
}
|
77
base/materials/test_skies.mtr
Normal file
77
base/materials/test_skies.mtr
Normal file
|
@ -0,0 +1,77 @@
|
|||
textures/skies/test_skybox
|
||||
{
|
||||
qer_editorimage textures/editor/test_skybox.tga
|
||||
noFragment
|
||||
noshadows
|
||||
nooverlays
|
||||
noimpact
|
||||
forceOpaque // allows for transparent windows to be drawn on top (in front) of the sky
|
||||
{
|
||||
blend add // allows for transparent windows to be drawn on top (in front) of the sky
|
||||
forceHighQuality
|
||||
//cameraCubeMap env/test_sky2t
|
||||
cameraCubeMap env/sky_gray_cloudy2_fogged
|
||||
texgen skybox
|
||||
texgen wobblesky .0 .0 .0
|
||||
}
|
||||
}
|
||||
|
||||
textures/skies/clouds_gray_layer1
|
||||
{
|
||||
qer_editorimage textures/skies/clouds_gray_layer1.tga
|
||||
translucent
|
||||
noshadows
|
||||
{
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
maskcolor
|
||||
map makealpha(textures/skies/skydome_cloud_mask.tga)
|
||||
}
|
||||
{
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskalpha
|
||||
forceHighQuality
|
||||
nopicmip
|
||||
//map textures/skies/clouds_gray_layer1_add.tga
|
||||
map textures/skies/clouds_gray1_add.tga
|
||||
//red 0.4
|
||||
//blue 0.01
|
||||
//green 0.1
|
||||
scale 1.55, 1.55
|
||||
translate time * 0.001, time * 0.015
|
||||
}
|
||||
}
|
||||
|
||||
textures/skies/skybox_black
|
||||
{
|
||||
qer_editorimage textures/colors/black.tga
|
||||
noFragment
|
||||
noshadows
|
||||
nooverlays
|
||||
noimpact
|
||||
forceOpaque // allows for transparent windows to be drawn on top (in front) of the sky
|
||||
{
|
||||
blend add // allows for transparent windows to be drawn on top (in front) of the sky
|
||||
forceHighQuality
|
||||
cameraCubeMap env/pure_black
|
||||
texgen skybox
|
||||
texgen wobblesky .0 .0 .0
|
||||
}
|
||||
}
|
||||
|
||||
textures/skies/skybox_deep_space
|
||||
{
|
||||
qer_editorimage textures/editor/skybox_deep_space.tga
|
||||
noFragment
|
||||
noshadows
|
||||
nooverlays
|
||||
noimpact
|
||||
forceOpaque // allows for transparent windows to be drawn on top (in front) of the sky
|
||||
{
|
||||
blend add // allows for transparent windows to be drawn on top (in front) of the sky
|
||||
forceHighQuality
|
||||
cameraCubeMap env/deep_space
|
||||
texgen skybox
|
||||
texgen wobblesky .01 .01 .01
|
||||
}
|
||||
}
|
22
base/materials/test_softparticles.mtr
Normal file
22
base/materials/test_softparticles.mtr
Normal file
|
@ -0,0 +1,22 @@
|
|||
// soft particle test
|
||||
textures/particles/smokepuff_soft
|
||||
{
|
||||
qer_editorimage textures/particles/smokepuffb.tga
|
||||
noShadows
|
||||
translucent
|
||||
sort 10
|
||||
|
||||
{
|
||||
blend add
|
||||
|
||||
vertexProgram softParticleRGB.vfp
|
||||
|
||||
vertexParm 0 0.1, 0, 0, 0 // "softness" factor
|
||||
|
||||
fragmentProgram softParticleRGB.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
fragmentMap 1 forceHighQuality textures/particles/smokepuffx.tga // certain textures should be forced to high quality for the shader to work properly
|
||||
|
||||
//vertexColor
|
||||
}
|
||||
}
|
124
base/materials/vehicles_buggy.mtr
Normal file
124
base/materials/vehicles_buggy.mtr
Normal file
|
@ -0,0 +1,124 @@
|
|||
// ---------------------------------------------------------------------------
|
||||
// PLAYER's BUGGY
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
models/md5/vehicles/buggy/buggy
|
||||
{
|
||||
noShadows
|
||||
noSelfShadow
|
||||
unsmoothedTangents
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/vehicles/buggy/buggy2_d.tga
|
||||
}
|
||||
{
|
||||
maskcolor
|
||||
map makealpha( scale( models/md5/vehicles/buggy/buggy2_reflection_mask1.tga, 1.0, 0.5, 0.85, 1.0 )) // same as alpha 0.85, but can manipulate particular RGB values for more elaborate reflections
|
||||
//map makealpha(models/md5/vehicles/buggy/buggy2_reflection_mask1.tga)
|
||||
//alpha 0.85 // used for fine tuning of cubemap reflections
|
||||
}
|
||||
{
|
||||
//blend gl_dst_color, gl_one
|
||||
blend gl_dst_alpha, gl_one
|
||||
maskalpha
|
||||
cubeMap env/cubemap_start
|
||||
texgen reflect
|
||||
}
|
||||
/*{
|
||||
blend bumpmap
|
||||
map models/md5/vehicles/buggy/buggy2_local.tga
|
||||
} */
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.0008, 0.0003, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0007, 0.01
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 512.0, 2, 3.5
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
/*{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffectLinear.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.00085, 0.0001, 128.0, 2024.0
|
||||
|
||||
// line strength, line "blackness", edge-bias, far-edge-bias multiplier
|
||||
vertexParm 1 700, 0.75, -2.37, 10.0
|
||||
|
||||
// far-edge-bias start, far-edge-bias range, far-ink-strength multiplier, far-ink-strength start
|
||||
vertexParm 2 32.0, 512.0, 6.0, 128.0
|
||||
|
||||
// far-ink-strength range, near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 2048.0, 2, 1.0
|
||||
|
||||
fragmentProgram inkEffectLinear.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
} */
|
||||
{
|
||||
blend add
|
||||
map models/md5/vehicles/buggy/buggy2_lights.tga
|
||||
//scale 4 , 4
|
||||
}
|
||||
{
|
||||
blend add
|
||||
map models/md5/vehicles/buggy/buggy2_glow.tga
|
||||
//scale 4 , 4
|
||||
glow
|
||||
}
|
||||
}
|
||||
|
||||
models/vehicles/buggy_tire
|
||||
{
|
||||
noShadows
|
||||
noSelfShadow
|
||||
//unsmoothedTangents
|
||||
//nonsolid
|
||||
{
|
||||
blend diffusemap
|
||||
map models/md5/vehicles/buggy/tire2_d.tga
|
||||
}
|
||||
{
|
||||
blend bumpmap
|
||||
map models/md5/vehicles/buggy/tire2_local.tga
|
||||
}
|
||||
{
|
||||
blend filter
|
||||
|
||||
vertexProgram inkEffect.vfp
|
||||
|
||||
// ink line size, ink line size far, ink size change start, ink size change range
|
||||
vertexParm 0 0.001, 0.0003, 2048.0, 5000.0
|
||||
|
||||
// line strength, line "blackness", edge-bias (lower values produce more inking on inner creases close up), far-edge-bias multiplier (?)
|
||||
vertexParm 1 700, 0.75, -0.0002, 0.1
|
||||
|
||||
// far-edge-bias start (how far from the view far-range algo kicks in; 2048 is a good value), far-edge-bias range (), far-ink-strength multiplier (the higher the more crease inking on the far away objects), far-ink-strength start
|
||||
vertexParm 2 2048.0, 3072.0, 180.0, 56.0
|
||||
|
||||
// far-ink-strength range (higher number will fade away inks sooner), near ink edge scale, far ink edge scale ( based on far bias range settings )
|
||||
vertexParm 3 512.0, 1, 2.5
|
||||
|
||||
fragmentProgram inkEffect.vfp
|
||||
fragmentMap 0 _currentDepth
|
||||
|
||||
maskDepth
|
||||
}
|
||||
}
|
25
base/materials/video.mtr
Normal file
25
base/materials/video.mtr
Normal file
|
@ -0,0 +1,25 @@
|
|||
// default video in PDA
|
||||
video/default_pda_video {
|
||||
translucent {
|
||||
videomap "video/default_pda_video.roq"
|
||||
linear
|
||||
}
|
||||
}
|
||||
|
||||
video/placeholder {
|
||||
translucent {
|
||||
map guis/assets/video_placeholder_material.tga
|
||||
}
|
||||
}
|
||||
|
||||
video/loadvideo {
|
||||
translucent {
|
||||
videomap video/loadvideo.RoQ
|
||||
}
|
||||
}
|
||||
|
||||
video/communication_stream {
|
||||
translucent {
|
||||
videomap video/loadvideo.RoQ
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue