Seite 6 von 71

Re: Anti-Jammer-Thread

Verfasst: 21.07.2011, 17:16
von eXile
Ich habe außerdem gerade festgestellt, warum das im VLC ruckelt. Die Hardware hier kann kein VP5 – und die einzige Graphikkarte von Nvidia, welche 4k-Videos hardwarebeschleunigt abspielen kann, ist die GT 520. Das ist kein Witz!

Un-frickin'-believable.

Nachtrag: Die aktuelle Beta-Version von MPCHC ist schnell genug, um das auf der CPU zu dekodieren. Wow.

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 14:45
von joggel
Eigentlich is nichts so interessant wie meine eigenen Fehler.
Umso befreiender ist es, wenn man sich mal einer Sache wieder widmet, die man vor einer Weile resigniert sein lassen hat, weil man einfach nicht mehr weiterkam:

Code: Alles auswählen

void RenderDingens::draw(const Pointf& mitte, const Color& col)
{
	Draw::Punkt(mitte.y, mitte.x, col);
}
Zu mal ich ja dort immer nur kurz hingeschaut hatte!
Und was soll denn schon an dieser simplen Zeile falsch sein.... :D

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 14:58
von Krishty
Was ist denn Draw?
eXile hat geschrieben:Nachtrag: Die aktuelle Beta-Version von MPCHC ist schnell genug, um das auf der CPU zu dekodieren. Wow.
Ja; ich benutze VLC nur für Formate, die der MPC nicht dekodiert kriegt (ISO und so) … VLC ist völlig überladen und sein einziger Vorteil ist imo, dass man viel Exotisches öffnen kann ohne erst Codecs installieren zu müssen; der MPC ist für meinen Geschmack auch noch zu schwer aber mit ihm habe ich schon auf absoluten Low-End-Systemen Full-HD zum Laufen gekriegt. (Außerdem kann man auf dem Numpad das Seitenverhältnis in Echtzeit feinjustieren – ich bin also doch nicht der einzige Mensch auf der Welt, der auf minimale Abweichungen im Seitenverhältnis empfindlich panisch reagiert ~<3)

Liegt vielleicht daran, dass er die auf dem System vorhandenen ffdshow-Tryouts nutzt, während VLC seine eigenen Codecs mitbringt (welche auch immer das sein mögen). Oder daran, dass die bei VLC zu sehr damit beschäftigt sind, Sicherheitslücken zu stopfen um zur Optimierung zu kommen.

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 15:07
von joggel
Krishty hat geschrieben:Was ist denn Draw?
?
Ne Klasse die was zeichnet eben... ein Framework, dass ich verwende.

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 15:12
von Krishty
Sowas ist aber schon wichtig zu wissen – falls das nämlich eine Basisklasse von RenderDingens wäre, würde der Aufruf wieder was ganz anderes bedeuten ;) (Und y & x sehen irgendwie vertauscht aus.)

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 15:14
von eXile
Krishty hat geschrieben:Liegt vielleicht daran, dass er die auf dem System vorhandenen ffdshow-Tryouts nutzt, während VLC seine eigenen Codecs mitbringt (welche auch immer das sein mögen). Oder daran, dass die bei VLC zu sehr damit beschäftigt sind, Sicherheitslücken zu stopfen um zur Optimierung zu kommen.
Oder hier dran:
http://wiki.videolan.org/VLC_GPU_Decoding hat geschrieben:VLC, in its modular approach and its transcoding/streaming capabilities, does decoding in GPU at the decoding stage only and then gets the data back to go to the other stages (streaming, filtering or plug any video output after that).
What that means is that, compared to some other implementation, GPU decoding in VLC can be slower because it needs to get the data back from the GPU. But you can plug ANY video output (sink) to it and use all the VLC video filters.
Vielleicht könnte das hier ja ganz interessant sein -- auch wenn du keine Nvidia-Graphikkarte hast (das ist eben der Preis, den man zahlen muss, wenn man kein All-in-one-Paket wie beim VLC-Player hat). Auch finde ich die Idee hier hinter gar nicht so schlecht; alle Arbeit wird in Shadern abgewalzt, welche man dann endlich mal so implementieren kann, dass die Qualität stimmt.
Krishty hat geschrieben:(Und y & x sehen irgendwie vertauscht aus.)
dito.

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 15:16
von joggel
Krishty hat geschrieben:Sowas ist aber schon wichtig zu wissen – falls das nämlich eine Basisklasse von RenderDingens wäre, würde der Aufruf wieder was ganz anderes bedeuten ;) (Und y & x sehen irgendwie vertauscht aus.)
Jo, stimmt. Habe auch nicht alles 1:1 aus meinem Code kopiert, hab da etwas zensiert ^^. Ging mir nur um das vertauschte x- und y.

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 17:31
von Krishty
Weltabschottungsbedingte Camera Obscura an schäbiger Zimmerwand:
obsc.jpg
<3
eXile hat geschrieben:Auch finde ich die Idee hier hinter gar nicht so schlecht; alle Arbeit wird in Shadern abgewalzt, welche man dann endlich mal so implementieren kann, dass die Qualität stimmt.
Omg da komme ich in Wallung :o

Re: Anti-Jammer-Thread

Verfasst: 22.07.2011, 17:45
von CodingCat
Krishty hat geschrieben:Weltabschottungsbedingte Camera Obscura an schäbiger Zimmerwand:
WOAH! Wie muss das erst in echt aussehen!

Re: Anti-Jammer-Thread

Verfasst: 25.07.2011, 04:18
von Krishty
Mittlerweile ist es ein halbes Jahr her, dass ich den Link vorgeschlagen hatte – aber nun hat es doch noch geklappt. Google Translate übersetzt den Titel zwar peinlich suboptimal, fein ist es aber nichtsdestotrotz.

Zwei andere Sachen, die ich für ein Wiki und ein Portal verfasst habe, sind nach drei Wochen auch endlich übernommen worden. Erst eine Weile lang nichts, dann alles in einer Nacht. Offenbar prokrastinieren auch andere Menschen alles bis Montag früh.

Re: Anti-Jammer-Thread

Verfasst: 26.07.2011, 21:40
von Krishty
Culling und Distanzberechnung überarbeitet (danke, Cat) – Leistung verdreifacht
Batching für Dreiecke implementiert – Leistung nochmal mehr als verdreifacht

Eine komplette Magnitüde schneller als heute morgen. Gefällt.

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 09:49
von Thoran
Bin begeistert, was für ein NoBrainer die Konvertierung von SVN nach Mercurial ist, wenn man mal weiß wie es geht ;)
Jetzt muß ich nur noch die korrekte Arbeitsweise mit Mercurial lernen.

Thoran

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 13:41
von Schrompf
Ich ziehe mal meinen Hut vor dem Intel Core i7. Ich muss jetzt ja unseren Sprite Renderer mal auf neue Füße stellen, um z.B. Normal Maps in rotierter Form auch noch korrekt ausrendern zu können. Und dazu hatte ich mir vorgenommen, bei der Gelegenheit auch all den QuadSetup-Kram, der bislang auf der CPU passiert, mit in den VertexShader zu schieben.

Nun scheitert es aber bereits daran, einen Benchmark aufzustellen, der überhaupt CPU-lastig ist. 100k kleinste Partikel, zu jedem ein rotiertes und skaliertes Quad auf der CPU berechnet, und es hängt immernoch an der Grafikkarte. Jede Verkleinerung der Testsprites verdoppelt die Framerate. Intel, ich ziehe meinen Hut. Bzw. NVidia: 350 parallele Shadercores und dann DAS? Da bin ich ja mit zwei Buntstiften schneller...

War nur ein Scherz.

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 13:48
von Krishty
Die Rechenleistung ist einfach enorm. Jetzt, wo nicht mehr 95 % meiner Zeit durch ein WaitForSingleObject() im Treiber aufgefressen werden, knattert der i7 meine Geometrie so schnell durch, dass ich schon fast über Software Rasterization nachdenke.

Gleichzeitig ist diese Sättigung an Rechenleistung aber auch Intels größtes Problem. Darum machen sie jetzt die selten bescheuerte Werbung, alles sähe besser aus wenn man einen Intel Core im Rechner hätte. Und schreiben so einen Schmuh. Wenn es keine Probleme zum Totrechnen mehr gibt, macht man sich halt neue; am besten mit entsprechender Erweiterung des Befehlssatzes.

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 14:00
von Schrompf
Antialiasing auf der CPU. Na das ist ja mal was wirklich Neues. In Anbetracht der Tatsache, dass den Großteil der Zeit eh 4 bis 7 der 8 Cores Däumchen drehen, vielleicht gar keine dumme Idee.

Nebenbei: Battlefield 3 betreibt Software Rasterizing im Hintergrund. Die rendern die Tiefenwerte einer extrem schlichten Version ihrer Szene nebenbei auf einem übrigen CPU-Kern aus, um das dann für ihr hochparalleles Culling zu nutzen. Ich komme mir immer so rückständig vor, wenn ich lese, was die alles so anstellen. Während wir noch AABBs nutzen und handplatzierte Blocker und Portale nehmen (durchaus nützlich in/nahe Gebäuden) und dabei möglichst viel Informationen hierarchisch wiederverwenden, rattern die einfach eine flache Liste von hundertausenden Spheres durch UND SIND DUTZENDFACH SCHNELLER! <hier generischen Unmut-Laut einsetzen>

[edit] Damit das noch zum Anti-Jammern passt: ich hab jetzt ja Zeit! Wenn wir (als eines der nächsten Projekte, vermute ich) wieder die Splitterwelten angehen und zur Verkaufsfähigkeit treiben, nehm ich mir ein paar Wochen Vollzeit, um die Engine auf den Kopf zu stellen. Parallele Renderqueues, ein vernünftiges Culling System, ein ordentliches paralleles Task-System, und endlich ein bisschen DX11, wo es sich anbietet. Und das Coole daran ist: ich kann das den ganzen Tag machen und muss nicht ein bis zwei Abende in der Woche mühsam freischaufeln, um dann nach einer Stunde von irgendwas abgelenkt zu werden. Ich freu mich drauf.

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 14:17
von Top-OR
Schrompf hat geschrieben:Nebenbei: Battlefield 3 betreibt Software Rasterizing im Hintergrund. Die rendern die Tiefenwerte einer extrem schlichten Version ihrer Szene nebenbei auf einem übrigen CPU-Kern aus, um das dann für ihr hochparalleles Culling zu nutzen. Ich komme mir immer so rückständig vor, wenn ich lese, was die alles so anstellen. Während wir noch AABBs nutzen und handplatzierte Blocker und Portale nehmen (durchaus nützlich in/nahe Gebäuden) und dabei möglichst viel Informationen hierarchisch wiederverwenden, rattern die einfach eine flache Liste von hundertausenden Spheres durch UND SIND DUTZENDFACH SCHNELLER! <hier generischen Unmut-Laut einsetzen>
Das Gefühl kenne ich zu genüge. Aber sieh's mal so:

Da sitzen auch ca. 2,345 Leute mehr dran als an deinen Projekten. Was rauskommt, ist 1A-Fließbandarbeit ohne Seele: "Was, wir haben kein Know-How was Algorithmus-XY? Dann kaufen wir einen, der es kann." Ende der Geschichte, kein Tutorial lesen und durchbeissen, kein Grübeln, keine persönliche Weiterentwicklung, keine Erfolgserlebnisse, keine Freude-wie-ein-Schneekönig, das endlich was klappt (<-- DARUM machen wir doch den ganzen Mist hier, oder nicht?!?!????), keine gutes Gefühl "Herr des Ganzen" zu sein, "nur" das Ergebnis kommt und wenn ich NUR das will, dann kann ich mir auch ein Spiel kaufen.

Oder seh ich das so falsch?
Schrompf hat geschrieben:[edit] Damit das noch zum Anti-Jammern passt: ich hab jetzt ja Zeit! Wenn wir (als eines der nächsten Projekte, vermute ich) wieder die Splitterwelten angehen und zur Verkaufsfähigkeit treiben, nehm ich mir ein paar Wochen Vollzeit, um die Engine auf den Kopf zu stellen. Parallele Renderqueues, ein vernünftiges Culling System, ein ordentliches paralleles Task-System, und endlich ein bisschen DX11, wo es sich anbietet. Und das Coole daran ist: ich kann das den ganzen Tag machen und muss nicht ein bis zwei Abende in der Woche mühsam freischaufeln, um dann nach einer Stunde von irgendwas abgelenkt zu werden. Ich freu mich drauf.
Klappt eh nicht .. hihihi ... *FingerZeig* ... ;-)

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 14:31
von Schrompf
Top-OR hat geschrieben: DARUM machen wir doch den ganzen Mist hier, oder nicht?
Ja, schon :-) Ich mach's aber auch wegen der Ergebnisse - etwas gestalten zu können, das anderen Freude bereitet.
Top-OR hat geschrieben:Klappt eh nicht .. hihihi ... *FingerZeig* ... ;-)
Jaja, läster Du nur. Das ist aber auch meine größte Sorge an dem Ganzen: ich muss es auch schaffen, mich und meine Leute davon ernähren zu können. Wenn das nicht klappt, dann fürchte ich jetzt schon, dass ich in ein ziemlich tiefes Loch fallen werde.

Aber gut, lassen wir den AntiJammer-Thread mal wieder für seinen eigentlichen Zweck.

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 15:15
von Top-OR
Schrompf hat geschrieben:
Top-OR hat geschrieben: DARUM machen wir doch den ganzen Mist hier, oder nicht?
Ja, schon :-) Ich mach's aber auch wegen der Ergebnisse - etwas gestalten zu können, das anderen Freude bereitet.
Gut, das seh ich auch so und deshalb auch ein. Aber vielleicht hilfts dir, die Betonung auf das DU (bzw. ein kleines Team) machst es, um ... zu legen und nicht einer von den 40 Kollegen von Standort-XY macht es. Und für das, was wir hier machen, ihr z.B. auch besonders mit Splitterwelten, aber auch viele von den Projekten hier; dafür sind "wir" doch ganz gut, finde ich ...

Die kleine Elektrobude von Nebenan ist ja auch nicht Siemens und ich glaube, die meisten, die sich aufn Indi-Spiel (nein, nicht Jones) einlassen, wissen das und erwarten auch nicht die AAA-Technik, sondern Charme. Und den haben viele Projekte von hier z.B. für mich schon jetzt...
Schrompf hat geschrieben:
Top-OR hat geschrieben:Klappt eh nicht .. hihihi ... *FingerZeig* ... ;-)
Jaja, läster Du nur. Das ist aber auch meine größte Sorge an dem Ganzen: ich muss es auch schaffen, mich und meine Leute davon ernähren zu können. Wenn das nicht klappt, dann fürchte ich jetzt schon, dass ich in ein ziemlich tiefes Loch fallen werde.
Wird schon!

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 17:49
von Schrompf
Abschlussnotiz zum ursprünglichen Thema - Sprite-Rendering mit Hardware. Es bringt tatsächlich was, allerdings weniger als erhofft.

Quads komplett auf CPU erstellt, rotiert, skaliert, 4 Vertizes hochgeladen: 90 fps bei 100k Sprites mit 4x4 bis 10x10 Pixel Größe
Vertizes komplett in der GPU konstruiert, 1 Vertex hochgeladen: 190 fps

Sobald ich die Sprites auf 10 bis 25 Pixel vergrößere, macht es keinen Unterschied mehr - dann hängt es nur noch an der Fillrate der GPU. Ich freu mich trotzdem drüber. Zum Einen, weil jetzt Normalen korrekt im PixelShader rotiert werden. Und zum Anderen, weil es auf schwächeren Systemen mehr bringen wird. Und dort brauch ich das ja, auf meinem eigenen Rechner geht eh alles schnell genug.

Re: Anti-Jammer-Thread

Verfasst: 27.07.2011, 17:58
von CodingCat
100k Sprites... das letzte Mal, als ich Volumetric Clouds implementiert hatte, war 10k Fillrate-bedingt absolute Obergrenze. Bis ich das nächste Mal dazu komme, kann ich wahrscheinlich jede Nebelschwade einzeln auf Millionen geschichteter Quads rendern. :lol:

Re: Anti-Jammer-Thread

Verfasst: 03.08.2011, 13:23
von glassbear
Jetzt wo QuakeCon ist, veröffentlicht id software vielleicht den id tech 4 Code :ugeek:

Re: Anti-Jammer-Thread

Verfasst: 03.08.2011, 22:17
von CodingCat
Apropos QuakeCon, wenn ich die URL richtig erraten habe, gibts hier morgen gegen 21:30 Uhr womöglich Carmacks Key Note zu sehen. Vielleicht kommt gnädigerweise auch noch ein offizieller Link.

Re: Anti-Jammer-Thread

Verfasst: 05.08.2011, 02:18
von eXile
Bild

Re: Anti-Jammer-Thread

Verfasst: 05.08.2011, 09:01
von Chromanoid
Schon einen Flug gebucht? :D

Re: Anti-Jammer-Thread

Verfasst: 05.08.2011, 15:04
von CodingCat
Das DirectX Effects 11 Framework kompaktiert und verschiebt zur Laufzeit relevante Effect-Daten nach dem Laden in einen einzigen minimalen und kontinuierlichen Speicherbereich.

Re: Anti-Jammer-Thread

Verfasst: 09.08.2011, 20:27
von Krishty
Ein hiesiges Ladenlokal wirbt mit „klimatisiertem Stehverzehr“

Re: Anti-Jammer-Thread

Verfasst: 09.08.2011, 23:35
von kaiserludi
Krishty hat geschrieben:Ein hiesiges Ladenlokal wirbt mit „klimatisiertem Stehverzehr“
Bei den derzeitigen Temperaturen ist mir Klimatisierung nicht unbedingt so wichtig.

Re: Anti-Jammer-Thread

Verfasst: 10.08.2011, 19:37
von Krishty
Ich habe heute morgen zum ersten Mal in meinem Leben eine Nebensonne gesehen (die linke). Die würde ich gern implementieren – aber wenn man die in über zwanzig Jahren der Realtität nur ein einziges Mal bemerkt, dann ist das wohl ein wenig zu viel Detailarbeit für einen Renderer, in dem man sich insgesamt durchschnittlich hundert Stunden aufhält.

Re: Anti-Jammer-Thread

Verfasst: 10.08.2011, 23:21
von j.klugmann
Wow, so ein Phänomen habe ich noch nie gesehen. Ich stelle mir dir Umsetzung äußerst interessant vor. :P

Re: Anti-Jammer-Thread

Verfasst: 11.08.2011, 00:08
von Chromanoid
Seit wann weißt du denn das es sowas gibt? Ich erst seit eben :) Vielleicht fällt einem sowas vor allem auf, wenn weiß, dass es das gibt. Einen Gorilla, der beim Basketballspiel auftaucht, sieht man ja auch nicht unbedingt.