Dies ist ein Spielzeug/experimentelles Projekt, das zeigt, wie Sie mit Eric Lengyels Slug -Algorithmus sowohl auf CPUs als auch auf GPUs Glyphen mit Glyphen rendern.
Ich empfehle, mindestens die im Abschnitt Referenz vor dem Code verknüpften Folien zu lesen.
| Unterprojekt | Zweck |
|---|---|
| Schriftgenerator | Liest eine .ttf TrueType -Schriftart Datei und gibt eine .Sluggish -Datei aus |
| Software -Renderer | Liest eine .luggish -Datei und gibt ein .tga -Bild pro angegebenem Codepunkt aus |
| Hardware -Renderer | Liest eine .luggish -Datei und rendert bis zu 6 angegebene Glyphen mit OpenGL |
| Besonderheit | Unterstützung |
|---|---|
| Kurvenstruktur (FP32) | JA |
| Banden Textur (U16) | JA |
| Glyphen in Bänder schneiden (Performance) | JA |
| Sortierkurven (Leistung) | JA |
| Hochwertige Implementierung von irgendetwas | NEIN |
| Hohe Leistung | NEIN |
| 16-Bit-Kodierung des schwimmenden Punktes | NEIN |
| Datenentdauplizierung und Komprimierung | NEIN |
| Textlayouting | NEIN |
| Farbige Formen | NEIN |
| Adaptive Super-Sampling | NEIN |
| Gamma -Korrektur | NEIN |
| Grenzen von Polygonen | NEIN |
Das Ziel war es, die Dinge ziemlich einfach zu halten und gleichzeitig keine schreckliche Leistung zu erzielen. Zum Beispiel wurde das Schneiden der Glyphen in Bänder implementiert, weil sie einfach ist und die Leistung massiv verbessert.
Standardmäßig ist die ausführbare Zieldatei des Debuggers nicht im Ausgabeverzeichnis, sondern im Verzeichnispfad, das von der Umgebungsvariablen für die Umgebungsumgebung SLUGGISH_APP_DIR angegeben ist.
Die .exe- und .pdb -Dateien werden nach jedem Build in dieses Verzeichnis kopiert.
Um diesen Vorgang einfach zu machen, können Sie Visual Studio über ein einfaches Batch -Skript starten:
:: This file would sit next to the Sluggish directory
cd Sluggishmakefilesvs2013
set SLUGGISH_APP_DIR=C:important_stuffsluggish
Sluggish.sln
Um mehr darüber zu erfahren, wie der Slug -Algorithmus funktioniert, siehe:
GPU-zentrierte Schriftart direkt von Glyph-Umrissen von Eric Lengyel
Journal of Computer Graphics Techniques (JCGT), Vol. 6, nein. 2, 31-47, 2017
Papier: http://jcgt.org/publiered/0006/02/02
Folien: http://terathon.com/i3d2018_lengyel.pdf
| Projekt/Datei | Lizenz (en) | Lizenzdatei (en) |
|---|---|---|
| Dieses Projekt | Nicht lizenzieren (öffentlich zugänglich) | Unlizenz. MD |
| SDL 2 | Zlib | libs/sdl2/copying.txt |
| Glew | Modifizierte BSD -Lizenz MESA 3-D-Lizenz (MIT) Khronos Lizenz (MIT) | libs/glew/lizenz.txt |
| Prämake 5 | Prämake 5 | makefiles/vorbere_license.txt |
| STB_TRUETYP.H | Pick-a-Lizenz: Nicht lizenzieren (öffentlich zugänglich) MIT | Code/Generator/stb_truetype.h |
| STB_IMAGE_WRITE.H | Pick-a-Lizenz: Nicht lizenzieren (öffentlich zugänglich) MIT | code/renderer_sw/stb_image_write.h |
Während der Slug-Algorithmus zum Zeitpunkt des Schreibens kein Patent enthält, hat Eric Lengyel eine Bewerbung für einen beantragt und der Prozess ist immer noch andauern ...