Glow Shader With Alpha Support

From GameStudio Wiki

Jump to: navigation, search

the shader with alpha support and full model glow:


/////////////////////////////////////////////////
 //multipass shader for volumetric glow for models
 /////////////////////////////////////////////////

        texture entSkin1; //model skin
        texture entSkin2;//entskin2 is the glow map.. make it a very dark solid color
        matrix matWorldViewProj;
        matrix matWorld;
        matrix matWorldView;
        vector vecSkill1;
        vector vecSkill41;
        vector vecFog;
        vector vecSunDir;

        technique glow
        {
                pass p0
                {
                        texture[0]=<entSkin1>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;          // shell_distance, 0, fur_u_scale, fur_v_scale
                        vertexShaderConstant[17]={0.0,0.0,0.0,0.0};     // shell_number
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;           // first_shell_brightness, brightness_increment, 0, 0
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1

										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x               // shell distance * shell number
                                mul r1,r1,v3                    // scale normal
                                add r0.xyz,r0.xyz,r1.xyz        // shell offset (vertex position + scaled normal}

                                m4x4 oPos,r0,c0                 // transform position to clip space
                                mov oT0,v7                      // output uvs

                                mov r1.w,c20.w                  // r1.w=1
                                dp4 r0,v0,c10                   // distance to camera position
                                add r0,r0,-c20.x                // distance-fog_start
                                mad r0.x,-r0.x,c20.z,r1.w       // 1-(distance-fog_start}*(1/(fog_end-fog_start}}
                                max oFog,r0.x,c95.w           // clamp with custom max value
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1
                                tex t0 // sample colormap

                                mov r0,t0

                        };
                }

                //-----------------------------------------------------------------------------

                pass p1
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

								srcblend=srccolor;
								destblend=one;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={1.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w

                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	  mov r0,t0


                        };
                }
                pass p2
                {
                        texture[0]=<entSkin2>;


                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={2.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7

                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0


                        };
                }
                pass p3
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={3.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p4
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={4.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p5
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={5.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p6
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={6.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3

										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p7
                {
                        texture[0]=<entSkin2>;




                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={7.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p8
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={8.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1
                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p9
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={9.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p10
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={10.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                tex t0

                             	   mov r0,t0

                        };
                }
                pass p11
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={11.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {

                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

                                pass p12
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={12.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

                                pass p13
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={13.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

                                                pass p14
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={14.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

                                                pass p15
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={15.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }
                                                pass p16
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={16.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv
                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

                                                pass p17
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={17.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

                                                pass p18
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={18.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

                                                pass p19
                {
                        texture[0]=<entSkin2>;


                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={19.0,0.0,0.0,0.0};
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =

                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv
                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }
                                                pass p20
                {
                        texture[0]=<entSkin2>;



                        zWriteEnable=true;
                        alphaBlendEnable=true;

                        vertexShaderConstant[0]=<matWorldViewProj>;
                        vertexShaderConstant[4]=<matWorld>;
                        vertexShaderConstant[8]=<matWorldView>;
                        vertexShaderConstant[16]=<vecSkill41>;
                        vertexShaderConstant[17]={1.0,0.0,0.0,0.0}; // Changed this to 1
                        vertexShaderConstant[19]=<vecSunDir>;
                        vertexShaderConstant[20]=<vecFog>;
                        vertexShaderConstant[94]=<vecSkill1>;
                        vertexShaderConstant[95]={0.5,1.0,2.0,0.0};

                        vertexShader =
                        asm
                        {
                                vs.1.1
										  dcl_position  v0
										  dcl_normal    v3
										  dcl_texcoord1 v7 //color uv

                                mov r0,v0
                                mov r1,c16
                                mul r1,r1.x,c17.x
                                mul r1,r1,v3
                                add r0.xyz,r0.xyz,r1.xyz

                                m4x4 oPos,r0,c0
                                mov oT0,v7


                                mov r1.w,c20.w
                                dp4 r0,v0,c10
                                add r0,r0,-c20.x
                                mad r0.x,-r0.x,c20.z,r1.w
                                max oFog,r0.x,c95.w
                        };
                        pixelShader=
                        asm
                        {
                                ps.1.1

                                	tex t0

                             	   mov r0,t0

                        };
                }

        }

the code for your main script:


material glowmodel
{
	effect="glow.fx";
}

action anymodel{
	my.material=glowmodel;
	my.skill41 = float(0.3); // adjust the stength of the glow
	my.bright=on; // improves a lot
	my.nofog=on; // try "off", cool as well
}

you need to know: the glow model needs to have two tga skins of the same size, with an alpha channel. the first is the diffuse, the second is the glow map. make your glow map really dark and the alpha channel as well, otherwise, the glow will be much too hard and prominent.

Personal tools