นี่คือโครงการของเล่น/การทดลองที่แสดงให้เห็นถึงวิธีการเริ่มต้นการแสดงผลร่ายมนตร์กับอัลกอริทึม Slug ของ Eric Lengyel ทั้งในซีพียูและ GPU
ฉันขอแนะนำให้อ่านอย่างน้อยสไลด์ที่เชื่อมโยงในส่วนอ้างอิงก่อนรหัสใด ๆ
| โครงการย่อย | วัตถุประสงค์ |
|---|---|
| เครื่องกำเนิดฟอนต์ | อ่านไฟล์ฟอนต์. ttf truetype และส่งออกไฟล์. sluggish |
| ซอฟต์แวร์เรนเดอร์ | อ่านไฟล์. sluggish และส่งออกภาพ. tga ต่อจุดรหัสที่ระบุ |
| ฮาร์ดแวร์เรนเดอร์ | อ่านไฟล์. sluggish และแสดงผล glyphs ที่ระบุมากถึง 6 โดยใช้ opengl |
| คุณสมบัติ | สนับสนุน |
|---|---|
| เส้นโค้งพื้นผิว (FP32) | ใช่ |
| Bands Texture (U16) | ใช่ |
| ตัดร่ายมนตร์เป็นวง (ประสิทธิภาพ) | ใช่ |
| การเรียงลำดับเส้นโค้ง (ประสิทธิภาพ) | ใช่ |
| การใช้งานที่มีคุณภาพสูง | เลขที่ |
| ประสิทธิภาพสูง | เลขที่ |
| การเข้ารหัสจุดลอยตัว 16 บิต | เลขที่ |
| ข้อมูลและการบีบอัดข้อมูล | เลขที่ |
| การจัดวางข้อความ | เลขที่ |
| รูปทรงสี | เลขที่ |
| การสุ่มตัวอย่างซุปเปอร์ | เลขที่ |
| การแก้ไขแกมม่า | เลขที่ |
| รูปหลายเหลี่ยม | เลขที่ |
เป้าหมายคือการรักษาสิ่งต่าง ๆ ให้เรียบง่ายในขณะที่ยังไม่มีการแสดง ที่น่ากลัว ตัวอย่างเช่นการตัดร่ายมนตร์เป็นวงดนตรีได้ถูกนำไปใช้เพราะมันง่ายและปรับปรุงประสิทธิภาพ อย่างหนาแน่น
โดยค่าเริ่มต้นการดำเนินการเป้าหมายของดีบักเกอร์ไม่ได้อยู่ในไดเรกทอรีเอาต์พุต แต่เส้นทางไดเรกทอรีที่ระบุโดยตัวแปรสภาพแวดล้อม SLUGGISH_APP_DIR
ไฟล์. exe และ. pdb ถูกคัดลอกไปยังไดเรกทอรีนั้นหลังจากการสร้างทุกครั้ง
เพื่อให้กระบวนการนี้ง่ายขึ้นคุณสามารถเปิด Visual Studio ผ่านสคริปต์ชุดง่าย ๆ :
:: This file would sit next to the Sluggish directory
cd Sluggishmakefilesvs2013
set SLUGGISH_APP_DIR=C:important_stuffsluggish
Sluggish.sln
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของอัลกอริทึมของ Slug โปรดดูที่:
ฟอนต์ที่เน้น GPU เป็นศูนย์กลางโดยตรงจาก Glyph โครงร่าง โดย Eric Lengyel
วารสารเทคนิคกราฟิกคอมพิวเตอร์ (JCGT), ฉบับที่ 6 ไม่ 2, 31-47, 2017
กระดาษ: http://jcgt.org/published/0006/02/02
สไลด์: http://terathon.com/i3d2018_lengyel.pdf
| โครงการ/ไฟล์ | ใบอนุญาต | ไฟล์ใบอนุญาต |
|---|---|---|
| โครงการนี้ | ไม่เป็นอิสระ (โดเมนสาธารณะ) | unlicense.md |
| SDL 2 | zlib | libs/sdl2/popying.txt |
| เสียงดัง | ใบอนุญาต BSD ที่ได้รับการแก้ไข ใบอนุญาต Mesa 3-D (MIT) ใบอนุญาต Khronos (MIT) | libs/glew/license.txt |
| Premake 5 | Premake 5 | makefiles/premake_license.txt |
| stb_truetype.h | Pick-A-License: ไม่เป็นอิสระ (โดเมนสาธารณะ) มิกซ์ | รหัส/เครื่องกำเนิด/stb_truetype.h |
| stb_image_write.h | Pick-A-License: ไม่เป็นอิสระ (โดเมนสาธารณะ) มิกซ์ | รหัส/renderer_sw/stb_image_write.h |
ในขณะที่ไม่มีสิทธิบัตรเกี่ยวกับอัลกอริทึม Slug ณ เวลาที่เขียน Eric Lengyel ได้ทำการสมัครสำหรับหนึ่งและกระบวนการยังคงดำเนินต่อไป ...