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

DirectX เป็นชุด API มัลติมีเดียจาก Microsoft มุ่งเน้นที่นักพัฒนาเกมเป็นหลัก API ยอดนิยมภายในคอลเลกชัน DirectX ได้แก่ Direct3D, XInput และ XAudio

3
วิธีที่เร็วที่สุดในการเรนเดอร์ด้วย AA ความหนาต่างกันใน DirectX
ดังนั้นฉันจึงทำการพัฒนา DirectX บางอย่างโดยใช้ SharpDX ภายใต้. NET เพื่อให้แน่นอน (แต่โซลูชัน DirectX / C ++ API สามารถใช้ได้) ฉันกำลังมองหาวิธีที่เร็วที่สุดในการเรนเดอร์เส้นในการฉายฉากมุมฉาก (เช่นการจำลองการวาดเส้นสองมิติสำหรับแอปเชิงวิทยาศาสตร์) โดยใช้ DirectX สกรีนช็อตของแปลงต่าง ๆ ที่ฉันพยายามจะทำดังนี้ มันไม่ใช่เรื่องแปลกสำหรับการแปลงประเภทนี้มีเส้นที่มีหลายล้านส่วนของความหนาของตัวแปรที่มีหรือไม่มีการลดรอยหยักต่อบรรทัด (หรือเปิด / ปิด AA แบบเต็มหน้าจอ) ฉันจำเป็นต้องอัปเดตจุดยอดสำหรับสายบ่อยมาก (เช่น 20 ครั้ง / วินาที) และถ่ายให้ GPU มากที่สุดเท่าที่จะทำได้ จนถึงตอนนี้ฉันได้ลอง: การแสดงผลซอฟต์แวร์เช่น GDI + จริง ๆ แล้วประสิทธิภาพไม่ดี แต่เห็นได้ชัดว่าหนักบน CPU Direct2D API - ช้ากว่า GDI …
14 2d  directx  shaders 

5
หลีกเลี่ยงถ้างบใน DirectX 10 shaders หรือไม่
ฉันเคยได้ยินว่าถ้างบควรหลีกเลี่ยงใน shaders เพราะทั้งสองส่วนของงบจะดำเนินการและกว่าจะผิดพลาดจะลดลง (ซึ่งเป็นอันตรายต่อประสิทธิภาพการทำงาน) ยังคงเป็นปัญหาใน DirectX 10 หรือไม่ มีคนบอกฉันว่ามีเพียงสาขาที่ถูกต้องเท่านั้นที่จะถูกประหาร สำหรับภาพประกอบฉันมีรหัส: float y1 = 5; float y2 = 6; float b1 = 2; float b2 = 3; if(x>0.5){ x = 10 * y1 + b1; }else{ x = 10 * y2 + b2; } มีวิธีอื่นที่จะทำให้เร็วขึ้นหรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร กิ่งทั้งสองมีลักษณะคล้ายกันความแตกต่างเพียงอย่างเดียวคือค่าของ "ค่าคงที่" ( y1, y2, …

2
เป็นไปได้ไหมที่จะสร้างลูกบาศก์ที่มีจุดยอดน้อยกว่า 24 จุด
ฉันมีโลกแบบลูกบาศก์เช่น Minecraft และฉันสงสัยว่ามีวิธีการสร้างลูกบาศก์ที่มีจุดยอดน้อยกว่า 24 จุดหรือไม่ดังนั้นฉันจึงสามารถลดการใช้หน่วยความจำได้ ฉันดูเหมือนจะเป็นไปไม่ได้ด้วยเหตุผลสองประการ: บรรทัดฐานจะไม่ออกมาอย่างถูกต้องและพื้นผิวต่อหน้าจะไม่ทำงาน เป็นกรณีนี้หรือฉันผิด อาจมีเทคโนโลยี DX11 ใหม่แฟนซีที่ช่วยได้บ้าง แก้ไข: เพื่อชี้แจงฉันมี 2 ข้อกำหนด: ฉันต้องการ normals พื้นผิวสำหรับแต่ละหน้าลูกบาศก์เพื่อให้แสงที่เหมาะสมและฉันต้องการวิธีที่จะระบุดัชนีที่แตกต่างในอาร์เรย์เนื้อสัมผัสสำหรับแต่ละหน้าลูกบาศก์

5
ฉันควรเรียนรู้ Direct3D 9, 10 หรือ 11 หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเพิ่งเริ่มเข้าสู่การเขียนโปรแกรม 3D ด้วย Direct3D ฉันควรรับ D3D รุ่นใด 11 ดูเรียบร้อยสวย แต่ 9 และ 10 ยังคงดูเหมือนว่าสวยอยู่ เมื่อพิจารณาถึงสถานะปัจจุบันของอุตสาหกรรมการพัฒนาเกมแล้วเวอร์ชันใดที่เหมาะสมกว่าที่จะเริ่มใช้งาน
14 directx 

4
หนังสือปัจจุบันของ DirectX (ที่เน้น 3D) คืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว สำหรับ OpenGL รุ่นที่ 5 ของ OpenGL SuperBible เพิ่งเปิดตัวเมื่อไม่กี่เดือนที่ผ่านมาและถือเป็นหนังสือที่ยอดเยี่ยมไม่เพียง แต่จะเรียนรู้ OpenGL 3 (ตอนที่ 1 ของหนังสือ) แต่ยังรวมถึงหัวข้อ OpenGL ขั้นสูงในส่วนต่างๆ 2 และ 3 สำหรับ DirectX เนื้อหาปัจจุบันที่เราควรอ่านเพื่อเรียนรู้คืออะไร? ยินดีต้อนรับหนังสือ & เว็บไซต์พร้อมบทช่วยสอน มีหนังสือทันสมัยเล่มใดบ้างที่ผ่านเวอร์ชั่นปัจจุบันของ DirectX ที่มีไว้สำหรับผู้ชมที่เริ่มต้นด้วยความเข้าใจที่ดีของ C ++ แต่ไม่มีประสบการณ์สำหรับ DirectX เลยหรือไม่? ดูเหมือนว่าสิ่งนี้จะได้รับการยกย่องอย่างสูง: รู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรมเกม 3D ด้วย DirectX 10
14 c++  directx 

1
การบัญชีสำหรับคลื่นเมื่อทำการสะท้อนระนาบ
ฉันได้ศึกษาตัวอย่างของ Nvidia จาก SDK โดยเฉพาะโครงการIsland11และฉันพบบางสิ่งที่อยากรู้เกี่ยวกับรหัส HLSL ชิ้นหนึ่งซึ่งแก้ไขการสะท้อนขึ้นและลงตามสถานะความสูงของคลื่น โดยธรรมชาติหลังจากตรวจสอบย่อหน้าสั้น ๆ ของรหัส: // calculating correction that shifts reflection up/down according to water wave Y position float4 projected_waveheight = mul(float4(input.positionWS.x,input.positionWS.y,input.positionWS.z,1),g_ModelViewProjectionMatrix); float waveheight_correction=-0.5*projected_waveheight.y/projected_waveheight.w; projected_waveheight = mul(float4(input.positionWS.x,-0.8,input.positionWS.z,1),g_ModelViewProjectionMatrix); waveheight_correction+=0.5*projected_waveheight.y/projected_waveheight.w; reflection_disturbance.y=max(-0.15,waveheight_correction+reflection_disturbance.y); การคาดเดาครั้งแรกของฉันคือมันชดเชยการสะท้อนภาพถ่ายเมื่อถูกก่อกวนในแนวดิ่ง (คลื่น) ขยับเรขาคณิตที่สะท้อนกลับไปยังจุดที่ไม่มีอะไรเกิดขึ้นและน้ำจะปรากฏขึ้นราวกับว่าไม่มีอะไรอยู่หรือแค่ท้องฟ้า: ทีนี้, นั่นคือท้องฟ้าที่สะท้อนให้เห็นซึ่งเราควรเห็นการสะท้อนสีเขียว / เทา / เหลืองของภูมิประเทศที่ lerped กับแนวของน้ำ ปัญหาของฉันคือตอนนี้ฉันไม่สามารถระบุได้ว่าอะไรคือตรรกะที่อยู่เบื้องหลัง การคาดการณ์ตำแหน่งอวกาศของโลกที่แท้จริงของจุดของรูปคลื่น / น้ำแล้วคูณด้วย -.5f …

2
วิธีปฏิบัติที่ดีที่สุดสำหรับการตั้งค่าพารามิเตอร์ Effect ใน XNA
ฉันต้องการถามว่ามีวิธีปฏิบัติที่ดีที่สุดสำหรับการตั้งค่าEffectพารามิเตอร์ใน XNA หรือไม่ pass.Apply()หรือกล่าวอีกนัยหนึ่งว่าสิ่งที่เกิดขึ้นเมื่อผมเรียก ฉันจินตนาการถึงหลาย ๆ สถานการณ์: ทุกครั้งที่Applyมีการเรียกพารามิเตอร์เอฟเฟกต์ทั้งหมดจะถูกถ่ายโอนไปยัง GPU และดังนั้นจึงไม่มีผลต่อความถี่ที่ฉันตั้งค่าพารามิเตอร์ แต่ละครั้งApplyจะถูกเรียกเฉพาะพารามิเตอร์ที่ได้รับการรีเซ็ตจะถูกถ่ายโอน ดังนั้นการแคช Set-actions ที่ไม่ได้ตั้งค่าใหม่ควรหลีกเลี่ยง แต่ละครั้งApplyจะถูกเรียกเฉพาะพารามิเตอร์ที่มีการเปลี่ยนแปลงเท่านั้นที่จะถูกถ่ายโอน ดังนั้นการแคชการตั้งค่าจึงไม่มีประโยชน์ คำถามทั้งหมดนี้ไม่มีข้อบกพร่องเนื่องจากไม่มีวิธีการใดวิธีหนึ่งที่กล่าวถึงผลกระทบต่อประสิทธิภาพของเกม ดังนั้นคำถามสุดท้าย: มีประโยชน์หรือไม่หากใช้การแคชของชุดการดำเนินการเช่น: private Matrix _world; public Matrix World { get{ return _world; } set { if (value == world) return; _effect.Parameters["xWorld"].SetValue(value); _world = value; } } ขอบคุณในความคาดหมาย
13 xna  directx  effect 

4
ทำไมคุณถึงใช้การเรนเดอร์ซอฟต์แวร์ผ่านการเรนเดอร์ฮาร์ดแวร์ในวันนี้
ตรงข้ามกับการแสดงผล CPU หรือซอฟต์แวร์ฉันถือว่า? โดยทั่วไปแล้วการแสดงผลในปัจจุบันทั้งหมดจะเป็นไปตาม GPU ใช่ไหมว่าคุณจะใช้ OpenGL หรือ Direct X มีคนให้ข้อมูลฉันที่นี่ไม่พบคำตอบที่เหมาะสมหรือไม่

1
ข้อมูลเกี่ยวกับการเรนเดอร์แบตช์กราฟิกประสิทธิภาพ ฯลฯ + XNA
ฉันรู้ว่าชื่อค่อนข้างคลุมเครือ แต่ก็ยากที่จะอธิบายสิ่งที่ฉันกำลังมองหา แต่ที่นี่ไป เมื่อพูดถึงการเรนเดอร์ CPU ประสิทธิภาพส่วนใหญ่ง่ายต่อการประมาณและตรงไปตรงมา แต่เมื่อพูดถึง GPU เนื่องจากขาดข้อมูลพื้นฐานทางเทคนิค ฉันใช้ XNA ดังนั้นมันคงจะดีถ้าทฤษฎีนั้นเกี่ยวข้องกับเรื่องนั้น ดังนั้นสิ่งที่ฉันอยากรู้จริง ๆ คืออะไรจะเกิดขึ้นเมื่อใดและที่ไหน (CPU / GPU) เมื่อคุณทำการวาดเฉพาะ ชุดคืออะไร? เอฟเฟกต์การคาดการณ์และอื่น ๆ มีอิทธิพลอย่างไร ข้อมูลยังคงอยู่ในกราฟิกการ์ดหรือถูกถ่ายโอนในทุกขั้นตอนหรือไม่ เมื่อมีการพูดถึงแบนด์วิดธ์คุณกำลังพูดถึงแบนด์วิดธ์ภายในการ์ดกราฟิกหรือไปป์ไลน์จาก CPU ไปยัง GPU หรือไม่? หมายเหตุ:ฉันไม่ได้กำลังมองหาข้อมูลเกี่ยวกับวิธีการวาดเกิดขึ้นนั่นคือธุรกิจของ GPU ฉันสนใจค่าใช้จ่ายทั้งหมดที่อยู่ก่อนหน้านั้น ฉันต้องการที่จะเข้าใจสิ่งที่เกิดขึ้นเมื่อฉันทำการกระทำ X เพื่อปรับสถาปัตยกรรมและการปฏิบัติของฉันให้เป็นแบบนั้น บทความใด ๆ (อาจมีตัวอย่างโค้ด) ข้อมูลลิงค์บทช่วยสอนที่ให้ข้อมูลเชิงลึกมากขึ้นเกี่ยวกับวิธีการเขียนเกมที่ดีขึ้นได้รับการชื่นชมอย่างมาก ขอบคุณ :)

3
ฉันจะใช้กล้องของบุคคลที่หนึ่งได้อย่างไร
ฉันเป็นโปรแกรมเมอร์มือใหม่และฉันกำลังสร้างโปรเจ็กต์ที่ช่วยให้ฉันเดินไปรอบ ๆ ห้องด้วยกล้องตัวแรก จนถึงตอนนี้ฉันมีอาคารที่ถูกวาดขึ้นมาแล้ว แต่ตอนนี้ฉันติดอยู่และไม่รู้ว่าจะสร้างกล้องตัวแรกเพื่อให้ฉันเดินไปรอบ ๆ ได้อย่างไร ใครช่วยชี้ให้ฉันไปที่ชั้นเรียนกล้องที่ฉันสามารถใช้หรือรหัสที่มีประโยชน์?
12 c++  directx  camera 

6
ไม่มีใครเขียนเกมใน Delphi หรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเป็นนักพัฒนา Delphi ที่มีประสบการณ์มาก (มากกว่า 12 ปีมีประสบการณ์ไม่นับประสบการณ์ Turbo Pascal ของฉัน) และสงสัยว่าไม่มีใครเขียนเกมใน Delphi หรือไม่? ฉันเคยเห็น DirectX API wrappers ใน Delphi ที่อนุญาตให้คุณเขียนโปรแกรมกับ DirectX (แม้จะเขียนเกมเล่นไพ่คนเดียวกับเพื่อน) แต่ยังไม่เห็นอะไรเลยที่แสดงว่าฉันควรติดตาม Delphi ฉันเกลียดที่จะเดินออกไปจากความรู้และภาษา Object Pascal มาก แต่ฉันไม่เห็นเหตุผลที่จะไปกับ Delphi มากนัก ฉันกำลังเขียนโปรแกรมใน C # และคิดถึง XNA แต่สำหรับฉันแล้วความคิดเห็นที่มีอิทธิพลเหนือกว่าคือเส้นทาง C / C ++ ด้วย DirectX …
12 directx  platform 

8
เริ่มต้นกับ 2d Game Dev (C ++): DirectX หรือ OpenGL หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ดังนั้นฉันเป็นนักเรียนที่กำลังมองหาที่จะก้าวเข้ามาใกล้ประตูของการพัฒนาเกมและฉันกำลังมองหาที่จะทำบางสิ่งบางอย่าง 2D อาจเป็น tetris / ผู้รุกรานพื้นที่ / โคลน - โต้ตอบกับเมาส์บางสิ่งบางอย่าง ฉันชี้การค้นหาของฉันไปในทิศทางของ C ++ และ 2d และในที่สุดก็นำไปสู่ ​​DirectX / OpenGL ตอนนี้เมื่อฉันเข้าใจแล้วแพ็คเกจเหล่านี้ทั้งหมดจะทำเพื่อฉันคือการวาดสิ่งบนหน้าจอ และนั่นคือทั้งหมดที่ฉันสนใจจริงๆ ณ จุดนี้ ไม่จำเป็นต้องใช้เสียง อินพุตสามารถจัดการได้ด้วย stdlib ดังนั้นสำหรับผู้เริ่มต้นที่พยายามสร้างเกมพื้นฐานใน C ++ คุณจะแนะนำ DirectX หรือ OpenGL หรือไม่ ทำไม? ฟีเจอร์หลักบางอย่างแตกต่างกันระหว่างสองคุณสมบัตินี้? ข้อใดใช้งานได้มากกว่า
12 c++  opengl  directx 

5
API สะพานที่ไม่เชื่อเรื่องพระเจ้า (เช่น OpenGL / D3D / อะไรก็ตาม) คุณใช้มันอย่างไรคุณสร้างมันขึ้นมา Pro's and Con's [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา คุณกำลังสร้างเอนจิ้น 3 มิติ คุณต้องการโลกที่หลากหลายที่สุด ทันใดนั้นคุณก็รู้ว่าถ้าคุณต้องการใช้ Direct3D บนเครื่อง Windows และ OpenGL บน OSX / Linux คุณจะต้องเสียสละคุณสมบัติที่รองรับของตัวหารที่ใช้ร่วมกันให้น้อยที่สุด บางคนอาจใช้ OpenGL ในสามระบบปฏิบัติการ 'เพราะมันดูเหมือนจะเป็นตัวหารร่วมน้อยที่สุดด้วยตัวเอง ทั้งหมดเป็นสิ่งที่ดี. จากนั้นคุณต้องพอร์ตกราฟิก API ของคุณไปที่ GX ของ Nintendo คุณต้องสร้างเส้นทาง PS3 และ Xbox360 ด้วย คุณทำอะไร? คุณออกแบบ API ของคุณเองซึ่งเป็นตัวหารน้อยที่สุดในตัวเองและเขียนการใช้งานแบ็กเอนด์สำหรับแต่ละแพลตฟอร์มหรือคุณเขียนสำหรับแต่ละแพลตฟอร์มเป็นสาขาของตัวเองหรือไม่? หากคุณเลือกที่จะออกแบบ API ของคุณเองคุณใช้รูปแบบบริดจ์หรือวูดูของคุณเองหรือไม่ ความบ้าคลั่งหยุดอยู่ที่ไหนที่คุณตระหนักถึงทุกสิ่งและวิธีการอ่างล้างจานในครัวจะต้องหยุดและคุณมีเครื่องมือแยกต่างหากสำหรับแต่ละแพลตฟอร์มเป็นสาขา หรือคุณยึดติดกับทุกอย่างและอ่างล้างจานในครัวและเก็บเฉพาะแพลตฟอร์มไว้ในความเชี่ยวชาญของโมดูลแบ็กเอนด์สำหรับแต่ละแพลตฟอร์ม

1
อนุพันธ์ของอวกาศสกรีนคืออะไรและเมื่อใดที่ฉันจะใช้
ฉันเห็นฟังก์ชั่นddxและddyglsl และการเทียบเท่า hlsl เกิดขึ้นในรหัส shader ทุก ๆ ครั้งแล้ว ขณะนี้ฉันกำลังใช้พวกมันเพื่อทำแผนที่ bump โดยไม่มีการแทนเจนต์หรือ bitangent แต่โดยทั่วไปฉันคัดลอกวางโค้ด ฉันไม่เข้าใจว่าฟังก์ชั่นเหล่านี้คืออะไรพวกเขาทำอะไรและเมื่อใดที่ฉันจะใช้มัน ดังนั้นคำถาม: ฟังก์ชันอนุพันธ์หน้าจอคืออะไร? ฟังก์ชั่นเหล่านี้ทำอะไร? ค่าอินพุตและค่าเอาต์พุต ลักษณะพิเศษใดที่ใช้บ่อยที่สุด เอฟเฟกต์ประเภทใดที่คุณต้องมองไปที่ฟังก์ชันเหล่านี้

2
อัพเดตและแสดงผลในเธรดแยกกัน
ฉันกำลังสร้างเอ็นจิ้นเกม 2D ง่าย ๆ และฉันต้องการอัปเดตและแสดงสไปรต์ในชุดข้อความต่างๆเพื่อเรียนรู้วิธีการทำงาน ฉันต้องการซิงโครไนซ์เธรดการอัพเดทและเรนเดอร์หนึ่ง ปัจจุบันฉันใช้แฟล็กอะตอมสองอัน เวิร์กโฟลว์มีลักษณะดังนี้: Thread 1 -------------------------- Thread 2 Update obj ------------------------ wait for swap Create queue ---------------------- render the queue Wait for render ------------------- notify render done Swap render queues ---------------- notify swap done ในการตั้งค่านี้ฉัน จำกัด FPS ของเธรดการแสดงผลเป็น FPS ของเธรดการปรับปรุง นอกจากนี้ฉันใช้sleep()เพื่อ จำกัด ทั้งเรนเดอร์และอัปเดต FPS ของเธรดเป็น …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.