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

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
ทำไม OpenGL> = 3 อนุญาตให้ VBO เท่านั้น
ฉันเห็นว่า OpenGL เวอร์ชัน 3 ขึ้นไปกำจัดการใช้การเรนเดอร์ฝั่งไคลเอ็นต์ โหมดทันทีถูกตัดออกและดูเหมือนว่าจุดสุดยอดจะถูกยกเลิก แต่ถ้าฉันเข้าใจถูกต้อง VBOs เป็นวิธีหลักในการแสดงจุดยอด ในขณะที่ฉันเห็นตรรกะเบื้องหลังการมีวิธีที่เหมือนกันในการเรนเดอร์ทุกอย่างมันเป็นกรณีที่ VBOs ไม่มีข้อเสียอย่างใหญ่หลวงในอาร์เรย์ของจุดยอดหรือไม่? ฉันคิดว่า VBO ควรจะเป็นบัฟเฟอร์ขนาดใหญ่ที่มีข้อมูล> 1MB โดยทั่วไป ถ้าฉันมีฉากที่มีรูปทรงเรขาคณิตขนาดเล็กกว่ามาก ฉันมีกราฟฉากที่มีโหนดจำนวนมากโดยแต่ละโหนดต้องการการแปลงของตัวเอง ฯลฯ แต่ละโหนดควรสามารถลบแยกต่างหากเพิ่มลงในแบบแยกต่างหากเป็นต้นฉันใช้อาร์เรย์จุดยอดมาก่อน ดังนั้นคำถามแรกของฉันคือถ้าฉันเปลี่ยนเป็น VBOs จะมีค่าใช้จ่ายมากขึ้นในวัตถุกราฟฉากของฉันตอนนี้เพราะ VBO จำเป็นต้องจัดสรรให้กับแต่ละวัตถุ สิ่งที่น่ากังวลอีกอย่างคือเรขาคณิตที่ฉันกำลังแสดงนั้นมีความสามารถสูง ในกรณีที่เลวร้ายที่สุดอาจมีบางครั้งที่รูปทรงเรขาคณิตทั้งหมดจำเป็นต้องส่งใหม่ทุกเฟรมในช่วงระยะเวลาหนึ่ง VBOs จะมีประสิทธิภาพการทำงานที่แย่กว่าอาเรย์จุดสุดยอดในกรณีการใช้งานนี้หรือไม่หรือ VBOs ที่แย่ที่สุดจะทำงานได้ดีกว่าอาเรย์ในแนวดิ่ง แต่ไม่มากไปกว่านี้? ดังนั้นในรูปแบบที่กระชับยิ่งขึ้นคำถามของฉันคือ: 1) มีค่าใช้จ่ายจำนวนมากในการจัดสรร / ยกเลิกการจัดสรร VBOs (ฉันหมายถึงการตั้งค่าบัฟเฟอร์) 2) ถ้าฉันอัปเดตข้อมูลจากซีพียูทุกเฟรมสิ่งนี้จะแย่กว่าถ้าฉันใช้อาร์เรย์จุดยอดหรือไม่? และสุดท้ายฉันอยากรู้ว่า: 3) หากคำตอบของคำถามใดคำถามหนึ่งข้างต้นคือ "ใช่" ทำไมเลิกใช้โหมดการแสดงผลอื่นที่อาจมีข้อได้เปรียบเหนือ VBOs มีบางอย่างที่ฉันขาดไปเช่นเทคนิคที่ฉันควรจะใช้เพื่อลดต้นทุนการจัดสรรที่อาจเกิดขึ้นเหล่านี้หรือไม่? 4) …

2
OpenGL: VBO หรือ glBegin () + glEnd ()?
ฉันเพิ่งได้รับลิงก์นี้ไปยังไซต์การสอนจากคนที่ฉันให้ OGL Redbook ดั้งเดิมแก่ ส่วนหัวที่สามลงกล่าวอย่างชัดเจนว่าลืม glBegin () & glEnd () เป็นวิธีการเรนเดอร์ทั่วไป ฉันเรียนรู้ผ่านวิธีของ Redbook แต่ฉันเห็นประโยชน์บางอย่างใน VBOs นี่เป็นวิธีที่จะไปจริงๆหรือไม่และถ้าเป็นเช่นนั้นมีวิธีในการแปลงรหัสการเรนเดอร์และเฉดสีที่ตามมาให้เป็น VBOs และประเภทข้อมูลที่ตามมาหรือไม่?
16 opengl  graphics  glsl  vbo 

2
เวอร์ชัน OpenGL ใดบ้างที่จะเรียนรู้และ / หรือใช้?
ดังนั้นฉันใหม่กับ OpenGL ... ฉันมีความรู้ทั่วไปเกี่ยวกับการเขียนโปรแกรมเกม แต่มีประสบการณ์น้อยมาก ฉันได้ดูบทความและหนังสือต่าง ๆ และพยายามที่จะดำดิ่งลงใน OpenGL แต่ฉันได้พบเวอร์ชันที่หลากหลายและวิธีการทำสิ่งเก่า ๆ ที่สับสน ฉันเดาว่าคำถามแรกของฉันคือไม่มีใครรู้ว่าตัวเลขบางส่วนเกี่ยวกับเปอร์เซ็นต์ของนักเล่นเกมที่สามารถเรียกใช้ OpenGL แต่ละรุ่นได้ ส่วนแบ่งตลาดเป็นอย่างไร 2.x, 3.x, 4.x ... ฉันค้นหาข้อกำหนดสำหรับ Half Life 2 เนื่องจากฉันรู้ว่า Valve อัปเดตด้วย OpenGL เพื่อให้ทำงานบน Mac และฉันรู้ว่าพวกเขามักจะพยายามเข้าถึงฐานผู้ใช้ที่กว้างมากและพวกเขากล่าวว่า GeForce 8 Series ขั้นต่ำ ฉันดูที่ 8800 GT ในเว็บไซต์ของ Nvidia และมันแสดงการสนับสนุน OpenGL 2.1 ซึ่งบางทีฉันผิดฟังโบราณสำหรับฉันเนื่องจากมี 4.x อยู่แล้ว ฉันค้นหาไดรเวอร์สำหรับ 8800GT และมันบอกว่ารองรับ 4.2! …

2
OpenGL: เป็นไปได้ไหมที่จะใช้ VAO โดยไม่ระบุ VBO
ในแบบฝึกหัดทั้งหมดที่ฉันพบเกี่ยวกับ VAO (Vertex Array Objects) พวกเขาแสดงวิธีการใช้พวกเขาโดยการกำหนดค่าคุณลักษณะจุดสุดยอดและผูก VBO (Vertex Buffer Object) แต่ฉันต้องการสร้าง VAO ที่จะกำหนดค่าสำหรับชุด VBO's ร่วมกับ shader คงที่ซึ่งแต่ละบัฟเฟอร์ใช้รูปแบบข้อมูลเดียวกัน (จุดยอด, UV, สี, ฯลฯ ) ดังนั้นฉันต้องการสร้างหนึ่ง VAO สำหรับ VBO หลายรายการที่จะถูกวาดโดยใช้หนึ่ง shader ฉันไม่พบตัวอย่างใด ๆ เกี่ยวกับเรื่องนี้ดังนั้นฉันจึงตัดสินใจลองทำดู แต่มันไม่ทำงานและล้มเหลวในการglDrawArrayโทร ดูเหมือนว่า VBO จะไม่ถูกผูกไว้ นี่คือรหัสที่ฉันใช้: การแสดงผล: /* Prepare vertex attributes */ glBindVertexArrayOES(vao); /* Upload the buffer to the GPU …
12 opengl  vbo  vao 

1
จะใช้แอพพลิเคชั่น OpenGL แบบมัลติเธรดเพื่ออัพเดต VBOs และใช้งานพร้อมกันได้อย่างไร?
ฉันมีแอพพลิเคชั่นที่เรียบง่าย มันมีสองกระทู้แต่ละคนมีบริบทการแสดงผลของตัวเอง แต่พวกเขาแบ่งปัน VBO หนึ่ง (นี้ใช้งานได้ผมทดสอบมัน) ตอนนี้สิ่งที่ฉันต้องการ: หนึ่งเธรดกำลังแสดงผลข้อมูลบางส่วนจากครึ่งแรกของ VBO และเธรดที่สองกำลังอัปเดตส่วนที่สองของ VBO เมื่อฉันไม่อัปเดต VBO มันก็ใช้ได้ดี แต่ฉันมีปัญหาแปลก ๆ บางอย่างเมื่ออัปเดต เมื่อฉันใช้glMapBufferเพื่ออัปเดต VBO (ในเธรดที่สอง), ในเธรดแรก, โดยส่วนใหญ่, มันไม่มีการแสดงผลใด ๆ - ทั้งหน้าจอนั้นชัดเจน (หลังจากการglClearโทร) ดูเหมือนว่าจะไม่สามารถสัมผัสข้อมูลจาก VBO (เป็นที่เข้าใจได้เพราะบัฟเฟอร์ทั้งหมดถูกแมปและดังนั้นจึงสามารถล็อคได้อย่างใด) ผมพยายามที่จะใช้ซึ่งการใช้งานglMapBufferRange GL_MAP_UNSYNCHRONIZED_BITนี่ควรหมายความว่า "อย่ารอและใช้ VBO ตามที่คุณต้องการฉัน (โปรแกรม) จะซิงโครไนซ์ด้วยตนเอง" นอกจากนี้เมื่อฉัน map ช่วงของ VBOs และแสดงผลข้อมูลจากส่วนอื่นก็ไม่ควรจะรอ glMapBufferแต่ฉันประสบปัญหาเดียวกับผมด้วย ใครสามารถช่วยฉันแก้ไขหรืออธิบายได้ว่าทำไมมันถึงเกิดขึ้น

1
ฉันควรให้ตัวละครแต่ละตัวเป็น VBO ของตัวเองหรือฉันควรจะนำพวกเขาไปเป็น VBO ตัวเดียว?
ฉันทำเกม 3D คนแรก ฉันควรให้ตัวละครแต่ละตัวเป็น VBO ของตัวเองหรือฉันควรจะรวบรวมตัวละครทั้งหมดเป็น VBO ตัวเดียวหรือไม่? ข้อดี / ข้อเสียคืออะไร?
10 opengl  vbo 

2
เกม 2D และ OpenGL ที่ทันสมัย
Preconcepts ตกลงดังนั้นสิ่งที่ฉันรวบรวมมาคือ: อย่าใช้ไปป์ไลน์ที่คงที่ (เลิกใช้แล้วหรือกำลังจะเลิกใช้งาน) vbos เก็บ "โมเดลวัตถุ" (n จุดสุดยอดข้อมูลส่วนใหญ่) vaos อธิบายว่าข้อมูลถูกวางไว้อย่างไรเพื่อให้การโทรรู้ว่าส่วนใดของ vbo แต่ละชนิดสำหรับข้อมูลจุดยอด (หนึ่ง vao สามารถอ้างถึง vbos หลาย ๆ ตัวได้ตรงกันข้ามเป็นเรื่องยาก) การเรียกแบบดึงแต่ละครั้งจะส่งข้อมูลจุดสุดยอดไปยังตัวแปลงข้อมูล ฉันเห็น 3D (ไม่บังคับ) จากข้อมูลเหล่านี้ฉันเห็นได้ว่าการวาดวัตถุที่ซับซ้อน 3D เป็นสิ่งที่ดีมาก ๆ ด้วย OpenGL ที่ทันสมัย โดยทั่วไปคุณจะโหลดโมเดลวัตถุ (อาจมาจาก Blender หรือซอฟต์แวร์ที่คล้ายคลึงกันอื่น ๆ ) ลงใน VBOs ที่มีพิกัดโลคัลและจากนั้นคุณเพียงแค่จัดหาพารามิเตอร์ shader ที่แตกต่างกัน (ออฟเซ็ต) ให้แต่ละอินสแตนซ์ของวัตถุ ปัญหา / คำถาม ในปัญหา 2D และลำดับความสำคัญแตกต่างกันอย่างสิ้นเชิงแม้ว่า …
10 opengl  2d  vbo  vao 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.