Anti-Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.

Re: Anti-Jammer-Thread

Beitragvon Chromanoid » 22.06.2018, 22:35

Wir sind jetzt zu dritt :D
Benutzeravatar
Chromanoid
Christian Kulenkampff
Moderator
 
Beiträge: 3715
Registriert: 16.10.2002, 19:39
Wohnort: Lüneburg
Alter Benutzername: atr_23

Re: Anti-Jammer-Thread

Beitragvon joggel » 23.06.2018, 07:06

Glückwunsch :)
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1334
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: Anti-Jammer-Thread

Beitragvon Krishty » 25.07.2018, 22:13

Chrome 68 für Windows ist raus, und ist als erste Version mit Clang statt Visual C++ kompiliert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6508
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Anti-Jammer-Thread

Beitragvon Krishty » 27.07.2018, 07:30

Ich hatte vor Jahren mal diese beiden Schnappschüsse gepostet:
2013-08-04 alpha testing.png

2013-08-04 alpha to coverage.png

Der untere implementiert Alpha to Coverage durch Transparency Supersampling. Die Idee stammt aus DirectX 11 Rendering in Battlefield 3, Seite 50.

Mir ist nun klar geworden, dass der Code dort große Grütze ist:
Code: Ansicht erweitern :: Alles auswählen
static const float2 msaaOffsets[4] =
{
  float2(-0.125, -0.375), float2(0.375, -0.125),
  float2(-0.375, 0.125), float2(0.125, 0.375)
};

void psMain(
  out float4 color : SV_Target,
  out uint coverage : SV_Coverage)
{
  float2 texCoord_ddx = ddx(texCoord);
  float2 texCoord_ddy = ddy(texCoord);
  coverage = 0;

  [unroll]
  for (int i = 0; i < 4; ++i)
  {
    float2 texelOffset = msaaOffsets[i].x * texCoord_ddx;
    texelOffset += msaaOffsets[i].y * texCoord_ddy;
    float4 temp = tex.SampleLevel(sampler, texCoord + texelOffset);
    if (temp.a >= 0.5)
      coverage |= 1<<i;
    }
}
Er funktioniert nur mit 4×MSAA. Er funktioniert nur mit D3D11_STANDARD_MULTISAMPLE_PATTERN, nicht mit eigenen MSAA-Mustern oder Nvidias inter-Frame Multisampling. Große Kacke.

Jedenfalls gibt es genau dafür die Intrinsics GetRenderTargetSampleCount() und GetRenderTargetSamplePosition():
Code: Ansicht erweitern :: Alles auswählen
for (int i = 0; i < GetRenderTargetSampleCount(); ++i)
{
  float2 texelOffset = GetRenderTargetSamplePosition(i).x * texCoord_ddx;
  texelOffset += GetRenderTargetSamplePosition(i).y * texCoord_ddy;
  float4 temp = tex.SampleLevel(sampler, texCoord + texelOffset);
  if (temp.a >= 0.5)
    coverage |= 1<<i;
}
Das funktioniert auch noch mit 32× MSAA und eigenen MSAA-Mustern.

Einziger Nachteil ist die Leistung: Die Schleife kann nicht abgerollt werden und höchstwahrscheinlich werden die Intrinsics in Texture Loads umgewandelt. Ist aber heutzutage nebensächlich.

Eine sehr gute Übersicht, was man noch mit Custom Sample Patterns erreichen kann (Alpha Upscaling ohne Ränder <3) gibt es hier: Danger Zone – Stairway to (Programmable Sample Point) Heaven.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6508
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Anti-Jammer-Thread

Beitragvon Schrompf » 27.07.2018, 08:16

Nuja, seine Performance-Werte sind jedenfalls trotzdem ne deutliche Verbesserung. Interessanter Lesestoff, danke!
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3728
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: Anti-Jammer-Thread

Beitragvon Krishty » 27.07.2018, 16:05

Jetzt wo du es sagst … das ist der Gamedev.net-Moderator MJP – der mit dem Rocko-Account, der die Antwort auf jede zweite D3D-Frage hat, die ich google.

Und er hat richtig richtig krasses Zeug dort. Direkt abonniert. Allein seine Artikelserie über Lightmapping mit Spherical Harmonics/Specular/Gaussian Approximation ist ein Kracher:
Bild
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6508
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Anti-Jammer-Thread

Beitragvon mrz » 27.07.2018, 19:34

Gerade Outcast, The Legend of Kyrandia 1-3, Alone in the Dark Trilogy, UT GOTY, UT 2004 und Unreal 2 bei GOG.com für ~10 EUR gekauft.
Sind gerade alle stark reduziert, -74% und mehr.
Das schlechte Wetter kann kommen ^^
Schade finde ich nur dass man bei GOG nicht nach Rabatt sortieren kann (wie es z. B. bei Amazon möglich ist).
mrz
 
Beiträge: 37
Registriert: 07.08.2008, 14:34

Vorherige

Zurück zu Allgemeines Talk-Brett

Wer ist online?

Mitglieder in diesem Forum: Google [Bot], Yandex [Bot] und 6 Gäste