คำถามติดแท็ก selection

4
ส่งเรย์เพื่อเลือกบล็อกในเกม voxel
ฉันกำลังพัฒนาเกมที่มีภูมิประเทศคล้าย Minecraft ที่ทำจากบล็อก เนื่องจากการเรนเดอร์พื้นฐานและการโหลดชิ้นข้อมูลเสร็จสิ้นแล้วฉันต้องการใช้การเลือกบล็อก ดังนั้นฉันจึงต้องค้นหาว่าบล็อกใดที่กล้องตัวแรกกำลังเผชิญอยู่ ฉันได้ยินมาแล้วว่าไม่ได้คาดเดาฉากทั้งหมด แต่ฉันตัดสินใจว่าเพราะมันฟังดูแฮ็คและไม่ถูกต้อง บางทีฉันอาจโยนรังสีไปในทิศทางที่มองเห็นได้ แต่ฉันไม่รู้วิธีตรวจสอบการชนด้วยบล็อกในข้อมูล voxel ของฉัน แน่นอนว่าการคำนวณนี้ต้องทำบน CPU เนื่องจากฉันต้องการผลลัพธ์เพื่อดำเนินการกับเกมลอจิก แล้วฉันจะรู้ได้อย่างไรว่าบล็อกไหนอยู่หน้ากล้อง? ถ้าเป็นที่ต้องการฉันจะโยนรังสีและตรวจสอบการชนได้อย่างไร

6
จะทำให้วงการเลือกหน่วยผสานได้อย่างไร
ฉันต้องการทราบวิธีทำให้ลักษณะพิเศษนี้ของการเลือกแวดวงที่ผสาน นี่คือภาพเพื่อแสดง: โดยทั่วไปฉันกำลังมองหาผลกระทบนี้: วิธีการรวมกลมกลืนของวงกลมสามารถทำได้อย่างไร ฉันไม่พบคำอธิบายใด ๆ เกี่ยวกับผลกระทบนี้ ฉันรู้ว่าเพื่อฉายภาพพื้นผิวเหล่านั้นฉันสามารถพัฒนาระบบรูปลอก แต่ฉันไม่รู้วิธีสร้างเอฟเฟกต์การผสาน ถ้าเป็นไปได้ฉันกำลังมองหาวิธีแก้ปัญหาอย่างหมดจด

3
วิธีซ่อนโครงร่างหลังการประมวลผลเมื่อ / ตำแหน่งที่ซ่อนตาข่าย
ฉันกำลังทำงานเกี่ยวกับการตั้งค่าเค้าร่างที่ใช้งานอยู่ในเอนจิ้น 3 มิติของฉันเอฟเฟกต์ไฮไลท์สำหรับตัวละคร 3 มิติที่เลือกหรือฉากในหน้าจอ หลังจากทำงานกับ stencil buffer และรับผลลัพธ์ที่น่าพอใจ (ปัญหาเกี่ยวกับรูปร่างเว้าความหนาของร่างเนื่องจากระยะห่างจากกล้องและความไม่สอดคล้องระหว่างเดสก์ท็อปและแล็ปท็อปของฉัน) ฉันเปลี่ยนไปใช้การตรวจจับขอบและการสุ่มเฟรมบัฟเฟอร์ ค่อนข้างพอใจกับ อย่างไรก็ตามฉันไม่สามารถซ่อนเค้าร่างเมื่อตาข่ายที่เลือกอยู่ด้านหลังตาข่ายอื่น สิ่งนี้สมเหตุสมผลสำหรับกระบวนการของฉันเนื่องจากฉันเพียงแค่สร้างโครงร่าง 2 มิติจากเฟรมบัฟเฟอร์หลังจากเรนเดอร์ส่วนที่เหลือของฉาก การจับภาพหน้าจอสองรายการของฉันอยู่ด้านล่าง ที่แรกก็คือเค้าร่าง "ดี" ที่สองคือที่เห็นร่างอยู่เหนือตาข่ายที่บล็อกแหล่งที่มาเค้าร่าง กระบวนการเรนเดอร์ทำงานดังนี้: 1) วาดเฉพาะอัลฟาของตาข่ายที่ไฮไลต์เพื่อบันทึกภาพเงาดำในบัฟเฟอร์เฟรม (framebuffer1) 2) ส่ง texture จาก framebuffer1 ไปยัง shader ตัวที่สองซึ่งทำการตรวจจับขอบ จับขอบใน framebuffer2 3) แสดงฉากทั้งหมด 4) แสดงพื้นผิวจาก framebuffer2 ที่ด้านบนของฉาก ฉันมีแนวคิดเล็กน้อยเกี่ยวกับวิธีการทำให้สำเร็จและหวังว่าจะได้รับคำติชมเกี่ยวกับความถูกต้องของพวกเขาหรือวิธีการที่ง่ายกว่าหรือดีกว่า ก่อนอื่นฉันคิดว่าจะทำให้ฉากทั้งหมดเป็นบัฟเฟอร์เฟรมและเก็บเงาที่มองเห็นได้ของตาข่ายที่ถูกไฮไลต์ในช่องอัลฟา (สีขาวทั้งหมดจะบันทึกที่ที่ตาข่ายที่ไฮไลต์มองเห็น) จากนั้นฉันจะทำการตรวจจับขอบบนช่องอัลฟาทำการเรนเดอร์เฟรมบัฟเฟอร์ฉากแล้วทำการเรนเดอร์ขอบด้านบน ส่งผลให้บางสิ่งเช่นนี้: เพื่อให้บรรลุผลนี้ฉันคิดว่าการตั้งค่ากำหนดเฉพาะในระหว่างการส่งเรนเดอร์ของวัตถุที่ไฮไลต์ที่จะวาดสีดำทั้งหมดในอัลฟาสำหรับพิกเซลที่มองเห็นได้ แนวคิดที่สองของฉันคือการใช้กระบวนการเรนเดอร์ปัจจุบันตามที่ระบุไว้ข้างต้น แต่ยังเก็บพิกัด X, Y …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.