รวบรัด
ตัวอย่าง Vulkan
รหัสคลาวด์
รหัสที่อยู่คลาวด์รหัส
อธิบาย
เริ่มต้นด้วยการดูลำดับหมายเลขลำดับตัวอย่างเช่นจาก 2_triangle , 3_demobase และลำดับสุดท้าย การสาธิตแสดงทีละขั้นตอนวิธีการห่อหุ้ม Vulkan เพื่อให้ใช้งานง่ายขึ้น หากคุณเริ่มอ่านจากหมายเลขซีเรียลที่สูงขึ้นอาจทำให้เกิดปัญหาความเข้าใจในการอ่านเนื่องจากการห่อหุ้มมากเกินไป การสาธิตแต่ละครั้งจะพยายามจับคู่เอกสารตื้นซึ่งจะอธิบายความตั้งใจของการสาธิตอย่างคร่าวๆ
ข้อกำหนดด้านสิ่งแวดล้อม
หน้าต่าง
- CMake 3.13.0: เพียงดาวน์โหลดและติดตั้งเวอร์ชันล่าสุด
- Visual Studio 2017 (64 บิต): ไม่ควรมีปัญหาถ้ามันสูงกว่ามัน
- vulkansdk: https://www.lunarg.com/vulkan-sdk/
แม็กอส
- CMake 3.13.0: เพียงดาวน์โหลดและติดตั้งเวอร์ชันล่าสุด
- XCODE 10: ไม่ควรมีปัญหาที่จะสูงกว่ามัน
- MacOS 10.11 หรือ iOS 9: เนื่องจาก Vulkan ไม่ได้รับการสนับสนุนอย่างเป็นทางการจาก Apple จึงถูกห่อหุ้มด้วยโลหะดังนั้นจึงต้องใช้ระบบ 10.11 หรือสูงกว่า
ลินเวกซ์
- CMake 3.13.0: เพียงดาวน์โหลดและติดตั้งเวอร์ชันล่าสุด
- Ubuntu 18.04: ปัจจุบันฉันใช้ระบบ Ubuntu 18.04 และฉันยังไม่ได้ลองรุ่นอื่น
- VSCODE: ฉันใช้ VSCODE เป็นสภาพแวดล้อมการพัฒนาภายใต้ Ubuntu ฉันได้กำหนดค่าการกำหนดค่า (งาน), build (task) และ debug ภายใต้ vScode แต่ฉันต้องติดตั้งปลั๊กอิน VSCODE C ++ ชื่อปลั๊กอินคือ: C/C ++
การก่อสร้างสภาพแวดล้อมหน้าต่าง
- เอกสารอ้างอิง: https://github.com/boblchen/vulkandemos/blob/master/document/build_windows.md
การก่อสร้างสิ่งแวดล้อม Ubuntu
- เอกสารอ้างอิง: https://github.com/boblchen/vulkantutorials/blob/master/document/build_ubuntu.md
การก่อสร้างสิ่งแวดล้อม MacOS
- เอกสารอ้างอิง: https://github.com/boblchen/vulkantutorials/blob/master/document/build_macos.md
การก่อสร้างสภาพแวดล้อม Android
- เอกสารอ้างอิง: https://github.com/boblchen/vulkantutorials/blob/master/document/build_android.md
การแนะนำ
ตัวอย่าง Vulkan
ความต้องการ
หน้าต่าง
- cmake 3.13.0
- Virtual Studio 2017
- vulkansdk: https://www.lunarg.com/vulkan-sdk/
แม็กอส
- xcode 10
- cmake 3.13.0
- MacOS 10.11 หรือ iOS 9
ลินเวกซ์
Android
- Android Studio 3.2
- NDK R16B
การใช้งาน
บรรทัดคำสั่ง
- git clone https://github.com/boblchen/vulkandemos.git
- CD Vulkandemos
- mkdir build
- บิลด์ซีดี
- cmake ..
cmake-gui
- git clone https://github.com/boblchen/vulkandemos.git
- เปิด cmake-gui
- ซอร์สโค้ดอยู่ที่ไหน: vulkandemos
- สถานที่สร้างไบนารี: vulkandemos/build
- คลิกปุ่มกำหนดค่า
- เลือกเครื่องกำเนิดไฟฟ้าของคุณ
- คลิกปุ่มสร้าง
ตัวอย่าง
2_ สามเหลี่ยม
ที่อยู่บล็อก
3_demobase
ที่อยู่บล็อก
4_optimizeBuffer
ที่อยู่บล็อก
5_optimizeCommandBuffer
ที่อยู่บล็อก
6_imagegui
ที่อยู่บล็อก
7_uniformbuffer
ที่อยู่บล็อก
8_optimizevertexindexbuffer
ที่อยู่บล็อก
9_loadmesh
ที่อยู่บล็อก
10_pipelines
ที่อยู่บล็อก
11_Texture
ที่อยู่บล็อก
12_pushconstants
ที่อยู่บล็อก
13_dynamicuniformbuffer
ที่อยู่บล็อก
14_Texturearray
ที่อยู่บล็อก
15_Texture3d
ที่อยู่บล็อก
16_optimizeshaderandlayout
ที่อยู่บล็อก
17_inputattachments
18_SimpledeDeredRedShading
ที่อยู่บล็อก
- Albedo: vk_format_r8g8b8a8_unorm
- ปกติ: vk_format_r16g16b16a16_sfloat
- ตำแหน่ง: vk_format_r16g16b16a16_sfloat
19_OptimizedEerDredshading
ที่อยู่บล็อก
- Albedo: vk_format_r8g8b8a8_unorm
- ปกติ: vk_format_r8g8b8a8_unorm
- ตำแหน่ง: การสร้างตำแหน่งพื้นที่โลกใหม่จากบัฟเฟอร์เชิงลึก
20_ วัสดุ
ที่อยู่บล็อก
21_stencil
ที่อยู่บล็อก
22_RenderTarget (30 ตัวกรอง)
ที่อยู่บล็อก
23_optimizerEndertarget
ที่อยู่บล็อก
24_edgedetect
ที่อยู่บล็อก
25_bloom
ที่อยู่บล็อก
26_SKELETONMATRIX4X4
ที่อยู่บล็อก
27_SKELETONPACKINDEXWEIGHT
ที่อยู่บล็อก
- แพ็ค 4 ดัชนีกระดูก (UINT32) ถึง 1 UINT32
- แพ็คน้ำหนักกระดูก 4 (ลอย) เป็น 2 UINT32 ลด 5 ลอยต่อจุดสุดยอด
28_Skeletonquat
ที่อยู่บล็อก
- แอนิเมชั่นคู่ Quat ลด 8 ลอยต่อกระดูก จาก matrix4x4 ถึง 2 เวกเตอร์
29_vertextextureskin
ที่อยู่บล็อก
- จัดเก็บข้อมูลโครงกระดูกในพื้นผิวและใช้ในจุดสุดยอด Shader
30_instanceskin
31_msaa
32_fxaa
33_instancedraw
34_simpleshadow
35_pcfshadow
36_omnishadow (Multiview)
37_cascadedshadow
38_indirectDraw
39_occlusionqueries
40_querystatistics
41_computeshader
42_optimizeComputeshader
43_computeparticles
44_computeraytracing
45_computefrustum
46_geometryhouse
47_debugnormal
48_geometryomnishadow
49_SimpleTessellation
50_pntessellation
51_pick
52_hdrpipeline
53_SSAO
54_threadedrendering
55_pbr_directlighting
56_pbr_ibl
57_Godray
58_imposter
59_MotionBlur
60_depthpeeling
61_cpuraytracing
62_rtxraytracingBasic
63_rtxraytracingMesh
64_rtxraytracingsimple
65_rtxraytracingReflection
66_rtxraytracinghitgroup
67_rtxraytracingMontecarlo
68_RTXPathtracing
69_tilebased Forwardrendering
70_SDFFONT
71_shuffleIntrinsics
72_meshlod