Frage

kann mir jemand deuten auf eine Papier / Algorithmus / resource / was auch immer das sagt mir, wie eine Textur minification Filter zu implementieren (gilt, wenn Texeln kleiner als Pixel) in einem Raytracer?

Danke!

War es hilfreich?

Lösung 4

Danke Jungs für Ihre Antworten, aber da ich keine geeignete techinque fanden erstellt ich selbst etwas, das sehr gut funktionieren stellte sich heraus:

Ich gehe davon aus meinem ray ein Kegel mit einem coneradius von einem halben Pixel auf der Bildebene zu sein. wenn der Strahl eine Oberfläche trifft, zu berechnen i die Ellipse, die auf die Oberfläche projiziert wird (die Ellipse von der Ebene Kegelschnittpunkt). Dann werden die texturecoordinate Derivate an dem Schnittpunkt mit projizieren ich diese Ellipse in texturespace. Ich weiß jetzt, welchen Teil der Textur unter meinem Pixel liegt und kann diesen Bereich unterzuabzutasten

Ich benutze RipMaps auch die Qualität zu verbessern - und ich wählte die RipMap Ebene auf der Grundlage der Größe der Ellipse in Texturespace

Andere Tipps

Da Sie ray verwenden Tracing Ich vermute, Sie suchen nach einem qualitativ hochwertigen Filtern, die auf der Höhe der „Fehler“ dynamisch basierend ändert Abtastung. Basierend auf dieser Annahme würde ich sagen, einen Blick auf „ray Differentialen“ nehmen. Es gibt ein schönes Papier auf dieser hier: http://graphics.stanford.edu/papers/trd/ und es dauert Effekte wie Brechung und Reflexion zu berücksichtigen.

Ihre Antwort auf sich selbst klingt wie der richtige Ansatz, aber da andere auf der Seite stolpern kann ich eine Ressource Link hinzufügen wie gewünscht. Neben der Diskussion Mipmapping (ripmapping ist im Grunde fortgeschritteneren Mipmapping), sie die Auswirkungen der Reflexion und Brechung auf Derivate und Mip-Ebene Auswahl diskutieren.

Homan Igehy. "Tracing Ray Differenziale." 1999. Proceedings of SIGGRAPH. http://graphics.stanford.edu/papers/trd/

Bei genauerer Lektüre ich sehe, dass Rehno Lindeque dieses Papier erwähnt. Zunächst war nicht klar, dass es die richtige Referenz war, weil er sagt, dass die Methode Proben auf dem Fehler des Sampling dynamisch basiert, die nicht korrekt ist. Die Filterung erfolgt auf der Grundlage der Größe der Aufstandsfläche des Pixels und verwendet nur einen Strahl, wie Sie beschrieben.

Edit: Eine weitere Referenz, die nützlich sein könnten ( http: //www.cs.unc. edu / ~ awilson / Klasse / 238 / # Herausforderungen ). Blättern Sie zu dem Abschnitt „Derivate von Texturkoordinaten.“ Er schlägt vor, Rückwärtsabbildung der Textur-Derivate von der Oberfläche auf den Bildschirm. Ich denke, das für reflektiert und gebrochenen Strahlen falsch wäre, aber ist möglicherweise einfacher zu implementieren und sollte für die Primärstrahlen in Ordnung sein.

Ich denke du meinst MipMap 'ing.

Hier ist ein Artikel rel="nofollow reden mit ihnen.

Aber nether sagen, wie zu wählen, welche verwenden MIPMAP, aber sie sind oft vermischt (die größere und kleinere MipMap).

Hier ist ein ein weiterer Artikel über wie Google Earth funktioniert , und es spricht darüber, wie sie Mipmapping die Erde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top