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

DirectX 11 เป็น API กราฟิกหลักสำหรับแพลตฟอร์ม Microsoft รวมถึง Windows, Xbox One และ Windows phone


3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

3
ฉันควรใช้ shaders ที่ใช้งานอยู่ในเฟรมเดียวในเกมเดียว 5 ขึ้นไปเช่น 100
ในช่วงเวลาเดียวกันในหนึ่งฉากมีเกมที่ทันสมัย ฉันรู้ว่ามีการใช้เฉดสีหลายแบบโดยมีเกมสลับระหว่างพวกเขาในแต่ละเฟรมและเป็นเรื่องธรรมดาที่จะวาดวัตถุผ่าน shader: วาดวัตถุทั้งหมดด้วย shader หนึ่ง เปลี่ยนจาก shader หนึ่งเป็น shader สอง วาดวัตถุทั้งหมดด้วย shader สอง ถึงกระนั้นฉันก็รู้ว่ามันไม่ง่ายโดยเฉพาะอย่างยิ่งกับเอฟเฟ็กต์เช่นเอฟเฟ็กต์แสงสำหรับฉากทั้งหมดการเรนเดอร์ไปสู่พื้นผิว ฯลฯ แต่ฉันคิดว่าเราสามารถสันนิษฐานได้ว่า วิธีการ "กลุ่มโดย shader" เป็นสิ่งที่ดีเพราะการเปลี่ยนเฉดสีเป็นการดำเนินการที่มีราคาแพง จากด้านหนึ่งคุณไม่สามารถมีเฉดสีมากเกินไปเพราะคุณต้องการทำให้ฉากนั้นรวดเร็ว ในทางกลับกันคุณจำเป็นต้องมีเฉดสีที่แตกต่างกันมากมาย (หรือ uber-shader ที่มีกิ่ง - คล้ายกันมาก) สำหรับผิวหนังโลหะน้ำ ฯลฯ เกมประเภทนักสืบสามมิติ (และอันใด) ที่แตกต่างกันทางทฤษฎีเกมสมัยใหม่นักสืบสามมิติสำหรับพีซี (DirectX 11 ถ้ามีความสำคัญ) จะใช้งานอย่างไร มันจะเป็น 5, 20 หรือมากกว่าเช่น 100 shaders ที่ใช้งานอยู่นับเฉพาะการใช้งานที่บางเฟรม ""? ฉันรู้ว่ามันไม่ใช่หมายเลขหนึ่ง แต่ฉันสงสัยว่าขนาดและปัจจัยใดที่มีความสำคัญในการพิจารณาสำหรับเกมพีซี ในเกมตัวอย่างของฉันฉันจะใช้ประมาณ 9-11 ต่อเฟรม …

7
หนังสือ Shader ที่ทันสมัย? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันสนใจที่จะเรียนรู้เกี่ยวกับ Shaders: พวกเขาจะใช้อะไรเมื่อไหร่และจะใช้อะไรและจะใช้อย่างไร (โดยเฉพาะฉันสนใจผลของ Water and Bloom แต่ฉันรู้ใกล้เคียงกับ 0 เกี่ยวกับ Shaders ดังนั้นฉันต้องมีการแนะนำทั่วไป) ฉันเห็นหนังสือมากมายที่มีอายุสองสามปีดังนั้นฉันจึงไม่รู้ว่าพวกเขายังใช้อยู่หรือไม่ ฉันกำลังกำหนดเป้าหมาย XNA 4.0 ในขณะนี้ (ซึ่งฉันเชื่อว่าหมายถึง HLSL Shader สำหรับ Shader Model 4.0) แต่สิ่งใดก็ตามที่เป็นเป้าหมายของ DirectX 11 และ OpenGL 4 จะเป็นประโยชน์จริง ๆ ฉันคิดว่า

4
HDR ทำงานอย่างไร
ฉันพยายามเข้าใจว่า HDR คืออะไรและทำงานอย่างไร ฉันเข้าใจแนวคิดพื้นฐานและมีความคิดเล็กน้อยเกี่ยวกับวิธีการนำไปใช้กับ D3D / hlsl อย่างไรก็ตามมันยังคงมีหมอกสวย สมมติว่าฉันแสดงทรงกลมด้วยพื้นผิวโลกและรายการจุดเล็ก ๆ เพื่อทำตัวเป็นดาวฉันจะแสดงสิ่งนี้ใน HDR ได้อย่างไร นี่คือบางสิ่งที่ฉันสับสนเกี่ยวกับ: ฉันเดาว่าฉันไม่สามารถใช้รูปแบบภาพพื้นฐานใด ๆ กับพื้นผิวได้เนื่องจากค่าจะถูก จำกัด ที่ [0, 255] และถูกจับไปที่ [0, 1] ในรูปแบบ กันไปสำหรับบัฟเฟอร์ด้านหลังฉันคิดว่ารูปแบบต้องเป็นรูปแบบจุดลอยตัวหรือไม่ ขั้นตอนอื่น ๆ ที่เกี่ยวข้องมีอะไรบ้าง แน่นอนว่าจะต้องมีมากกว่าการใช้รูปแบบจุดลอยตัวเพื่อเรนเดอร์ไปยังเป้าหมายเรนเดอร์จากนั้นใช้การเบ่งบานเป็นกระบวนการโพสต์? (พิจารณาผลลัพธ์จะเป็น 8bpp อยู่ดี) โดยพื้นฐานแล้ว HDR มีขั้นตอนอย่างไรบ้าง? มันทำงานยังไง? ฉันไม่สามารถหาบทความ / บทความที่ดีที่อธิบายกระบวนการนอกเหนือไปจากบทความนี้ได้แต่ดูเหมือนว่าจะเรียดเรื่องพื้นฐานเล็กน้อยดังนั้นมันจึงสับสน
17 c++  hlsl  directx11  hdr 

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

1
DirectX11 ที่ไม่มีหน้าต่างติดอยู่?
ฉันแค่สงสัยว่าถ้าเป็นไปได้ที่จะเริ่มต้นและใช้ DX11 หรือ DX9 สำหรับการเรนเดอร์ออฟเซ็ตเท่านั้น - หมายถึงไม่มีหน้าต่างที่แนบมา ฉันตั้งใจจะทำการเปรียบเทียบ GPU ก่อนที่จะเปิดหน้าต่างจริง ในการเปรียบเทียบนี้ฉากทดสอบบางส่วนได้รับการแสดงผล แต่ไม่ควรมองเห็นได้ (ที่จริงขึ้นอยู่กับคะแนนมาตรฐานที่แตกต่างกันเปิดหน้าต่าง)
13 c++  directx11 

2
DirectX11 ฉันจะจัดการและอัปเดตบัฟเฟอร์คงที่หลายส่วนได้อย่างไร
เอาล่ะฉันมีเวลายากที่จะเข้าใจว่าบัฟเฟอร์คงที่จะถูกผูกไว้กับขั้นตอนท่อและปรับปรุง ฉันเข้าใจว่า DirectX11 สามารถมีบัฟเฟอร์คงที่ได้ถึง 15 shader ต่อสเตจและแต่ละบัฟเฟอร์สามารถเก็บค่าคงที่ได้มากถึง 4096 ค่า อย่างไรก็ตามฉันไม่เข้าใจว่า ID3D11Buffer COM ที่ใช้ในการโต้ตอบกับบัฟเฟอร์คงที่เป็นเพียงกลไก (หรือที่จับ) ที่ใช้สำหรับเติมช่องบัฟเฟอร์เหล่านี้หรือถ้าวัตถุอ้างอิงตัวอย่างของข้อมูลบัฟเฟอร์ที่ถูกผลักไปมา ระหว่าง GPU และ CPU ฉันคิดว่าความสับสนของฉันในหัวข้อเป็นสาเหตุของปัญหาที่ฉันใช้บัฟเฟอร์คงที่สองแบบ นี่คือตัวอย่างโค้ด shader cbuffer PerFrame : register(b0) { float4x4 view; }; cbuffer PerObject : register(b1) { float4x4 scale; float4x4 rotation; float4x4 translation; }; วิธีการจัดระเบียบรหัสของฉันกล้องจะจัดการอัปเดตข้อมูลที่เกี่ยวข้องต่อเฟรมและ GameObjects จะอัปเดตข้อมูลต่อวัตถุของตัวเอง ทั้งสองคลาสมี ID3D11Buffer ของตัวเองที่ใช้ในการทำสิ่งนี้ (ใช้สถาปัตยกรรมฮับดังนั้นคลาส GameObject …

1
เฉดสีที่แตกต่างกันสำหรับวัตถุที่แตกต่าง DirectX 11
ฉันกำลังเรียนรู้Direct3D 11และในบทเรียนพื้นฐานทั้งหมดที่ฉันพบในการเขียน Shader, Vertex และ Pixel shaders จึงถูกเขียนขึ้นเพื่อให้พวกเขาเปลี่ยนทั้งฉากในลักษณะเดียวกัน บทแนะนำเช่นเรนเดอร์คิวบ์พร้อมพื้นผิว ... แต่ฉันสงสัยว่าคุณแยกแยะวัตถุอย่างไร ยกตัวอย่างเช่นถ้าคุณต้องการที่จะจำลองพื้นผิวกระจกบนวัตถุบางอย่างและใช้เฉดสีที่แตกต่างกันในการทำให้ส่วนที่เหลือของฉาก ฉันคิดว่าเกมส่วนใหญ่จะต้องใช้จุดสุดยอดและ Pixel Shader เพื่อให้ได้รูปลักษณ์และการเปลี่ยนแปลงที่หลากหลาย ขอขอบคุณ.
13 c++  directx11 

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
D3D / DXGI จัดการการเปลี่ยนหน้าจอเต็ม
ฉันมีแอปพลิเคชั่น D3D11 และฉันต้องการเพิ่ม suport แบบเต็มหน้าจอที่เหมาะสม ตอนนี้ฉันสามารถให้ DXGI สลับหน้าต่างของฉันเป็นแบบเต็มหน้าจอสำหรับฉันและฉันรู้สึกว่า DXGI จะดูแลทุกอย่างที่จำเป็นเพื่อให้การสลับโซ่ด้านหน้าและด้านหลังแทนการ blitting อย่างไรก็ตามการทำให้ DXGI ทำงานได้อย่างรวดเร็วดูเหมือนว่าไม่น่าเชื่อถือด้วยการติดตั้งจอภาพหลายจอ - หน้าจอที่สองยังคงเป็นสีดำทั้งหมดหลังจากการสลับเวลาเป็นอย่างมากโดยไม่มีเหตุผลหรือรูปแบบที่ชัดเจน อาจต้องใช้การสลับไปมาสองสามครั้งก่อนที่ฉันจะได้รับหน้าต่างเต็มหน้าจอและส่วนที่เหลือของเดสก์ท็อปที่แสดงบนหน้าจออื่น เห็นได้ชัดว่าฉันไม่ได้อยู่คนเดียวกับเรื่องนี้ Battlefield 3 และ WoW ดูเหมือนจะมีปัญหาที่คล้ายกันสำหรับผู้คนจำนวนมาก ตอนนี้คำถามที่เกิดขึ้นจริง: ฉันเดาว่าแม้กระทั่ง บริษัท ผู้พัฒนาเกม AAA เหล่านั้นก็ไม่สามารถทำงานได้ความหวังที่ยิ่งใหญ่ที่สุดของฉันคือการเปลี่ยนไปใช้งานแบบเต็มหน้าจอด้วยตัวเอง มีสิ่งใดบ้างที่ฉันสามารถทำได้เพื่อยกระดับหน้าต่าง / swapchain ของฉันให้อยู่ในโหมดเต็มหน้าจอแบบเต็มบัฟเฟอร์หรือไม่

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