Es wird in unsere Vision Apps genutzt um das aktiver (Kamera-)Bild mit eine Overlay darüber zu visualisieren, mit Pan und Zoom usw. Also das ist alles mehr optimiert für upload von Daten als Zeichnen weil die fast eben oft passieren, aber Upload etwa 10x langsamer ist (3ms vs 300us)
Auf eine recenter Intel GPU (Haswell, Skylake) tut es etwa eine 4MPixel Textur, 130000 Rechtecke, 15000 character ein paar Tausend Linien und Zirkel in etwa 3-4ms. (upload+zeichnen). Externe Karten sind etwas langsamer (5-7ms)
Es ist noch eine Readme.txt im Archiv, benutzt Delphi XE3 oder Lazarus+ FPC 3.1.1 (das ist Trunk, und nicht die Neuen 3.0.0 Release, weil da die Methoden in TRect(F) und TPoint(F) fehlen (konnte man vielleicht aber mit der Hand lösen )
OOPS: es funktioniert natürlich auch mit Delphi. (XE3+, nutzt generics schwer)
Es gibt auch ein (mit Lazarus gebauter) .EXE fuer diejenigen die es nicht bauen können.
Es ist NICHT multi-platform weil wir nur Windows nutzen. (win64:meistens ok).
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2621 Wohnort: Berlin
Programmiersprache: Go, C/C++
Sehr schöne Demo, vorallem das man durch das Pixelbild und den Distance font zusammen sehr gut die skalierbarkeit von beiden sehen kann.
Wofür steht flushoverlay, dass brauch bei mir 89ms von insgesammt 143ms.
Kantenglättung für die Fonts wäre ein schönes feature, welches mit smoothstep Funktion recht einfach eingebaut ist.
Pixel Filter verhindert das nutzen von Mipmaps und dann wird es deutlich langsamer gegenüber linearer Interpolation, mit Mipmaps. Man kann auch GL_LINEAR/GL_LINEAR_MIPMAP_NEAREST Interpolation für Min_Filter und GL_NEAREST für Mag_Filter verwenden.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Di Aug 23, 2005 09:15 Beiträge: 31
Programmiersprache: FPC/Delphi XE3
TAK2004 hat geschrieben:
Sehr schöne Demo, vorallem das man durch das Pixelbild und den Distance font zusammen sehr gut die skalierbarkeit von beiden sehen kann.
Danke.
Zitat:
Wofür steht flushoverlay, dass brauch bei mir 89ms von insgesammt 143ms.
Uploaden der Overlay, also glbufferdata für die verschiedene Objekten.
Zitat:
Kantenglättung für die Fonts wäre ein schönes feature, welches mit smoothstep Funktion recht einfach eingebaut ist.
Es nutzt smoothstep, aber glblend ist aus nach eine Hint von dir (viewtopic.php?f=2&t=11400#p99341) um discard zu nutzen (text Typ shader Programme sind textnew*.ssrc)
Zitat:
Pixel Filter verhindert das nutzen von Mipmaps und dann wird es deutlich langsamer gegenüber linearer Interpolation, mit Mipmaps. Man kann auch GL_LINEAR/GL_LINEAR_MIPMAP_NEAREST Interpolation für Min_Filter und GL_NEAREST für Mag_Filter verwenden.
dFdx/y kann man sich als Macro vorstellen, die Variable die man übernimmt wird auch für den nachbarn ermittelt und subtrahiert. Der Shader wird immer für ein 2x2 Block ausgeführt, und dFdx nimmt sich dann sdf von sdf[x+1,y] block und subtrahiert den mit sdf[x,y]. fwidth ist die Abkürzung und ruft dFdx und dFdy auf.
Discard bringt in dem Shader nicht wirklich was, alle komplexen Aufrufe sind schon getätigt. Gamma korrektur sollte am Ende passieren und nicht auf Alpha angewendet werden.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Mitglieder in diesem Forum: 0 Mitglieder und 44 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.