better shaders a bit

This commit is contained in:
RandomityGuy 2023-07-02 00:35:15 +05:30
parent 579c5ffa27
commit c404df39ef
10 changed files with 53 additions and 50 deletions

View file

@ -933,15 +933,15 @@ class DifBuilder {
uvs.push(uv3);
uvs.push(uv2);
uvs.push(uv1);
t.push(new Point(tri.t3.x, tri.t3.y, tri.t3.z));
t.push(new Point(tri.t2.x, tri.t2.y, tri.t2.z));
t.push(new Point(tri.t1.x, tri.t1.y, tri.t1.z));
b.push(new Point(tri.b3.x, tri.b3.y, tri.b3.z));
b.push(new Point(tri.b2.x, tri.b2.y, tri.b2.z));
b.push(new Point(tri.b1.x, tri.b1.y, tri.b1.z));
n.push(new Point(tri.n3.x, tri.n3.y, tri.n3.z));
n.push(new Point(tri.n2.x, tri.n2.y, tri.n2.z));
n.push(new Point(tri.n1.x, tri.n1.y, tri.n1.z));
t.push(new Point(-tri.t3.x, tri.t3.y, tri.t3.z));
t.push(new Point(-tri.t2.x, tri.t2.y, tri.t2.z));
t.push(new Point(-tri.t1.x, tri.t1.y, tri.t1.z));
b.push(new Point(-tri.b3.x, tri.b3.y, tri.b3.z));
b.push(new Point(-tri.b2.x, tri.b2.y, tri.b2.z));
b.push(new Point(-tri.b1.x, tri.b1.y, tri.b1.z));
n.push(new Point(-tri.n3.x, tri.n3.y, tri.n3.z));
n.push(new Point(-tri.n2.x, tri.n2.y, tri.n2.z));
n.push(new Point(-tri.n1.x, tri.n1.y, tri.n1.z));
}
var prim = new Polygon(points);
prim.uvs = uvs;

View file

@ -826,12 +826,15 @@ class DtsObject extends GameObject {
n2.scale(-1);
}
// t0.x *= -1;
// t1.x *= -1;
// t2.x *= -1;
// b0.x *= -1;
// b1.x *= -1;
// b2.x *= -1;
t0.x *= -1;
t1.x *= -1;
t2.x *= -1;
b0.x *= -1;
b1.x *= -1;
b2.x *= -1;
n0.x *= -1;
n1.x *= -1;
n2.x *= -1;
return [
{

View file

@ -45,28 +45,28 @@ class DefaultCubemapMaterial extends hxsl.Shader {
}
function vertex() {
var eyePos = camera.position * mat3x4(global.modelViewInverse);
eyePos.x *= -1;
// eyePos.x *= -1;
// eyePos /= vec3(global.modelViewInverse[0].x, global.modelViewInverse[1].y, global.modelViewInverse[2].z);
var cubeTrans = mat3(global.modelView);
var cubeEyePos = camera.position - global.modelView[3].xyz;
cubeEyePos.x *= -1;
// cubeEyePos.x *= -1;
calculatedUV = input.uv;
var objToTangentSpace = mat3(input.t, input.b, input.n);
outLightVec = vec4(0);
outNormal = input.normal;
outNormal.x *= -1;
// outNormal.x *= -1;
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
outLightVec.xyz = -inLightVec * objToTangentSpace;
// var cubeVertPos = input.position * cubeTrans;
// var cubeNormal = input.normal * cubeTrans;
// var eyeToVert = (cubeVertPos - cubeEyePos).normalize();
// outReflectVec = reflect(eyeToVert, cubeNormal);
var p = input.position;
p.x *= -1;
// p.x *= -1;
outPos = (p / 100.0) * objToTangentSpace;
outEyePos = (eyePos / 100.0) * objToTangentSpace;
outLightVec.w = step(-0.5, dot(outNormal, -inLightVec));

View file

@ -45,11 +45,11 @@ class DefaultCubemapNormalMaterial extends hxsl.Shader {
calculatedUV = input.uv;
outLightVec = vec4(0);
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
var eyePos = camera.position * mat3x4(global.modelViewInverse);
eyePos.x *= -1;
// eyePos.x *= -1;
outNormal = input.normal;
outNormal.x *= -1;
// outNormal.x *= -1;
// eyePos /= vec3(global.modelViewInverse[0].x, global.modelViewInverse[1].y, global.modelViewInverse[2].z);
outLightVec.xyz = -inLightVec;
outLightVec.w = step(-0.5, dot(outNormal, -inLightVec));
@ -60,15 +60,15 @@ class DefaultCubemapNormalMaterial extends hxsl.Shader {
var cubeTrans = mat3(global.modelView);
var cubeEyePos = camera.position - global.modelView[3].xyz;
cubeEyePos.x *= -1;
// cubeEyePos.x *= -1;
outPos = input.position;
outPos.x *= -1;
// outPos.x *= -1;
var cubeVertPos = input.position * cubeTrans;
cubeVertPos.x *= -1;
// cubeVertPos.x *= -1;
var cubeNormal = (input.normal * cubeTrans).normalize();
cubeNormal.x *= -1;
// cubeNormal.x *= -1;
var eyeToVert = cubeVertPos - cubeEyePos;
outReflectVec = reflect(eyeToVert, cubeNormal);
}

View file

@ -39,9 +39,9 @@ class DefaultCubemapNormalNoSpecMaterial extends hxsl.Shader {
function vertex() {
calculatedUV = input.uv;
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
var pN = input.normal;
pN.x *= -1;
// pN.x *= -1;
outShading = vec4(saturate(dot(-inLightVec, pN)));
outShading.w = 1;
outShading *= vec4(1.08, 1.03, 0.90, 1);
@ -49,10 +49,10 @@ class DefaultCubemapNormalNoSpecMaterial extends hxsl.Shader {
// eyePos /= vec3(global.modelViewInverse[0].x, global.modelViewInverse[1].y, global.modelViewInverse[2].z);
var cubeTrans = mat3(global.modelView);
var cubeEyePos = camera.position - global.modelView[3].xyz;
cubeEyePos.x *= -1;
// cubeEyePos.x *= -1;
var p = input.position;
p.x *= -1;
// p.x *= -1;
var cubeVertPos = p * cubeTrans;
var cubeNormal = (pN * cubeTrans).normalize();

View file

@ -29,9 +29,9 @@ class DefaultDiffuseMaterial extends hxsl.Shader {
calculatedUV = input.uv;
var objToTangentSpace = mat3(input.t, input.b, input.n);
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
var n = input.normal;
n.x *= -1;
// n.x *= -1;
outShading = vec4(saturate(dot(-inLightVec, n)));
outShading.w = 1;
outShading *= vec4(1.08, 1.03, 0.90, 1);

View file

@ -47,17 +47,17 @@ class DefaultMaterial extends hxsl.Shader {
var objToTangentSpace = mat3(input.t, input.b, input.n);
outLightVec = vec4(0);
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
var eyePos = camera.position * mat3x4(global.modelViewInverse);
eyePos.x *= -1;
// eyePos.x *= -1;
// eyePos /= vec3(global.modelViewInverse[0].x, global.modelViewInverse[1].y, global.modelViewInverse[2].z);
outLightVec.xyz = -inLightVec * objToTangentSpace;
var p = input.position;
p.x *= -1;
// p.x *= -1;
outPos = (p / 100.0) * objToTangentSpace;
outEyePos = (eyePos / 100.0) * objToTangentSpace;
var pN = input.normal;
pN.x *= -1;
// pN.x *= -1;
outLightVec.w = isHalfTile ? step(0, dot(pN, -inLightVec)) : step(-0.5, dot(pN, -inLightVec));
}
function fragment() {

View file

@ -43,11 +43,11 @@ class DefaultNormalMaterial extends hxsl.Shader {
calculatedUV = input.uv;
outLightVec = vec4(0);
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
var eyePos = camera.position * mat3x4(global.modelViewInverse);
eyePos.x *= -1;
// eyePos.x *= -1;
outNormal = input.normal;
outNormal.x *= -1;
// outNormal.x *= -1;
// eyePos /= vec3(global.modelViewInverse[0].x, global.modelViewInverse[1].y, global.modelViewInverse[2].z);
outLightVec.xyz = -inLightVec;
outLightVec.w = step(-0.5, dot(outNormal, -inLightVec));
@ -56,7 +56,7 @@ class DefaultNormalMaterial extends hxsl.Shader {
outShading.w = 1;
outShading *= vec4(1.08, 1.03, 0.90, 1);
outPos = input.position;
outPos.x *= -1;
// outPos.x *= -1;
}
function fragment() {
// Diffuse part

View file

@ -43,17 +43,17 @@ class NoiseTileMaterial extends hxsl.Shader {
var objToTangentSpace = mat3(input.t, input.b, input.n);
outLightVec = vec4(0);
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
var eyePos = camera.position * mat3x4(global.modelViewInverse);
eyePos.x *= -1;
// eyePos.x *= -1;
// eyePos /= vec3(global.modelViewInverse[0].x, global.modelViewInverse[1].y, global.modelViewInverse[2].z);
outLightVec.xyz = -inLightVec * objToTangentSpace;
var p = input.position;
p.x *= -1;
// p.x *= -1;
outPos = (p / 100.0) * objToTangentSpace;
outEyePos = (eyePos / 100.0) * objToTangentSpace;
var n = input.normal;
n.x *= -1;
// n.x *= -1;
outLightVec.w = step(0, dot(n, -inLightVec));
}
function fragment() {

View file

@ -42,20 +42,20 @@ class RefractMaterial extends hxsl.Shader {
}
function vertex() {
calculatedUV = input.uv;
var objToTangentSpace = transposeMat3(mat3(input.t, input.b, input.n));
var objToTangentSpace = mat3(input.t, input.b, input.n);
outLightVec = vec4(0);
var inLightVec = vec3(-0.5732, 0.27536, -0.77176) * transposeMat3(mat3(global.modelView));
inLightVec.x *= -1;
// inLightVec.x *= -1;
var eyePos = camera.position * mat3x4(global.modelViewInverse);
eyePos.x *= -1;
// eyePos.x *= -1;
// eyePos /= vec3(global.modelViewInverse[0].x, global.modelViewInverse[1].y, global.modelViewInverse[2].z);
outLightVec.xyz = -inLightVec * objToTangentSpace;
var p = input.position;
p.x *= -1;
// p.x *= -1;
outPos = (p / 100.0) * objToTangentSpace;
outEyePos = (eyePos / 100.0) * objToTangentSpace;
var n = input.normal;
n.x *= -1;
// n.x *= -1;
outLightVec.w = step(-0.5, dot(n, -inLightVec));
}
function fragment() {