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.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von dot »

kaiserludi hat geschrieben:
eXile hat geschrieben:Lüge, Lüge, alles Lüge! Wir sind das ganze Leben lang angelogen worden.

GIFs unterstützen sehr wohl mehr als 256 Farben.
Jetzt werden sie dich jagen, da du die Matrix durchschaut hast!
"As you can see, we've had our eye on you for..some time now..." 8-)
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Anti-Jammer-Thread

Beitrag von antisteo »

Konstruktive Betatester, die uns Bugreports schreiben, ein motiviertes Team, das diese Bugs behebt und ein Projektleiter, der über seinen Schatten gesprungen ist und die Grafikengine noch mal angepackt hat.
(einzige Schattenseite: Ich arbeite Vollzeit an meinem Hobby-Projekt in den Ferien)
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Krishty
Establishment
Beiträge: 8250
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Gamma-korrigiertes Dithering von 24-Bit-Texturen auf 16 Bits, fick ja! Wer braucht schon 32 Bits … Als Nächstes: Gamma-korrigierte Mip-Map-Erzeugung mit Lanczos und Berücksichtigung des Texturadressierungsmodus. Und sobald ich das alles verstanden und verifiziert habe, entsprechende BC1 (bzw. DXT1)-Kompression.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Anti-Jammer-Thread

Beitrag von eXile »

Krishty hat geschrieben:Gamma-korrigiertes Dithering von 24-Bit-Texturen auf 16 Bits, fick ja! Wer braucht schon 32 Bits …
Wird das irgendein komisches R5G6B5-Format wie in den guten alten Tagen?
Krishty hat geschrieben:Als Nächstes: Gamma-korrigierte Mip-Map-Erzeugung mit Lanczos und Berücksichtigung des Texturadressierungsmodus.
Lanczos bringt am meisten beim Upsampling; beim Downsampling würde ich ihn nur einsetzen, wenn du tatsächlich Aliasing-Artefakte kriegst.
Krishty hat geschrieben:Und sobald ich das alles verstanden und verifiziert habe, entsprechende BC1 (bzw. DXT1)-Kompression.
Jo, mach das. :)
Benutzeravatar
Krishty
Establishment
Beiträge: 8250
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

eXile hat geschrieben:
Krishty hat geschrieben:Gamma-korrigiertes Dithering von 24-Bit-Texturen auf 16 Bits, fick ja! Wer braucht schon 32 Bits …
Wird das irgendein komisches R5G6B5-Format wie in den guten alten Tagen?
Sogar ganz genau das (DXGI_FORMAT_B5G6R5_UNORM).
eXile hat geschrieben:
Krishty hat geschrieben:Als Nächstes: Gamma-korrigierte Mip-Map-Erzeugung mit Lanczos und Berücksichtigung des Texturadressierungsmodus.
Lanczos bringt am meisten beim Upsampling; beim Downsampling würde ich ihn nur einsetzen, wenn du tatsächlich Aliasing-Artefakte kriegst.
Was würdest du mir stattdessen empfehlen?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8250
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Waaaaaaaaaaaartet. Warum gibt es von dem Format keine sRGB-Version? Will mich Microsoft total verarschen?!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Jörg »

Aus der gles3 spec isses auch rausgeflogen...wahrscheinlich hat ein groesserer Hersteller Problemchen damit?
Gerade fuer geringe Bittiefen haette ich es als vorteilhaft gesehen.
Benutzeravatar
Krishty
Establishment
Beiträge: 8250
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Steht irgendwo, ob bei DXT die sRGB-linear-Konvertierung vor oder nach der Endpunkt-Interpolation stattzufinden hat? Falls davor, müssen die Transistoren eh dasein.

Es gibt da sowieso einige Kuriositäten:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd607323 hat geschrieben:UNORM -> FLOAT
The starting n-bit value is converted to float (0.0f, 1.0f, 2.0f, etc.) and then divided by (2^n-1).
SRGB -> FLOAT
• Take the starting n-bit value, convert it a float (0.0f, 1.0f, 2.0f, etc.); call this c.
• c = c * (1.0f / (2^n-1))
WTF?!
Zuletzt geändert von Krishty am 31.08.2012, 18:47, insgesamt 1-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von dot »

Afaik gab es zumindest früher mal Hardware, die die sRGB -> linear Konvertierung erst nach dem Texture Filtering gemacht hat, falls du das meinst. Dürfte zu D3D9 Zeiten wohl sogar ziemlich üblich gewesen sein. Wie es da heute aussieht, weiß ich nicht genau, NVIDIA macht es glaub ich seit der GeForce 8 richtig...
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Anti-Jammer-Thread

Beitrag von antisteo »

Seit langer Zeit wieder mal parallelen Code geschrieben.
Irgendwann muss die Engine ja auch mit größeren Datenmengen klarkommen.
(Mein Threadmodell erinnert ein bisschen an ein NodeJS mit Multithreading... alles möglichst asynchron und Daten sind da, wenn sie da sind; keine (wartenden) Locks)
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Anti-Jammer-Thread

Beitrag von antisteo »

Juhuu,

nachdem ein paar Race Conditions gefixt sind und keine OpenGL-Befehle wie glDeleteBuffer mehr in den Nebenthreads ausgeführt werden, läuft die Engine jetzt um Größenordnungen flüssiger.
Freepascal hat neben Prozedurvariablen (procedure(...), function(...):typ) auch schon fast an Closures erinnernde "procedure of object", mit denen sich prima komfortabel arbeiten lässt.

Statt

Code: Alles auswählen

MyFunction;
schreibt man jetzt

Code: Alles auswählen

threads.dispatch(@MyFunction);
und schon wird die Funktion im Kontext des aktuellen Objekts asynchron in einem anderen Thread ausgeführt.
Sollte das Objekt befreit werden, will man natürlich alle auf dieses Objekt bezogenen asynchronen Aufrufe abwürgen oder fertig rechnen lassen. Dazu gibts die Funktion waitfor(object, kickout).

Als einzige Sache habe ich den Marching Cubes in den Threadpool gesteckt und schon rechnen 2 Threads mit je 25% an der Aufgabe mit. Framerategewinn: 50-200%. Jetzt gibt es flüssig fließendes Wasser :)
Nächste Aufgabe: Heightmap->Voxelmap-Konverter parallelisieren. Das dürfte die Ladezeiten noch mal drastisch senken.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4859
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Wie man eine Funktion definiert, die ein Array von Elementen per Referenz zurück gibt.

Code: Alles auswählen

   
/// Gibt die Grenzpunkte des Sichtvolumens zurück. Funky, hm? Hab ich auch erst googeln müssen.
const TVektor (&GetGrenzPunkte() const)[AnzGrenzPunkte] { return mGrenzPunkte; }
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Anti-Jammer-Thread

Beitrag von eXile »

Aber hatten wir das nicht gerade schon? – Bloß um zu vermeiden, dass du gleich, genauso wie ich, von CodingCat wegen Nichtbenutzung von typedef runtergeputzt wirst. :)
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

Runtergeputzt?! ;) typedef ist natürlich in Bezug auf Lesbarkeit die zu bevorzugende Alternative, je nach Kontext jedoch ggf. nicht ohne Weiteres möglich, z.B. wenn der Array-Typ unmittelbar von Template-Parametern der gerade definierten Funktion abhängt.

Code: Alles auswählen

typedef TVektor GrenzPunktArray[AnzGrenzPunkte];
const GrenzPunktArray& GetGrenzPunkte() const { return mGrenzPunkte; }
Zum Glück funktioniert das so ganz intuitiv. Ich war eben selbst überrascht, dass sich die const-ness auf die Array-Elemente überträgt, weil die volle Schreibweise TVektor (const &GrenzPunktArray)[AnzGrenzPunkte] meines Wissens nach eigentlich ein Syntaxfehler ist, richtig ist nur const TVektor (&GrenzPunktArray)[AnzGrenzPunkte]. Wieder ein Punkt, in dem sich der Array-Typkonstruktor vom Zeiger-Typkonstruktor unterscheidet.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Schrompf
Moderator
Beiträge: 4859
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Stimmt, Danke für die Hinweise. Hab's in einen typedef verpackt, liest sich jetzt viel besser.

Nebenbei: es hat mich verwundert, dass die Template Argument Deduction oder wie sie heißt dann die Größe des Arrays ableiten kann. Der Compiler ist doch schlauer, als ich manchmal vermute.

Code: Alles auswählen

/// Prüft das gegebene Punkte-Array
template <size_t Anzahl>
bool IstPunkteMengeDrin( const TVektor (&pPunkte)[Anzahl]) const
{
  for( size_t a = 0; a < AnzEbenen; ++a )
  {
    size_t anzahlAussen = 0;
    for( size_t b = 0; b < Anzahl; ++b )
      anzahlAussen += mEbenen[a].TestePunkt( pPunkte[b]) ? 1 : 0;

    if( anzahlAussen == Anzahl )
      return false;
  }
  return true;
}
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4859
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Und noch was für den Anti-Jammer-Thread: Schrompf fährt die nächsten anderthalb Wochen ans Meeeeeeer. Kein Internet, kein Rechner, dafür Wellen, Strand, Freundin und ein paar dicke Bücher.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
joggel

Re: Anti-Jammer-Thread

Beitrag von joggel »

[Edit wegen dummes Bild...]
Glückwunsch! Schöne Erholung :)
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: Anti-Jammer-Thread

Beitrag von BeRsErKeR »

Schrompf hat geschrieben:Und noch was für den Anti-Jammer-Thread: Schrompf fährt die nächsten anderthalb Wochen ans Meeeeeeer. Kein Internet, kein Rechner, dafür Wellen, Strand, Freundin und ein paar dicke Bücher.
Das arktische Meer oder was warmes? :)
Ohne Input kein Output.
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Anti-Jammer-Thread

Beitrag von Matthias Gubisch »

Die Punkte Strand und Freundin lassen denk ich auf was warmes schließen :P
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Aramis »

Na dann mal frohe Erholung :-)
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

There is a non-zero probability that some sequentially generated rays will receive the same hash value.
Für diesen Satz müsste ich nicht mal das entsprechende Paper referenzieren.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von kimmi »

Schrompf hat geschrieben:Und noch was für den Anti-Jammer-Thread: Schrompf fährt die nächsten anderthalb Wochen ans Meeeeeeer. Kein Internet, kein Rechner, dafür Wellen, Strand, Freundin und ein paar dicke Bücher.
Gute Erholung!

Gruß Kimmi
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Anti-Jammer-Thread

Beitrag von Chromanoid »

CodingCat hat geschrieben:
There is a non-zero probability that some sequentially generated rays will receive the same hash value.
Für diesen Satz müsste ich nicht mal das entsprechende Paper referenzieren.
Im Bereich "räumliches" Hashing gibt es afaik einige Versuche "perfekte" Hashmechanismen zu nutzen (wenn man die Daten schon vorher kennt), vielleicht daher die Erläuterung. Ich bin vor Längerem mal über dieses Paper gestolpert http://research.microsoft.com/en-us/um/ ... cthash.pdf
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

In diesem Fall ging es einfach um das Zuweisen von Morton Codes im 5D Strahlenraum, um kohärente Strahlen anhand gleicher/ähnlicher Hashes identifizieren zu können. Was sie damit sagen wollten war eigentlich nur, dass direkt hintereinander erzeugte Strahlen oftmals auch Kohärenz aufweisen. Oftmals aber auch nicht, je nachdem, was für Strahlen man denn erzeugt.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Anti-Jammer-Thread

Beitrag von Chromanoid »

Ah verstehe :), also nicht den Mathekram ;), aber dass der Satz doch schon recht überflüssig ist ^^
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

Previous work is previous, future work is next.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

Und nochmal exakt 100 ms weniger PLUS, viel wichtiger, Bounded Memory. Inspiriert von Bikker12. Wenn man das jetzt noch mit kompakten Strahlen und evtl. Bounded Queues mit DX 11.1 (oder DX 12? :-/) optimiert ...

Und wieder alles Benchmarken. Shit shit shit, wieso fällt mir das Beste immer zum Schluss ein ... obendrein dreht das das Ergebnis der ganzen Arbeit mal eben um 180° ...
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8250
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Artificial Mind auf Seite 37 hat geschrieben:
Krishty hat geschrieben:
Artificial Mind hat geschrieben:
BeRsErKeR hat geschrieben:Farben sind eh nur Projektionen deines Gehirns. Es steht nicht mal fest ob wir die gleiche Farbe (absolut gesehen) "sehen" wenn wir die gleiche Sache "betrachten". ;) Sie trägt halt nur den gleichen Namen.
Eigentlich steht das relativ gut fest. Die Zapfen in deinem Auge haben relativ klar definierte Frequenzspektren, auf die sie reagieren und der Aufbau des Auges ist bei den meisten Menschen gleich.
Was das Gehirn dann aus diesen RGB-Signalen macht, ist ihm natürlich freigestellt, aber ich finde "absolut gesehen" sehen wir gleich.
Ich habe letztens Joachim Bublaths Die neue Welt der Gene gelesen; und da stand drin, dass das Rotempfinden bei 25 % der männlichen Bevölkerung genetisch bedingt abweichen würde. Ich habe das Buch nicht hier; ich werde aber bis nächstes Wochenende versuchen, die Stelle wiederzufinden. Genau, wie das Geruchsempfinden für einen bestimmten Harnstoff in der Bevölkerung 50-50 verteilt ist, falls ich mich recht an mein Biologiebuch aus der 7. Klasse erinnere.

(Streng genommen gilt bei einem 3:1-Verhältnis immernoch bei den meisten gleich, so einfach sollte man es sich dann aber doch nicht machen.)
Ok das würde mich echt interessieren wenn du das findest.
Aber selbst wenn es bei 25% anders ist, dann gibt es eben zwei Genkonfigurationen, die das Rot-Empfinden steuern, aber es ist nicht so, dass es bei jedem irgendwie unterschiedlich sein könnte/ist.
Besser spät als nie:
http://www.deutsches-museum.de/fileadmin/Content/data/Insel/Information/KT/heftarchiv/1995/19-3-41.pdf hat geschrieben:Sorgfältige mikrospektrophotometrische Untersuchungen hatten Augenärzte in den 80er Jahren nämlich zu der Vermutung kommen lassen, daß es bei ihren Patienten nicht ein, sondern zwei langwellige Rezeptoren gab, die unterschiedliche Empfindlichkeiten für die Farbe Rot bewirkten. Und in der Tat:

Als die Genetiker nachforschten, ob diesem zweiten langwelligen Rezeptor auch ein zweites langwelliges Gen zugeordnet werden kann, wurden sie rasch fündig. Es stellte sich heraus, daß der entscheidende Unterschied zwischen den Genen und den dazugehörigen Rezeptoren auf einen einzigen Baustein zurückzuführen ist, und zwar auf den Baustein Nr. 180 im Rezeptor.

62 Prozent der untersuchten Patienten beziehungsweise Probanden verfügen hier über ein Molekül, das die Biochemiker Serin nennen, und 38 Prozent tragen das Molekül Alanin an dieser Stelle. Wer ein langwelliges Gen besitzt, das an der 180. Stelle des langwelligen Rezeptors Serin (und nicht Alanin) aufweist, zeigt eine höhere Empfindlichkeit für die Farbe, die gewöhnlich als Rot gekennzeichnet wird.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Andre
Establishment
Beiträge: 186
Registriert: 21.12.2011, 20:33

Re: Anti-Jammer-Thread

Beitrag von Andre »

Black Mesa wurde endlich released!

http://release.blackmesasource.com/

Half-life <3
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

Bachelorarbeit gerade noch fertig bekommen. Jetzt darf ich wieder implementieren. ;)

(Ich weiß noch nicht, wie es mit Veröffentlichen aussieht, bei Interesse einfach PM ...)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Antworten