Klassentemplate in Klassendefinition implementieren?
-
double ist genauer als float aber langsamer. Schon gibt es Szenarien, wo ich Mal lieber float und Mal lieber double benutze. Man koennte auch sagen, ich tue das aus Unwissenheit, aber Weitblick klingt besser.

Funktionsueberladungen finde ich eigentlich ziemlich ok, da ich vorher bei meinen Templatespezialisierungen ja auch zwei hatte. Dann mache ich das so, danke.
-
Eisflamme schrieb:
double ist genauer als float aber langsamer.
Wie kommst du da drauf?
-
SeppJ schrieb:
Eisflamme schrieb:
double ist genauer als float aber langsamer.
Wie kommst du da drauf?
Wenn ich mal mit etwas Hervorhebung zitieren darf:
Eisflamme schrieb:
double ist genauer als float aber langsamer. Schon gibt es Szenarien, wo ich Mal lieber float und Mal lieber double benutze. Man koennte auch sagen, ich tue das aus Unwissenheit, aber Weitblick klingt besser.

Wahrscheinlich war seine Überlegung, dass ein
float32 Bit hat und eindouble64 Bit und es daher für dendoublemehr Takte braucht, weil er grösser ist. Dass eine CPU heutzutage aber eine FPU besitzt und alle Gleitkommazahlen mit 80 Bit rechnet egal obfloatoderdouble, weiss er wahrscheinlich nicht
Grüssli
-
Dravere schrieb:
SeppJ schrieb:
Eisflamme schrieb:
double ist genauer als float aber langsamer.
Wie kommst du da drauf?
Wenn ich mal mit etwas Hervorhebung zitieren darf:
Eisflamme schrieb:
double ist genauer als float aber langsamer. Schon gibt es Szenarien, wo ich Mal lieber float und Mal lieber double benutze. Man koennte auch sagen, ich tue das aus Unwissenheit, aber Weitblick klingt besser.

Wahrscheinlich war seine Überlegung, dass ein
float32 Bit hat und eindouble64 Bit und es daher für dendoublemehr Takte braucht, weil er grösser ist. Dass eine CPU heutzutage aber eine FPU besitzt und alle Gleitkommazahlen mit 80 Bit rechnet egal obfloatoderdouble, weiss er wahrscheinlich nicht
Grüssli
Und welcher Datentyp ist nun für OpenGL der bessere?
Ich verwende eigentlich immer floats, da ich bisher keine Daten hatte wo ich damit Probleme festgestellt hätte...
Das Thema bzw ein Vergleich würde mich hier auch interessieren :).
rya.
-
scorcher24@public.pc schrieb:
Und welcher Datentyp ist nun für OpenGL der bessere?
Ich verwende eigentlich immer floats, da ich bisher keine Daten hatte wo ich damit Probleme festgestellt hätte...
Das Thema bzw ein Vergleich würde mich hier auch interessieren :).
rya.Bisher war es eigentlich
float. Ich kenne ein paar Gründe, bin aber auch nicht so der Profi in OpenGL, weiss also auch nicht wie aktuell diese sind:
1. Gerade für zum Beispiel Spiele warfloatimmer ausreichend von der Genauigkeit.
2.floatfrisst weniger Speicher.
3. Wenn ich mich recht erinnere, werden 64 Bit Gleitkommazahlen in gewissen Bereichen (z.B. Shader) gar nicht unterstützt.Grüssli
-
Ja moment Mal. Tut mir Leid, aber wenn ich in OpenGL alle Operationen mit double statt float laufen lasse, ist das Programm tatsächlich um ein Vielfaches langsamer. Zusätzlich spielt das von den Ressourcen eine Rolle: Wenn ich ein Model mit double-Koordinaten laufen lasse, verbraucht es logischerweise den doppelten Platz und da Modelle viel Ressourcen einnehmen ist das auch ein Punkt.
Ich weiß nicht. Ich würde mich zumindest ungern auf float festlegen, wenn es eben auch anders geht.
-
Das läuft ja dann auch nicht auf einer CPU sondern GPU.
-
brotbernd schrieb:
Das läuft ja dann auch nicht auf einer CPU sondern GPU.
Und eine GPU ist darauf optimiert Gleitkommazahlen-Operationen zu machen.
@Eisflamme,
Hast du denn überhaupt irgendein Argument, welches gegen das ausschliessliche Benutzen vonfloatspricht? Hast du einen Anwendungsfall, wo du die zusätzliche Genauigkeit brauchst? Sonst machst du dir nämlich nur das Leben schwer, ohne davon einen Nutzen zu haben.Grüssli
-
Dravere schrieb:
brotbernd schrieb:
Das läuft ja dann auch nicht auf einer CPU sondern GPU.
Und eine GPU ist darauf optimiert Gleitkommazahlen-Operationen zu machen.
Ja aber (bisher) eher mit (single) floats. Manch ältere Karte kann gar nix mit double und castet jedes mal.
-
Hm, nein, bisher faellt mir nicht ein, wo ich double brauche.
Aber ich bin Anfaenger in dem 3D-Zeug und kenne mich da nicht wirklich gut aus, ist gut moeglich, dass so was spaeter Mal wichtig wird, kA...Gut, dann kann ich's vll. auch spaeter wieder aendern. Aber ein typedef ist doch praktisch und gut. Eigentlich kann es doch irgendwann ueberall Sinn machen, Typen wieder zu ersetzen. Hab auch von einigen, die in dem 3D-Bereich und auch C++ nicht schlecht fit sind gehoert, dass sie eigentlich nur noch mit typedefs, size_type und stdint arbeiten und die normalen Datentypen gar nicht mehr verwenden, da es immer je nach Portierung oder von 32 auf 64 Bit sein kann, dass ein Datentyp mehr Sinn macht als der andere.
Mir fehlen da die Grundlagen, um das selbst ausreichend zu erlaeutern.