shithub: 3dee

Download patch

ref: cbffc87d15cbdc9a023f851f30fa45b16e58d954
parent: f758cea345cf22b7da892f38c0b6168b712e91ba
author: rodri <rgl@antares-labs.eu>
date: Wed Apr 9 20:17:05 EDT 2025

shaders.inc: use the faster dotvec[23] versions

--- a/shaders.inc
+++ b/shaders.inc
@@ -32,13 +32,13 @@
 		ambient = mulpt3(lightc, Ka);
 		ambient = modulapt3(ambient, m.diffuse);
 
-		Kd = max(0, dotvec3(sp->v->n, lightdir));
+		Kd = max(0, _Xdotvec3(sp->v->n, lightdir));
 		diffuse = mulpt3(lightc, Kd);
 		diffuse = modulapt3(diffuse, m.diffuse);
 
 		lookdir = normvec3(subpt3(sp->su->camera->p, sp->v->p));
 		lightdir = qrotate(lightdir, sp->v->n, PI); /* reflect */
-		spec = pow(max(0, dotvec3(lookdir, lightdir)), m.shininess);
+		spec = pow(max(0, _Xdotvec3(lookdir, lightdir)), m.shininess);
 		specular = mulpt3(lightc, spec*Ks);
 		specular = modulapt3(specular, m.specular);
 
@@ -140,13 +140,13 @@
 		ambient = mulpt3(lightc, Ka);
 		ambient = modulapt3(ambient, m.diffuse);
 
-		Kd = max(0, dotvec3(n, lightdir));
+		Kd = max(0, _Xdotvec3(n, lightdir));
 		diffuse = mulpt3(lightc, Kd);
 		diffuse = modulapt3(diffuse, m.diffuse);
 
 		lookdir = normvec3(subpt3(sp->su->camera->p, pos));
 		lightdir = qrotate(lightdir, n, PI); /* reflect */
-		spec = pow(max(0, dotvec3(lookdir, lightdir)), m.shininess);
+		spec = pow(max(0, _Xdotvec3(lookdir, lightdir)), m.shininess);
 		specular = mulpt3(lightc, spec*Ks);
 		specular = modulapt3(specular, m.specular);
 
@@ -221,13 +221,13 @@
 		ambient = mulpt3(lightc, Ka);
 		ambient = modulapt3(ambient, m.diffuse);
 
-		Kd = max(0, dotvec3(n, lightdir));
+		Kd = max(0, _Xdotvec3(n, lightdir));
 		diffuse = mulpt3(lightc, Kd);
 		diffuse = modulapt3(diffuse, m.diffuse);
 
 		lookdir = normvec3(subpt3(sp->su->camera->p, pos));
 		lightdir = normvec3(addpt3(lookdir, lightdir)); /* half vector */
-		spec = pow(max(0, dotvec3(lookdir, lightdir)), m.shininess);
+		spec = pow(max(0, _Xdotvec3(lookdir, lightdir)), m.shininess);
 		specular = mulpt3(lightc, spec*Ks);
 		specular = modulapt3(specular, m.specular);
 
@@ -256,7 +256,7 @@
 	intens = 0;
 	for(l = sp->su->camera->scene->lights.next; l != &sp->su->camera->scene->lights; l = l->next){
 		lightdir = normvec3(subpt3(l->p, sp->v->p));
-		intens += max(0, dotvec3(sp->v->n, lightdir));
+		intens += max(0, _Xdotvec3(sp->v->n, lightdir));
 	}
 	sp->setattr(sp, "intensity", VANumber, &intens);
 	if(sp->v->mtl != nil)