Ich möchte einen Algorithmus erstellen, der einer Bitmap einen Abschrägungseffekt hinzufügt, indem er Alpha als Reliefkarte verwendet.
Wie würde ich so etwas machen? Ich habe Spiegelbeleuchtung ausprobiert, aber ich bekomme nur das Highlight und nicht den Schatten.
Hier ist der Effekt, über den ich spreche (mit Photoshop erstellt):
Alle diese wurden durchgeführt unter Verwendung size: 30px
(die Tiefe der Abschrägung von der Kontur des Bitmaps) angle 130
, altitude 50
.
Von links nach rechts, von oben nach unten:
- Meißel Harte Abschrägung
- Meißel Soft Bevel
- Glatte Abschrägung
- Meißel hart mit
soften: 16px
- eine unscharfe Abschrägung?
Ich versuche, jeden dieser Effekte zu erstellen. Wie würde ich vorgehen, um die Grundfase zu erstellen? und was brauche ich, um von dieser Schräge zu jedem dieser Teile zu gelangen?
quelle
Bevel and Emboss von Photoshop funktioniert vorhersehbar:
1) Berechnen Sie eine Abstandstransformation in einem temporären 8-Bit-Einzelkanalbild
Chisel verwendet die euklidische Distanztransformation mit einer Fasenmetrik (je nach Größe 3x3, 5x5 oder 7x7). Sie können eine exakte euklidische Abstandstransformation verwenden, wenn Sie möchten. Ich bevorzuge die von Meijster, da sie geglättet werden kann ("Ein allgemeiner Algorithmus zum Berechnen von Abstandstransformationen in linearer Zeit", MEIJSTER).
Smooth Bevel verwendet eine Fasen-5-7-11-Abstandstransformation, gefolgt von zwei Anwendungen einer Rahmenunschärfe, um die Reliefkarte zu erstellen.
2) Wenden Sie Bump-Mapping auf das Transformationsbild für den Zwischenabstand an. Blinns ursprüngliche Technik ist geeignet.
3) Zum Weichzeichnen können Sie eine Faltung der Oberflächennormalen durchführen oder sie mit einem Kernel filtern.
4) Unter Verwendung der Reliefkarte werden die Oberflächennormalen mit der globalen Lichtquelle kombiniert, um die Beleuchtungsstärke als einen Wert von -1 bis 1 zu berechnen, wobei negative Werte Schatten sind, positive Werte Glanzlichter sind und der Absolutwert die Größe des Lichts ist Quelle.
5) Zwei temporäre 8-Bit-Einzelkanalbilder werden berechnet, eines aus den Lichtintensitäten und das andere aus den Schatten. Von da an ist es ganz einfach, die einzelnen Masken zu verwenden, um die Ebene mithilfe von Farbe, Mischmodus und Deckkraft einzufärben - eine Maske für die Lichter und die andere für die Schatten.
Visual Basic-Quellcode zum Implementieren einiger davon finden Sie hier:
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=51640&lngWId=1
Bitte besuchen Sie mein Open Source LayerEffects-Projekt, um mehr zu erfahren:
https://github.com/vinniefalco/LayerEffects.git
Ich hoffe das hilft jemandem.
quelle