Merge branch 'TorqueGameEngines:development' into development_gld

This commit is contained in:
GoldenThumbs 2022-08-27 00:23:36 -05:00 committed by GitHub
commit 666de4ab36
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 340 additions and 155 deletions

View file

@ -139,7 +139,7 @@ datablock MissionMarkerData(SpawnSphereMarker)
datablock MissionMarkerData(CameraBookmarkMarker)
{
category = "Misc";
shapeAsset = "Core_GameObjects:Camera";
shapeAsset = "Core_GameObjects:camera_shape";
};
datablock CameraData(Observer)

View file

@ -5,6 +5,7 @@
materialDefinitionName="CameraMat"
VersionId="1">
<Material
mapTo="CameraMat"
Name="CameraMat"
doubleSided="1"
translucent="1"

View file

@ -0,0 +1,5 @@
<ShapeAsset
AssetName="camera_shape"
fileName="@assetFile=camera.fbx"
constuctorFileName="@assetFile=camera_shape.tscript"
materialSlot0="@asset=Core_GameObjects:CameraMat"/>

View file

@ -0,0 +1,11 @@
singleton TSShapeConstructor(cameradts2)
{
baseShapeAsset = "Core_GameObjects:Camera_shape";
singleDetailSize = "0";
flipUVCoords = "0";
JoinIdenticalVerts = "0";
reverseWindingOrder = "0";
removeRedundantMats = "0";
animFPS = "2";
};

View file

@ -382,6 +382,7 @@ vec4 computeForwardProbes(Surface surface,
float probehits = 0;
//Set up our struct data
float contribution[MAX_FORWARD_PROBES];
float blendCap = 0;
for (i = 0; i < numProbes; ++i)
{
contribution[i] = 0;
@ -401,21 +402,24 @@ vec4 computeForwardProbes(Surface surface,
contribution[i] = 0.0;
blendSum += contribution[i];
blendCap = max(contribution[i],blendCap);
}
if (probehits > 1.0)//if we overlap
if (probehits > 0.0)
{
invBlendSum = (probehits - blendSum)/(probehits-1); //grab the remainder
invBlendSum = (probehits - blendSum)/probehits; //grab the remainder
for (i = 0; i < numProbes; i++)
{
blendFactor[i] = contribution[i]/blendSum; //what % total is this instance
blendFactor[i] *= blendFactor[i] / invBlendSum; //what should we add to sum to 1
blendFactor[i] *= blendFactor[i]/invBlendSum; //what should we add to sum to 1
blendFacSum += blendFactor[i]; //running tally of results
}
for (i = 0; i < numProbes; ++i)
{
contribution[i] *= blendFactor[i]/blendFacSum; //normalize
//normalize, but in the range of the highest value applied
//to preserve blend vs skylight
contribution[i] = blendFactor[i]/blendFacSum*blendCap;
}
}

View file

@ -386,6 +386,8 @@ float4 computeForwardProbes(Surface surface,
float probehits = 0;
//Set up our struct data
float contribution[MAX_FORWARD_PROBES];
float blendCap = 0;
//Process prooooobes
for (i = 0; i < numProbes; ++i)
{
@ -406,21 +408,24 @@ float4 computeForwardProbes(Surface surface,
contribution[i] = 0.0;
blendSum += contribution[i];
blendCap = max(contribution[i],blendCap);
}
if (probehits > 1.0)//if we overlap
if (probehits > 0.0)
{
invBlendSum = (probehits - blendSum)/(probehits-1); //grab the remainder
invBlendSum = (probehits - blendSum)/probehits; //grab the remainder
for (i = 0; i < numProbes; i++)
{
blendFactor[i] = contribution[i]/blendSum; //what % total is this instance
blendFactor[i] *= blendFactor[i] / invBlendSum; //what should we add to sum to 1
blendFactor[i] *= blendFactor[i]/invBlendSum; //what should we add to sum to 1
blendFacSum += blendFactor[i]; //running tally of results
}
for (i = 0; i < numProbes; ++i)
{
contribution[i] *= blendFactor[i]/blendFacSum; //normalize
{
//normalize, but in the range of the highest value applied
//to preserve blend vs skylight
contribution[i] = blendFactor[i]/blendFacSum*blendCap;
}
}

View file

@ -78,6 +78,7 @@ void main()
//Set up our struct data
float contribution[MAX_PROBES];
float blendCap = 0;
if (alpha > 0)
{
//Process prooooobes
@ -101,21 +102,24 @@ void main()
contribution[i] = 0;
blendSum += contribution[i];
blendCap = max(contribution[i],blendCap);
}
if (probehits > 1.0)//if we overlap
if (probehits > 0.0)
{
invBlendSum = (probehits - blendSum)/(probehits-1); //grab the remainder
invBlendSum = (probehits - blendSum)/probehits; //grab the remainder
for (i = 0; i < numProbes; i++)
{
blendFactor[i] = contribution[i]/blendSum; //what % total is this instance
blendFactor[i] *= blendFactor[i] / invBlendSum; //what should we add to sum to 1
blendFactor[i] *= blendFactor[i]/invBlendSum; //what should we add to sum to 1
blendFacSum += blendFactor[i]; //running tally of results
}
for (i = 0; i < numProbes; ++i)
{
contribution[i] *= blendFactor[i]/blendFacSum; //normalize
//normalize, but in the range of the highest value applied
//to preserve blend vs skylight
contribution[i] = blendFactor[i]/blendFacSum*blendCap;
}
}

View file

@ -69,7 +69,8 @@ float4 main(PFXVertToPix IN) : SV_TARGET
float probehits = 0;
//Set up our struct data
float contribution[MAX_PROBES];
float blendCap = 0;
if (alpha > 0)
{
//Process prooooobes
@ -93,21 +94,23 @@ float4 main(PFXVertToPix IN) : SV_TARGET
contribution[i] = 0.0;
blendSum += contribution[i];
blendCap = max(contribution[i],blendCap);
}
if (probehits > 1.0)//if we overlap
if (probehits > 0.0)
{
invBlendSum = (probehits - blendSum)/(probehits-1); //grab the remainder
invBlendSum = (probehits - blendSum)/probehits; //grab the remainder
for (i = 0; i < numProbes; i++)
{
blendFactor[i] = contribution[i]/blendSum; //what % total is this instance
blendFactor[i] *= blendFactor[i] / invBlendSum; //what should we add to sum to 1
blendFactor[i] *= blendFactor[i]/invBlendSum; //what should we add to sum to 1
blendFacSum += blendFactor[i]; //running tally of results
}
for (i = 0; i < numProbes; ++i)
{
contribution[i] *= blendFactor[i]/blendFacSum; //normalize
//normalize, but in the range of the highest value applied
//to preserve blend vs skylight
contribution[i] = blendFactor[i]/blendFacSum*blendCap;
}
}