41 lines
1.1 KiB
Plaintext
41 lines
1.1 KiB
Plaintext
|
|
//
|
|
|
|
shader
|
|
standard_shader(
|
|
point a_position = vector(0, 0, 0) [[ string attribute="POSITION"]],
|
|
vector a_normal = vector(0, 1, 0) [[ string attribute="NORMAL"]],
|
|
float a_uv[2] = {0,0} [[ string attribute="TEXCOORD_0"]],
|
|
|
|
output point v_position = point(0, 0, 0) [[ string attribute="POSITION"]],
|
|
output vector v_normal = vector(0,1,0) [[ string attribute="NORMAL"]],
|
|
output float v_uv[2] = {0, 0} [[ string attribute="TEXCOORD_0"]],
|
|
|
|
output vector v_toCamera = vector(0, 0, 0),
|
|
output vector v_toLight = vector(0, 0, 0)
|
|
)
|
|
{
|
|
matrix mat_world;
|
|
getattribute("self:world_transform", mat_world);
|
|
|
|
//matrix mat_normal;
|
|
//getattribute("self:normal_transform", mat_normal);
|
|
|
|
matrix mat_camera_view_proj;
|
|
getattribute("camera:view_proj", mat_camera_view_proj);
|
|
|
|
point camera_position;
|
|
getattribute("camera:eye_pos", camera_position);
|
|
|
|
point light0_position;
|
|
getattribute("light0:position", light0_position);
|
|
|
|
|
|
v_position = transform(mat_camera_view_proj, transform(mat_world, a_position));
|
|
v_normal = a_normal;
|
|
v_uv = a_uv;
|
|
|
|
v_toCamera = normalize(camera_position-v_position);
|
|
v_toLight = normalize(light0_position-v_position);
|
|
}
|