scaryjack
2006-04-11, 11:25:59
Hallo,
Ich hätte da mal eine technische Frage.
Im Rahmen meiner Ablschlußarbeit habe ich ein kleineres Programm geschrieben das 2 Bilder miteinander, Pixel für Pixel vergleicht und statistisch auswertet. Eigentlich sollte dieses Programm in erster Linie dazu dienen, unterschiede beim Rendern der gleichen 3D Szene zu detektieren, wenn verschiedene optimizer auf die Szene angwendet wurden.
Um es nochmal zu verdeutlichen:
-Ich lade eine 3D Szene, setze die Kamera an eine fixe Position, rendere ein Bild.
-Ich lade die gleiche Szene mit der fixen Kamera Position, aber wende vorher optimizer an und erstelle dann das zweite Bild.
Danach vergleiche ich die Bilder und Werte die Unterschiede aus.
Nun taucht aber auch folgendes Problem auf.
Wenn ich die gleiche Szene auf zwei verschiedenen Grafikkarten rendere, und dann vergleiche bekomme ich in ungünstigne Fällen bei über 80% aller Pixels abweichungen(allerdings die meisten Pixel um 1Punkt von 255, aber auch eine Menge größere Abweichungen)...
Zusammengefasst kam dabei folgendes raus.
- 2 Bilder auf unterschieldichen NvidiaGeforce Karten(z.B. 6600 vs 7800) mit unterschieldilichen Treibern--->keine Unterschiede
- Nvidia Geforce vs Nvidia Quadro ~ 30% Abweichungen
etc. etc.
Ich habe auch noch Karten von ATI, Intel und 3d Labs untereinander verglichen, mit dem Ergebniss, dass unterschidliche GPUs unterschiedlich Rendern.
Die Verwendung von Software Renderen war übrigens, wie nicht anders zu erwarten, auf allen Systemen unproblematisch. Also keine Abweichungen.
Meine Frage lautet nun:
Woran liegt das, bzw wo kann ich darüber genauere Infos finden.
Eine idee bisher ist, das der Textur Filter Herstellerbedingt unterschiedlich arbeitet. Aber vielleicht gibt es dafür ja noch mehr Gründe.
Vielen Dank im vorraus.
Ich hätte da mal eine technische Frage.
Im Rahmen meiner Ablschlußarbeit habe ich ein kleineres Programm geschrieben das 2 Bilder miteinander, Pixel für Pixel vergleicht und statistisch auswertet. Eigentlich sollte dieses Programm in erster Linie dazu dienen, unterschiede beim Rendern der gleichen 3D Szene zu detektieren, wenn verschiedene optimizer auf die Szene angwendet wurden.
Um es nochmal zu verdeutlichen:
-Ich lade eine 3D Szene, setze die Kamera an eine fixe Position, rendere ein Bild.
-Ich lade die gleiche Szene mit der fixen Kamera Position, aber wende vorher optimizer an und erstelle dann das zweite Bild.
Danach vergleiche ich die Bilder und Werte die Unterschiede aus.
Nun taucht aber auch folgendes Problem auf.
Wenn ich die gleiche Szene auf zwei verschiedenen Grafikkarten rendere, und dann vergleiche bekomme ich in ungünstigne Fällen bei über 80% aller Pixels abweichungen(allerdings die meisten Pixel um 1Punkt von 255, aber auch eine Menge größere Abweichungen)...
Zusammengefasst kam dabei folgendes raus.
- 2 Bilder auf unterschieldichen NvidiaGeforce Karten(z.B. 6600 vs 7800) mit unterschieldilichen Treibern--->keine Unterschiede
- Nvidia Geforce vs Nvidia Quadro ~ 30% Abweichungen
etc. etc.
Ich habe auch noch Karten von ATI, Intel und 3d Labs untereinander verglichen, mit dem Ergebniss, dass unterschidliche GPUs unterschiedlich Rendern.
Die Verwendung von Software Renderen war übrigens, wie nicht anders zu erwarten, auf allen Systemen unproblematisch. Also keine Abweichungen.
Meine Frage lautet nun:
Woran liegt das, bzw wo kann ich darüber genauere Infos finden.
Eine idee bisher ist, das der Textur Filter Herstellerbedingt unterschiedlich arbeitet. Aber vielleicht gibt es dafür ja noch mehr Gründe.
Vielen Dank im vorraus.