Il s'agit d'un projet de jouet / expérimental montrant comment commencer à rendre les glyphes avec l'algorithme Slug d'Eric Lengyel sur les CPU et les GPU.
Je recommande de lire au moins les diapositives liées dans la section de référence avant l'un des code.
| Sous-projet | But |
|---|---|
| Générateur de polices | Lit un fichier de police .TTF TrueType et des sorties un fichier .sluggh |
| Rendu logiciel | Lit un fichier .sluggh et sort une image .tga par point de code spécifié |
| Rendu matériel | Lit un fichier. |
| Fonctionnalité | Soutien |
|---|---|
| Courbes Texture (FP32) | OUI |
| Texture des bandes (U16) | OUI |
| Couper les glyphes en bandes (performance) | OUI |
| Courbes de tri (performance) | OUI |
| Mise en œuvre de haute qualité de tout | NON |
| Haute performance | NON |
| Encodage de points flottants 16 bits | NON |
| Data Duplication and Compression | NON |
| Disposition du texte | NON |
| Formes colorées | NON |
| Super-échantillonnage adaptatif | NON |
| Correction gamma | NON |
| Polygones délimités | NON |
L'objectif était de garder les choses assez simples tout en n'ayant toujours pas de performances horribles . Par exemple, la coupe des glyphes en bandes a été mise en œuvre car elle est simple et améliore massivement les performances.
Par défaut, l'exécutable cible du débogueur n'est pas dans le répertoire de sortie, mais un chemin de répertoire spécifié par la variable d'environnement SLUGGISH_APP_DIR .
Les fichiers .exe et .pdb sont copiés sur ce répertoire après chaque version.
Pour faciliter ce processus, vous pouvez lancer Visual Studio via un script de lots simples:
:: This file would sit next to the Sluggish directory
cd Sluggishmakefilesvs2013
set SLUGGISH_APP_DIR=C:important_stuffsluggish
Sluggish.sln
Pour en savoir plus sur le fonctionnement de l'algorithme Slug, reportez-vous à:
Police centrée sur le GPU rendant directement à partir des contours de glyphes par Eric Lengyel
Journal of Informatique Graphics Techniques (JCGT), vol. 6, no. 2, 31-47, 2017
Papier: http://jcgt.org/published/0006/02/02
Diapositives: http://terathon.com/i3d2018_lengyel.pdf
| Projet / fichier | Licence (s) | Fichier de licence (s) |
|---|---|---|
| Ce projet | Non-licence (domaine public) | Non license.md |
| SDL 2 | zrib | libs / sdl2 / copie.txt |
| Glew | Licence BSD modifiée Licence Mesa 3D (MIT) Licence Khronos (MIT) | libs / glew / licence.txt |
| premake 5 | premake 5 | MakeFiles / premake_license.txt |
| stb_trueType.h | Pick-a-license: Non-licence (domaine public) Mit | code / générateur / stb_trueType.h |
| stb_image_write.h | Pick-a-license: Non-licence (domaine public) Mit | code / renderer_sw / stb_image_write.h |
Bien qu'il n'y ait pas de brevet sur l'algorithme Slug au moment de la rédaction, Eric Lengyel a fait une demande pour un et le processus est toujours en cours ...