mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 14:03:55 +02:00
Adding the velocity factor
This commit is contained in:
parent
4e574852cf
commit
cbf5c25f35
4 changed files with 26 additions and 14 deletions
|
@ -241,6 +241,7 @@ const gpu::PipelinePointer& Antialiasing::getBlendPipeline() {
|
|||
void Antialiasing::configure(const Config& config) {
|
||||
_params.edit().debugX = config.debugX;
|
||||
_params.edit().blend = config.blend;
|
||||
_params.edit().velocityScale = config.velocityScale;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -22,12 +22,14 @@ class AntialiasingConfig : public render::Job::Config {
|
|||
Q_OBJECT
|
||||
Q_PROPERTY(float debugX MEMBER debugX NOTIFY dirty)
|
||||
Q_PROPERTY(float blend MEMBER blend NOTIFY dirty)
|
||||
Q_PROPERTY(float velocityScale MEMBER velocityScale NOTIFY dirty)
|
||||
|
||||
public:
|
||||
AntialiasingConfig() : render::Job::Config(true) {}
|
||||
|
||||
float debugX{ 1.0f };
|
||||
float blend { 0.1f };
|
||||
float debugX{ 0.0f };
|
||||
float blend{ 0.1f };
|
||||
float velocityScale{ 1.0f };
|
||||
|
||||
signals:
|
||||
void dirty();
|
||||
|
@ -35,9 +37,9 @@ signals:
|
|||
|
||||
|
||||
struct TAAParams {
|
||||
float debugX{ 1.0f };
|
||||
float debugX{ 0.0f };
|
||||
float blend{ 0.1f };
|
||||
float spareA;
|
||||
float velocityScale{ 1.0f };
|
||||
float spareB;
|
||||
|
||||
};
|
||||
|
|
|
@ -29,7 +29,7 @@ struct TAAParams
|
|||
{
|
||||
float debugX;
|
||||
float blend;
|
||||
float spareA;
|
||||
float motionScale;
|
||||
float spareB;
|
||||
};
|
||||
|
||||
|
@ -43,21 +43,22 @@ void main() {
|
|||
vec2 rawVelocity = texture(velocityMap, varTexCoord0).xy;
|
||||
|
||||
vec2 velocity = rawVelocity;
|
||||
vec2 prevTexCoord = varTexCoord0 - velocity;
|
||||
vec2 prevTexCoord = varTexCoord0 - params.motionScale * velocity;
|
||||
|
||||
prevTexCoord = clamp(prevTexCoord, vec2(0.1), vec2(0.9));
|
||||
vec3 prevColor = texture(historyMap, prevTexCoord).xyz;
|
||||
|
||||
vec3 newColor = mix(currentColor, prevColor, params.blend);
|
||||
vec3 newColor = mix(prevColor, currentColor, params.blend);
|
||||
|
||||
outFragColor = vec4(newColor, 1.0);
|
||||
// outFragColor = vec4(varTexCoord0, 0.0, 1.0);
|
||||
|
||||
if (abs(varTexCoord0.x - params.debugX) < (1.0 / 2048.0)) {
|
||||
outFragColor.rgb = vec3(1.0, 1.0, 1.0);
|
||||
outFragColor.rgb = vec3(1.0, 1.0, 0.0);
|
||||
}
|
||||
if (varTexCoord0.x < params.debugX) {
|
||||
outFragColor = vec4(prevColor, 1.0);
|
||||
/*if (dot(velocity, velocity) > 0.0001) {
|
||||
outFragColor = vec4(rawVelocity, 0.0, 1.0);
|
||||
}*/
|
||||
outFragColor = vec4(currentColor, 1.0);
|
||||
if (dot(velocity, velocity) > 0.0001) {
|
||||
outFragColor = vec4(0.0, 1.0, 1.0, 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,13 +28,21 @@ Column {
|
|||
min: 0.0
|
||||
}
|
||||
ConfigSlider {
|
||||
label: qsTr("History blend")
|
||||
label: qsTr("Source blend")
|
||||
integral: false
|
||||
config: Render.getConfig("RenderMainView.Antialiasing")
|
||||
property: "blend"
|
||||
max: 1.0
|
||||
min: 0.0
|
||||
}
|
||||
ConfigSlider {
|
||||
label: qsTr("Velocity scale")
|
||||
integral: false
|
||||
config: Render.getConfig("RenderMainView.Antialiasing")
|
||||
property: "velocityScale"
|
||||
max: 1.0
|
||||
min: -1.0
|
||||
}
|
||||
CheckBox {
|
||||
text: "Freeze "
|
||||
checked: Render.getConfig("RenderMainView.JitterCam")["freeze"]
|
||||
|
|
Loading…
Reference in a new issue