Normal offset shadows bias

This commit is contained in:
Lubos Lenco 2018-01-23 22:40:09 +01:00
parent ecc0020b92
commit 3c9e4fe487
4 changed files with 5 additions and 13 deletions

View file

@ -134,11 +134,8 @@ void main() {
#else
// TODO: merge..
// vec3 noff = n * 0.003;
if (lightShadow == 1) {
// vec4 lPos = LWVP * vec4(p + noff, 1.0);
vec4 lPos = LWVP * vec4(p, 1.0);
vec4 lPos = LWVP * vec4(p + n * shadowsBias * 10, 1.0);
if (lPos.w > 0.0) {
visibility = shadowTest(lPos.xyz / lPos.w, shadowsBias, shadowmapSize);
}

View file

@ -103,9 +103,9 @@ void main() {
if (lightShadow == 1) {
#ifdef _CSM
visibility = shadowTestCascade(eye, p, shadowsBias, shadowmapSize * vec2(shadowmapCascades, 1.0));
visibility = shadowTestCascade(eye, p + n * shadowsBias * 10, shadowsBias, shadowmapSize * vec2(shadowmapCascades, 1.0));
#else
vec4 lPos = LWVP * vec4(p, 1.0);
vec4 lPos = LWVP * vec4(p + n * shadowsBias * 100, 1.0);
if (lPos.w > 0.0) visibility = shadowTest(lPos.xyz / lPos.w, shadowsBias, shadowmapSize);
#endif
}

View file

@ -109,7 +109,6 @@ mat4 getCascadeMat(const float d, out int casi, out int casIndex) {
// ..
}
// float shadowTestCascade(float dotNL, vec3 n, const vec3 eye, const vec3 p, const float shadowsBias, const vec2 smSize) {
float shadowTestCascade(const vec3 eye, const vec3 p, const float shadowsBias, const vec2 smSize) {
const int c = shadowmapCascades;
float d = distance(eye, p);
@ -117,10 +116,6 @@ float shadowTestCascade(const vec3 eye, const vec3 p, const float shadowsBias, c
int casi;
int casIndex;
mat4 LWVP = getCascadeMat(d, casi, casIndex);
// float cosAngle = max(1.0 - dotNL, 0.0);
// vec3 noff = n * shadowsBias * cosAngle;
// vec4 lPos = LWVP * vec4(p + noff, 1.0);
vec4 lPos = LWVP * vec4(p, 1.0);

View file

@ -63,7 +63,6 @@ class SoftBody extends Trait {
if (physics == null) physics = armory.trait.physics.PhysicsWorld.active;
var softBodyHelpers = BtSoftBodyHelpers.create();
var mo = cast(object, MeshObject);
mo.frustumCulling = false;
var geom = mo.data.geom;
@ -98,9 +97,10 @@ class SoftBody extends Trait {
var vecind = fromU32(geom.indices[0]);
var numtri = Std.int(geom.indices[0].length / 3);
#if js
var softBodyHelpers = BtSoftBodyHelpers.create();
body = softBodyHelpers.CreateFromTriMesh(wrdinfo, positions, vecind, numtri);
#elseif cpp
untyped __cpp__("body = softBodyHelpers.CreateFromTriMesh(wrdinfo, positions->Pointer(), vecind->Pointer(), numtri);");
untyped __cpp__("body = btSoftBodyHelpers::CreateFromTriMesh(wrdinfo, positions->Pointer(), vecind->Pointer(), numtri);");
#end
// body.generateClusters(4);