เอกสารนี้แสดงวิธีเริ่มต้นใช้งานไลบรารีกราฟิก Vulkan ด้วยการดาวน์โหลด คอมไพล์ และเรียกใช้แอป Khronos© ตัวอย่าง
สิ่งที่ต้องมีก่อน
ก่อนเริ่มต้น โปรดเตรียมเวอร์ชันฮาร์ดแวร์และแพลตฟอร์มที่ถูกต้อง คุณควรใช้อุปกรณ์หรือโปรแกรมจำลองที่รองรับ Vulkan ที่ใช้ Android 7.0 (Nougat), API ระดับ 24 ขึ้นไป
คุณยืนยันเวอร์ชัน Android ได้โดยไปที่เมนูการตั้งค่า และเลือกเกี่ยวกับโทรศัพท์ > เวอร์ชัน Android เมื่อคุณยืนยันว่า คุณได้ตั้งค่าเวอร์ชันฮาร์ดแวร์และแพลตฟอร์มที่ถูกต้อง คุณจะสามารถดาวน์โหลดซอฟต์แวร์ที่จำเป็นได้
ดาวน์โหลด
ก่อนที่จะเริ่มต้น คุณต้องดาวน์โหลดเครื่องมือและซอฟต์แวร์อื่นๆ หลายรายการ โปรดทราบว่าโฮสต์ของ Windows ขอแนะนําให้คุณหลีกเลี่ยงลําดับชั้นของเส้นทางไฟล์ในระดับที่ลึกสําหรับเครื่องมือและซอร์สโค้ด เพื่อแก้ปัญหาขีดจำกัดเส้นทางของไฟล์ในระบบปฏิบัติการ Windows บางเวอร์ชัน
- หากยังไม่มี Android Studio โปรดดาวน์โหลด ซึ่งรวมถึง Android SDK ล่าสุดด้วย
- ติดตั้ง NDK และ CMake จากภายใน Android Studio หรือดาวน์โหลดและติดตั้งแยกต่างหาก
- สร้างและเรียกใช้ตัวอย่าง Hello JNI เพื่อตรวจสอบว่า Android Studio ทำงานอย่างถูกต้อง
- ติดตั้ง Python3 และคอมโพเนนต์อื่นๆ ที่ระบุไว้ใน build.md สำหรับแพลตฟอร์มโฮสต์ของคุณ
นำเข้า
ในส่วนนี้ คุณจะได้ดาวน์โหลดที่เก็บตัวอย่าง Khronos© Vulkan© เพื่อสร้าง Gradle สำหรับ Android แล้วเปิดด้วย Android Studio IDE
- ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้
export ANDROID_HOME=/path/to/sdk-directory export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
- เพิ่ม CMake ลงใน $PATH ซึ่งใช้สร้างสคริปต์บิลด์ของ Android
export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
- เปิดเทอร์มินัลและดาวน์โหลดซอร์สโค้ดไปยังไดเรกทอรีการพัฒนาของคุณ:
cd dev-directory git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
- ทำตามวิธีการเหล่านี้ (จาก Build.md)
เพื่อสร้างโปรเจ็กต์ตัวอย่าง Android ให้ทำดังนี้
cd Vulkan-Samples ./scripts/generate.py android
- เปิด Android Studio เลือก ไฟล์ > เปิดและเลือก
Vulkan-Samples/build/android_gradle/build.gradle
คุณจะเห็นบางอย่างที่คล้ายกับข้อความต่อไปนี้หลังจากโหลด Android Studio โปรเจ็กต์:รูปที่ 1 โปรเจ็กต์ตัวอย่างใน Android Studio
คอมไพล์
ตัวอย่างทั้งหมดในที่เก็บนี้จัดอยู่ในโปรเจ็กต์ Android โปรเจ็กต์เดียว วิธีคอมไพล์ ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
- หากต้องการคอมไพล์แหล่งที่มาเท่านั้น ให้ใช้เมนู สร้าง > สร้างโปรเจ็กต์ หรือพิมพ์แป้นพิมพ์ลัด Ctrl-F9
- ในการสร้าง APK ตัวอย่าง ให้เลือกเมนู สร้าง > สร้าง Bundle/APK > สร้าง APK
คุณควรเห็นข้อความว่าสำเร็จของบิลด์ภายในหน้าต่าง Build ของ Android Studio ในกรณีที่เกิดข้อผิดพลาด ให้แก้ไขและคอมไพล์อีกครั้ง
ดำเนินการ
ก่อนที่จะเรียกใช้โปรเจ็กต์ตัวอย่าง โปรดตรวจสอบว่า Android Studio จดจำ อุปกรณ์ Vulkan หรือ Android Emulator ที่เชื่อมต่ออยู่ คุณจะเห็นบางอย่าง เช่น ดังต่อไปนี้:
ในการเรียกใช้โปรเจ็กต์ ให้ทำดังนี้
- ใช้เมนู เรียกใช้ > เรียกใช้ vulkan_sample หรือคลิกปุ่มเรียกใช้ บนแถบเครื่องมือ และรอให้ ตัวอย่างเพื่อติดตั้งและเริ่มต้นใช้งานอุปกรณ์ที่เชื่อมต่อ
- ให้สิทธิ์คำขอเข้าถึงที่จำเป็นในอุปกรณ์ Android ที่เชื่อมต่อ
- เปิดใช้อนุญาตให้เข้าถึงเพื่อจัดการไฟล์ทั้งหมด จากนั้นแตะลูกศรปุ่มย้อนกลับ เพื่อกลับไปยังหน้าจอหลักตัวอย่าง
- อนุญาตการเข้าถึงดิสก์:
รูปที่ 4 เปิดใช้การเข้าถึงดิสก์
- คุณควรจะเห็นตัวอย่างหน้าจอเมนูหลัก ซึ่งคล้ายกับตัวอย่างด้านล่างนี้
รูปที่ 5 ตัวอย่างเมนูหลัก - เลื่อนดูรายการตัวอย่าง และเลือกเรียกใช้รายการ 2-3 รายการ
หากเพิ่งเริ่มใช้การพัฒนา Vulkan คุณอาจเริ่มต้นด้วยตัวอย่าง “API”
เช่น การแตะ "Hey Triangle" ควรแสดงรูปสามเหลี่ยมที่แสดงผล
ที่คล้ายกับข้อความต่อไปนี้
รูปที่ 6 ตัวอย่างสวัสดี Triange
ขณะนี้ระบบการพัฒนาของคุณตั้งค่าให้เรียกใช้ตัวอย่างบนอุปกรณ์ทดสอบแล้ว
Vulkan Sample ได้รับการพัฒนาขึ้นสำหรับระบบปฏิบัติการหลายระบบ รวมถึงระบบปฏิบัติการต่างๆ ทั้งเดสก์ท็อปและอุปกรณ์เคลื่อนที่ ตัวอย่างบางส่วนในส่วนประสิทธิภาพ ส่วนขยาย และ เครื่องมืออาจไม่เสถียรและขัดข้องในอุปกรณ์ อาจเกิดจากสาเหตุหลายประการ เช่น เป็น:
- ฟีเจอร์ Vulkan ที่เฉพาะเจาะจงไม่ได้ออกแบบมาสำหรับ Android
- ระบบไม่รองรับเวอร์ชันระบบปฏิบัติการ Android ของคุณ
- ความสามารถของ GPU ของแพลตฟอร์มฮาร์ดแวร์
สำรวจ
ส่วน Java ของตัวอย่าง Vulkan มาจากคลาส NativeActivity ผ่านแอปพลิเคชันทั่วไป เหตุการณ์ในวงจร เช่น การสร้างแอป เริ่ม หยุด และทำลายลงใน C/C++ โค้ด ในส่วน C/C++ ของตัวอย่างจะมีตัวอย่างเฟรมเวิร์ก ที่ใช้ฟังก์ชันการสลับตัวอย่างย่อยขณะรันไทม์ น้อยมาก กิจกรรม/ข้อความในระบบ Android จะต้องอยู่ในเส้นทางต่อไปนี้ เข้าถึงโค้ด Vulkan ของแอปตัวอย่าง:
- ส่วน Java
NativeSampleActivity
- ส่วน C/C++
NativeSampleActivity
ส่วน android_native_glue
รหัสandroid_main
- ตัวอย่างเฟรมเวิร์ก
- โค้ดของตัวอย่างย่อยแต่ละรายการ
android_main
คือบริดจ์ระหว่าง NativeSampleActivity
กับโค้ดของแอป
ซึ่งจะเป็นจุดเริ่มต้นให้คุณทำตามโค้ดตัวอย่างได้ หากคุณเพิ่ง
มุ่งเน้นไปที่แหล่งที่มาที่เฉพาะเจาะจงของ Vulkan คุณสามารถสำรวจโค้ดได้ใน
Vulkan_Samples\samples
ซึ่งมีข้อมูลต่อไปนี้
- ตัวอย่างหมวดหมู่ "api"
- ตัวอย่างหมวดหมู่ "ประสิทธิภาพ"
- ตัวอย่างหมวดหมู่ "ส่วนขยาย"
- ตัวอย่างของ “เครื่องมือ”
Vulkan_Samples\shaders
เป็นบ้านสำหรับผู้ให้เฉดสีทั้งหมด
คุณสามารถเริ่มเรียกดูตัวอย่างหมวดหมู่ “API” เพื่อทำความคุ้นเคยกับ การใช้งาน Vulkan และเฟรมเวิร์กตัวอย่าง จากนั้นคุณจะสามารถไปยัง ตัวอย่างหมวดหมู่ "ประสิทธิภาพ" และ "การขยายการใช้งาน" สำหรับโค้ดตัวปรับแสงเงา คุณสามารถใช้ มุมมองโปรเจ็กต์ใน Android Studio
แหล่งข้อมูลเพิ่มเติม
Vulkan API ผ่านการใช้งาน 2-3 เวอร์ชัน จึงเริ่มพัฒนาขึ้นเรื่อยๆ วัลคาน คณะกรรมการมาตรฐานและชุมชน Vulkan ได้สร้างชุด Vulkan มากมาย ที่สาธิตการใช้งานและแนวทางปฏิบัติที่ดีที่สุดของ API ดังต่อไปนี้ รายการมีทรัพยากรบางส่วนสำหรับการพัฒนาแอปพลิเคชัน Vulkan
ข้อกำหนดของ Vulkan Khronos Group รักษาข้อกำหนด Vulkan โปรดดู หน้าแรกของ Vulkan เพื่อดูข้อกำหนดทั้งหมด การฝึกอบรม, คู่มือ และวิดีโอบทแนะนำ
เลเยอร์การตรวจสอบ เลเยอร์การตรวจสอบความถูกต้องเป็นสิ่งจำเป็นสำหรับการพัฒนาแอปพลิเคชัน ดูเลเยอร์การตรวจสอบ Vulkan ใน Android
Shaderc โค้ด Shaderc ใน NDK คือดาวน์สตรีมของ ที่เก็บ Shaderc สำหรับเอกสารการใช้งาน และคำแนะนำในการดาวน์โหลดเวอร์ชันล่าสุด โปรดดู Shader Compiler