hi .. sry but i don't understand what you mean .... what must i change
my script for the shader:
Code:
bmap projectiontex = <Spotlight.jpg>;
var scan_radius=1000;
var lighttimer=0;
var matTexProj[16];
var tempmatrix[16];
var WorldToProjection[16];
var matClipProj[16];
entity* beamer;
var d3d_automaterial = 1;
function mat_projection_init()
{
//set up the texture projection matrix
matTexProj[0]=my.skill80;
matTexProj[1]=my.skill81;
matTexProj[2]=my.skill82;
matTexProj[3]=my.skill83;
matTexProj[4]=my.skill84;
matTexProj[5]=my.skill85;
matTexProj[6]=my.skill86;
matTexProj[7]=my.skill87;
matTexProj[8]=my.skill88;
matTexProj[9]=my.skill89;
matTexProj[10]=my.skill90;
matTexProj[11]=my.skill91;
matTexProj[12]=my.skill92;
matTexProj[13]=my.skill93;
matTexProj[14]=my.skill94;
matTexProj[15]=my.skill95;
mat_set(mtl.matrix,matWorld);
mat_multiply(mtl.matrix,matTexProj);
/*
mat_set(mtl.matrix,matView);
mat_multiply(mtl.matrix,matProj);
mat_inverse(mtl.matrix, mtl.matrix);
mat_transpose(mtl.matrix, mtl.matrix);
*/
}
material mat_projection
{
skin1 = projectiontex;
event = mat_projection_init;
flags = tangent | enable_render | translucent;
//effect = "tproj_asm.fx";
effect = "tproj_hlsl.fx";
}
function mat_projection_init_test()
{
if(!beamer){wait(1);}
//set up the texture projection matrix
matTexProj[0]=beamer.skill80;
matTexProj[1]=beamer.skill81;
matTexProj[2]=beamer.skill82;
matTexProj[3]=beamer.skill83;
matTexProj[4]=beamer.skill84;
matTexProj[5]=beamer.skill85;
matTexProj[6]=beamer.skill86;
matTexProj[7]=beamer.skill87;
matTexProj[8]=beamer.skill88;
matTexProj[9]=beamer.skill89;
matTexProj[10]=beamer.skill90;
matTexProj[11]=beamer.skill91;
matTexProj[12]=beamer.skill92;
matTexProj[13]=beamer.skill93;
matTexProj[14]=beamer.skill94;
matTexProj[15]=beamer.skill95;
mat_set(mtl.matrix,matWorld);
mat_multiply(mtl.matrix,matTexProj);
/*
mat_set(mtl.matrix,matView);
mat_multiply(mtl.matrix,matProj);
mat_inverse(mtl.matrix, mtl.matrix);
mat_transpose(mtl.matrix, mtl.matrix);
*/
}
/*
material rockywall
{
skin1 = projectiontex;
event = mat_projection_init_test;
flags = tangent | enable_render | translucent;
//effect = "tproj_asm.fx";
effect = "tproj_hlsl.fx";
}
*/
function light_data()
{
if event_type==event_detect && my.skill4 == 6666 //projector
{
your.material=mat_projection;
//texture projection matrix
you.skill80=my.skill80;
you.skill81=my.skill81;
you.skill82=my.skill82;
you.skill83=my.skill83;
you.skill84=my.skill84;
you.skill85=my.skill85;
you.skill86=my.skill86;
you.skill87=my.skill87;
you.skill88=my.skill88;
you.skill89=my.skill89;
you.skill90=my.skill90;
you.skill91=my.skill91;
you.skill92=my.skill92;
you.skill93=my.skill93;
you.skill94=my.skill94;
you.skill95=my.skill95;
}
}
function light_view_matrix()
{
//temporary matrix to store view matrix
//vec_set(proj_view.x,my.x);
//vec_set(proj_view.pan,my.pan);
wait(1);
mat_set(tempmatrix,matView);
my.skill80=tempmatrix[0];
my.skill81=tempmatrix[1];
my.skill82=tempmatrix[2];
my.skill83=tempmatrix[3];
my.skill84=tempmatrix[4];
my.skill85=tempmatrix[5];
my.skill86=tempmatrix[6];
my.skill87=tempmatrix[7];
my.skill88=tempmatrix[8];
my.skill89=tempmatrix[9];
my.skill90=tempmatrix[10];
my.skill91=tempmatrix[11];
my.skill92=tempmatrix[12];
my.skill93=tempmatrix[13];
my.skill94=tempmatrix[14];
my.skill95=tempmatrix[15];
}
ACTION lightobject
{
beamer=me;
MY.passable=ON;
my.invisible=off;
my.enable_detect=on;
my.event=light_data;
my.skill100=lighttimer;
lighttimer+=1;
if my.skill4==6666 //is a projector
{
//light_view_matrix();
wait(my.skill100);
while(1)
{
temp.pan = 360;
temp.tilt = 360;
temp.z = scan_radius;
//indicator=NULL;
scan_entity(my.x,temp);
light_view_matrix();
//vec_set(my.x,camera.x);
//vec_set(my.pan,camera.pan);
my.pan+=5*time;
wait(1);
}
}
}
action leinenwand
{
my.enable_scan=on;
}