Ini adalah proyek mainan/eksperimental yang memamerkan cara memulai melakukan mesin terbang dengan algoritma siput Eric Lengyel pada CPU dan GPU.
Saya merekomendasikan membaca setidaknya slide yang ditautkan di bagian referensi sebelum kode apa pun.
| Sub-proyek | Tujuan |
|---|---|
| Generator Font | Membaca file font .ttf truetype dan output file .sluggish |
| Renderer Perangkat Lunak | Membaca file .sluggish dan output gambar .tga per titik kode yang ditentukan |
| Renderer Perangkat Keras | Membaca file .sluggish dan membuat hingga 6 mesin terbang tertentu menggunakan OpenGL |
| Fitur | Mendukung |
|---|---|
| Curves Texture (FP32) | YA |
| Tekstur pita (U16) | YA |
| Memotong mesin terbang menjadi band (kinerja) | YA |
| Kurva penyortiran (kinerja) | YA |
| Implementasi apa pun berkualitas tinggi | TIDAK |
| Kinerja tinggi | TIDAK |
| Pengkodean titik mengambang 16-bit | TIDAK |
| De-duplikasi data dan kompresi | TIDAK |
| Tata letak teks | TIDAK |
| Bentuk berwarna | TIDAK |
| Pengambilan sampel super adaptif | TIDAK |
| Koreksi Gamma | TIDAK |
| Poligon yang terikat | TIDAK |
Tujuannya adalah untuk menjaga hal -hal yang cukup sederhana sementara masih tidak memiliki kinerja yang buruk . Misalnya, memotong mesin terbang menjadi band telah diimplementasikan karena sederhana dan meningkatkan kinerja secara besar -besaran .
Secara default, target debugger yang dapat dieksekusi tidak ada di direktori output tetapi jalur direktori yang ditentukan oleh variabel lingkungan SLUGGISH_APP_DIR .
File .exe dan .pdb disalin ke direktori itu setelah setiap build.
Untuk membuat proses ini mudah, Anda dapat meluncurkan Visual Studio melalui skrip batch sederhana:
:: This file would sit next to the Sluggish directory
cd Sluggishmakefilesvs2013
set SLUGGISH_APP_DIR=C:important_stuffsluggish
Sluggish.sln
Untuk mempelajari lebih lanjut tentang bagaimana algoritma slug bekerja, lihat:
Font yang berpusat pada GPU memberikan langsung dari garis mesin oleh Eric Lengyel
Jurnal Teknik Grafis Komputer (JCGT), Vol. 6, tidak. 2, 31-47, 2017
Kertas: http://jcgt.org/published/0006/02/02
Slide: http://terathon.com/i3d2018_lengyel.pdf
| Proyek/File | Lisensi | File lisensi |
|---|---|---|
| Proyek ini | Unlicense (domain publik) | Unslicense.md |
| SDL 2 | Zlib | LIBS/SDL2/COPYY.TXT |
| Glew | Lisensi BSD yang dimodifikasi Lisensi Mesa 3-D (MIT) Lisensi Khronos (MIT) | LIBS/GLEW/LICIS.TXT |
| Premake 5 | Premake 5 | makefiles/premake_license.txt |
| stb_truetype.h | Pick-a-license: Unlicense (domain publik) Mit | kode/generator/stb_truetype.h |
| stb_image_write.h | Pick-a-license: Unlicense (domain publik) Mit | Kode/renderer_sw/stb_image_write.h |
Meskipun tidak ada paten pada algoritma slug pada saat penulisan, Eric Lengyel telah membuat aplikasi untuk satu dan prosesnya masih sedang dalam ...