Registriert: Di Mai 18, 2004 16:45 Beiträge: 2621 Wohnort: Berlin
Programmiersprache: Go, C/C++
Kennst du sinus Lookup Tables ? Damit werden die winkel für sinus und damit auch cosinus in einer tablle zur verfügung gestellt und muss nicht immer wieder berechnet werden. So kann man beim start einfach ne tabelle mit z.B. 720 einträgen erstellen und dann alle winkel in 0.5° abstand eintragen. Statts dann den sinus/cosinus aufwendig zu berechnen wird nur in den offset vom pointer der tabelle geguckt und man hat den Bogenmaß. Lookup tables sind einfach nur zum erhöhen der performance gedacht indem einfach werte vorgespeichert werden. Also könnte man sagen eine art selbsterzeugter Cache.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
eine "lookup table" ist im allgemeinen eine verknüpfung index->wert. so kannst du alles mögliche einfch per zahlenwert identifizieren. sinngemäß heisst es wohl "nachschlagetabelle".
Man hört in Verbindung mit Delphi auch oft "Konstantenarray", was im Grunde das selbe ist
wenn man zum beispiel fünf dynamisch erzeugte Images auf der form hat, schreibt man die natürlich in ein arry. genauso kann man es natürlich auch mit farben machen. also farbe1,farbe2,farbe3....
GIF Images arbeiten zum beispiel nur im indizierten farbindex, das heisst eine maximal byte-große (256 werte ) tabelle enthält alle möglichen farbwerte, was das bild selbst dann von R+G+B+R+G+B auf Color1,Color2,.... schrumpfen lässt. genauso ist es wohl mit dem color-lookup.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich galub das mit den Farbtabellen ist historischer natur. Keine Ahnung ob man sowas noch brauch. Eventuell bei Verteiltem Rendern. Also wenn GL-Client und GL-Server unterschiedliche Rechner sind, und man weniger Daten übertragen will. Aber schon das ist ein ziemlich Konstruierter Fall
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Hmm ok, danke für die Erklärungen.
Soll ichs dann ab jetzt "Farb-Nachschlagetabelle" nennen?
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also ich würde es einfach nur "Farbtabelle" nennen. Das ist da wohl eher der gängige Begriff dafür. Was man genau damit macht sollte nicht in dem Wort selber stecken. Das könnte man eher als kleinen Satz drunter erwähnen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Guck euch mal bitte glColorSubTable an, und sagt mir, dass die bei der Funktionsspezifikation einfach nur einen total doofen Fehler bei der Indexberechnung gemacht haben.
Wieso?
Müsste es nicht heißen:
"[...] mit den Indizes start bis start + width - 1."
anstatt
"[...] mit den Indizes start bis start + x - 1."
Ich war mir eigentlich ziemlich sicher, dass es so sein sollte, aber dann war bei den Fehlern wieder die "falsche Rechnung" als Grundlage genommen worden. Also ich versteh das jetzt nicht so richtig, was das x (was ja eine Fensterkoordinate ist) mit der Länge des zu kopierenden Bereichs zu tun hat.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also jetzt versteh ich gar nichts mehr.
Wo hast du denn die Spezifikation ausgegraben? Wenn ich im netz nach glCopyColorSubTable suche, dann finde ich ausschließlich die Version die ich da übersetzt habe.
Und wenn du width in count umbenennst, dann frage ich mich was width bei den Fehlermeldungen bedeutet. Is irgendwie alles nochn bisl mystisch.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Table 3.4: Color table names. Regular tables have associated image data. Proxy tables have no image data, and are used only to determine if an image can be loaded into the corresponding regular table.
target must be a regular color table name. pname is one of COLOR TABLE SCALE or COLOR TABLE BIAS. params points to an array of four values: red, green, blue, and alpha, in that order.
A GL implementation may vary its allocation of internal component resolution based on any ColorTable parameter, but the allocation must not be a function of any other factor, and cannot be changed once it is established. Allocations must be invariant; the same allocation must be made each time a color table is specified with the same parameter values. These allocation rules also apply to proxy color tables, which are described later in this section.
Alternate Color Table Specification Commands
Color tables may also be specified using image data taken directly from the frame- buffer, and portions of existing tables may be respecified.
defines a color table in exactly the manner of ColorTable, except that table data are taken from the framebuffer, rather than from client memory. target must be a regular color table name. x, y, and width correspond precisely to the corresponding arguments of CopyPixels (refer to section 4.3.3); they specify the image’s width and the lower left (x, y ) coordinates of the framebuffer region to be copied. The
Seite 120 (3.6. PIXEL RECTANGLES):
image is taken from the framebuffer exactly as if these arguments were passed to CopyPixels with argument type set to COLOR and height set to 1, stopping after the final expansion to RGBA.
Subsequent processing is identical to that described for ColorTable, beginning with scaling by COLOR TABLE SCALE. Parameters target, internalformat and width are specified using the same values, with the same meanings, as the equivalent arguments of ColorTable. format is taken to be RGBA.
void CopyColorSubTable( enum target, sizei start, int x,
int y, sizei count );
respecify only a portion of an existing color table. No change is made to the inter- nalformat or width parameters of the specified color table, nor is any change made to table entries outside the specified portion. target must be a regular color table name.
ColorSubTable arguments format, type, and data match the corresponding ar- guments to ColorTable, meaning that they are specified using the same values, and have the same meanings. Likewise, CopyColorSubTable arguments x, y, and count match the x, y, and width arguments of CopyColorTable. Both of the Color- SubTable commands interpret and process pixel groups in exactly the manner of their ColorTable counterparts, except that the assignment of R, G, B, and A pixel group values to the color table components is controlled by the internalformat of the table, not by an argument to the command.
Arguments start and count of ColorSubTable and CopyColorSubTable spec- ify a subregion of the color table starting at index start and ending at index start + count − 1. Counting from zero, the nth pixel group is assigned to the table entry with index count + n. The error INVALID VALUE is generated if start + count > width.
Color Table State and Proxy State
The state necessary for color tables can be divided into two categories. For each of the three tables, there is an array of values. Each array has associated with it a width, an integer describing the internal format of the table, six integer values describing the resolutions of each of the red, green, blue, alpha, luminance, and intensity components of the table, and two groups of four floating-point numbers to store the table scale and bias. Each initial array is null (zero width, internal format
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Deshalb hasse ich diese Form der Spezifikation so. Unsere Version ist einfach unschlüssig. Das width steht nirgendwo erklärt, und in der DGLOpenGL.pas steht nicht count, sondern Width.
Das stört mich jetzt schon.
Zumindest ist die Bereichsangabe logisch.
Was wir aber nicht machen sollten, ist neue Felder wie "OrginalSpezifikation" einzubauen. Ich mach das mal weg. Du hast ja hier die Quelle angegeben, somit haben wir ne Diskussionsgrundlage.
Wie gehts nun weiter mit diesem seltsamen Artikel?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Jun 19, 2003 10:44 Beiträge: 991 Wohnort: Karlsfeld (nahe München)
Also wenn ich das richtig verstanden habe, dann bezieht sich das width auf den Wert der beim erstellen des Color Tabels als Width Parameter uebergeben wurde.
Das was ich da gepostet hatte war uebrigens nur ein Auszug aus 3.6. PIXEL RECTANGLES.
MfG
Flo
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ok. Das is schonmal ein Argument.
Ich bin für folgendes:
- Wir benutzen die Parameterbezeichnungen wie sie in der DGLOpenGL.pas sind (war auch in der Funk.Vorlage so geschrieben glaub ich)
- Wir erklären noch was width ist, und wo man das herbekommt (wenn man das irgendwo herbekommt).
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Jun 19, 2003 10:44 Beiträge: 991 Wohnort: Karlsfeld (nahe München)
Flash hat geschrieben:
- Wir benutzen die Parameterbezeichnungen wie sie in der DGLOpenGL.pas sind (war auch in der Funk.Vorlage so geschrieben glaub ich)
Wir sollten das in der DGLOpenGL.pas ausbessern, und nicht den Bezeichnungsfehler auch noch ins Wiki uebertragen!
So neben bei bei gibt es auch noch ein paar andere Parameternamen die in der DGLOpenGL.pas nicht stimmen. Die Funktion wglMakeCurrent zum Beispiel hat noch den Parameternamen-Dummy p2. [pascal] TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall; [/code]
Zitat:
- Wir erklären noch was width ist, und wo man das herbekommt (wenn man das irgendwo herbekommt).
Waere sicherlich nicht schlecht
MfG
Flo
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ok. Das wäre natürlich noch besser. Dann sollte man aber mal eine Seite (vielleicht im Wiki, weil jeder Schreibzugriff drauf hat) machen, wo wir alle Funktionen vermerken, die im Header falsch sind, und einer von den Header-Jungs (Lars, Lossy, Wer eigentlich noch?) pflegt das dann mal ein.
Das mit width kannst du ja mal machen. Du hast anscheinend bisl besseren Überblick, bezüglich der Extension.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Hi.
Ich habe jetzt eine kleinen Artikel reingestellt, um zu erklären, was Convolution ist. Ich habe ehrlich gesagt wenig Ahnung, was das ist, und habe mich beim Verfassen auf einen Artikel in der c`t gestützt, bei dem es um Deconvolution geht. Ich habe zwar im Netz geforscht, aber da geht es bei Convolution anscheinend immer um etwas sehr mathematisches, und ich glaube, das es sich da um was andres als in OGL handelt. Vielleicht hat jemand von euch etwas mehr Ahnung?
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Mitglieder in diesem Forum: 0 Mitglieder und 87 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.