ฉันพัฒนาโปรแกรมเกมของตัวเองเพื่อความสนุก (แต่ไม่หวังผลกำไร) ฉันมีการแสดงผลในหนึ่งเธรดและกราฟฉากของฉันอัปเดต (ความเร็ว ฯลฯ ) ในอีกอันหนึ่ง เมื่อถึงเวลาที่จะแสดงผลเธรดการแสดงผลจะเพิ่มโหนดที่มองเห็นให้กับบัฟเฟอร์เชิงเส้นใหม่และข้ามไป
รายละเอียดเพิ่มเติมกราฟฉากของฉันถูกแบ่งเป็นสามส่วน แต่ละโหนดในกราฟฉากของฉันมีสามชุดของเมทริกซ์การแปลงแบบสัมพัทธ์และสัมบูรณ์ (4x4) ณ เวลาใดเวลาหนึ่งจะมีการคัดลอกหนึ่งชุดโดยเธรดกราฟฉากหนึ่งชุดจะถูกอ่านโดย renderer และชุดที่สามมีอยู่เพื่อให้ผู้อ่านหรือนักเขียนสามารถย้ายไปยังหน้าถัดไปได้โดยไม่ต้องรออีกชุดหนึ่ง สิ่งนี้จะช่วยป้องกันการเขียนไปยังบางสิ่งในขณะที่กำลังแสดงผลและจากการแสดงกราฟฉากที่อัปเดตครึ่ง ยังไงก็เถอะฉันก็ได้สำเนาที่สี่ของแต่ละเมทริกซ์เพื่อให้ผู้ใช้ทำงานด้วยเพื่อไม่ให้ขัดแย้งกับเธรดการอัพเดต ดูเหมือนว่าจะทำงานได้ดีโดยหลีกเลี่ยงการซิงโครไนซ์ตลอดเวลา
อย่างไรก็ตามนี่เป็นระเบียบ
นี่คือเป้าหมายสูงสุดของฉันสำหรับระบบ:
- กราฟแสดงผลและการอัปเดตจะอยู่ในชุดข้อความแยกกัน
- ลดจำนวนเธรดเหล่านี้ให้เล็กลง
- อย่าแสดงฉากที่ได้รับการอัปเดตครึ่งทางโดยชุดอัพเดท สิ่งนี้จะสังเกตเห็นได้ชัดเจนเป็นพิเศษหากกล้องกำลังเคลื่อนไหวอย่างรวดเร็วและบางครั้งก็แสดงผลก่อนหรือหลังการอัพเดต
- การใช้งานหน่วยความจำลดลง ฉันมีเมทริกซ์ต่อโหนดมากเกินไป ฉันกำลังพิจารณาที่จะย้ายไปที่เวกเตอร์สำหรับตำแหน่ง / การหมุน / มาตราส่วนเนื่องจากการเพิ่มจุดลอยตัวด้วยเมทริกซ์
- ความสามารถในการจัดการหมื่นโหนด ระบบปัจจุบันทำได้ดีพอสมควร
ฉันหวังว่าจะรวม Bullet (เอนจิ้นฟิสิกส์) และการสร้างเครือข่ายในอนาคตซึ่งฉันไม่ได้คิดมาก
มีวิธีใดบ้างที่จะทำให้กราฟซีนดีขึ้น